; ; sub_180007E10 from 0x180007e10 to 0x180008045 (565 bytes) ; ; 2 xrefs: ; > sub_180007790 @ 0x18000798b ; > @ 0x1801f63c0 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; push rbx ; +0x0, 0x180007e10 push rsi ; +0x2, 0x180007e12 push r13 ; +0x3, 0x180007e13 push r14 ; +0x5, 0x180007e15 push r15 ; +0x7, 0x180007e17 sub rsp, 20h ; +0x9, 0x180007e19 mov r13, [rdx+20h] ; +0xd, 0x180007e1d xorps xmm0, xmm0 ; +0x11, 0x180007e21 movups xmmword ptr [rcx], xmm0 ; +0x14, 0x180007e24 xor eax, eax ; +0x17, 0x180007e27 mov r15, rdx ; +0x19, 0x180007e29 movups xmmword ptr [rcx+10h], xmm0 ; +0x1c, 0x180007e2c mov [rcx+20h], rax ; +0x20, 0x180007e30 mov rbx, rcx ; +0x24, 0x180007e34 mov rcx, r8 ; +0x27, 0x180007e37 mov r14, r8 ; +0x2a, 0x180007e3a lea edx, [rax+1] ; +0x2d, 0x180007e3d call sub_180001340 ; +0x30, 0x180007e40 test eax, eax ; +0x35, 0x180007e45 jz short loc_180007E5A ; +0x37, 0x180007e47 mov edx, 4 ; +0x39, 0x180007e49 mov rcx, r14 ; +0x3e, 0x180007e4e call sub_180001340 ; +0x41, 0x180007e51 inc eax ; +0x46, 0x180007e56 jmp short loc_180007E5F ; +0x48, 0x180007e58 mov eax, 1 ; +0x4a, 0x180007e5a mov [rsp+48h+arg_0], rbp ; +0x4f, 0x180007e5f mov edx, 1 ; +0x54, 0x180007e64 mov [rsp+48h+arg_8], rdi ; +0x59, 0x180007e69 mov rcx, r14 ; +0x5e, 0x180007e6e mov [rsp+48h+arg_10], r12 ; +0x61, 0x180007e71 mov [rbx], eax ; +0x66, 0x180007e76 call sub_180001340 ; +0x68, 0x180007e78 xor esi, esi ; +0x6d, 0x180007e7d test eax, eax ; +0x6f, 0x180007e7f jz loc_180007F45 ; +0x71, 0x180007e81 lea edx, [rsi+8] ; +0x77, 0x180007e87 mov rcx, r14 ; +0x7a, 0x180007e8a call sub_180001340 ; +0x7d, 0x180007e8d lea ecx, [rax+1] ; +0x82, 0x180007e92 mov [rbx+18h], ecx ; +0x85, 0x180007e95 add ecx, ecx ; +0x88, 0x180007e98 call sub_1800182F0 ; +0x8a, 0x180007e9a mov ebp, esi ; +0x8f, 0x180007e9f mov [rbx+20h], rax ; +0x91, 0x180007ea1 cmp [rbx+18h], esi ; +0x95, 0x180007ea5 jle loc_180007F45 ; +0x98, 0x180007ea8 mov ecx, [r15+4] ; +0x9e, 0x180007eae mov r12d, esi ; +0xa2, 0x180007eb2 nop word ptr [rax+rax+00000000h] ; +0xa5, 0x180007eb5 test ecx, ecx ; +0xb0, 0x180007ec0 lea eax, [rcx-1] ; +0xb2, 0x180007ec2 mov edx, esi ; +0xb5, 0x180007ec5 cmovz eax, ecx ; +0xb7, 0x180007ec7 test eax, eax ; +0xba, 0x180007eca jz short loc_180007ED6 ; +0xbc, 0x180007ecc xchg ax, ax ; +0xbe, 0x180007ece inc edx ; +0xc0, 0x180007ed0 shr eax, 1 ; +0xc2, 0x180007ed2 jnz short loc_180007ED0 ; +0xc4, 0x180007ed4 mov rcx, r14 ; +0xc6, 0x180007ed6 call sub_180001340 ; +0xc9, 0x180007ed9 movzx edi, al ; +0xce, 0x180007ede mov edx, esi ; +0xd1, 0x180007ee1 mov rax, [rbx+20h] ; +0xd3, 0x180007ee3 mov [r12+rax], dil ; +0xd7, 0x180007ee7 mov eax, [r15+4] ; +0xdb, 0x180007eeb test eax, eax ; +0xdf, 0x180007eef lea ecx, [rax-1] ; +0xe1, 0x180007ef1 cmovz ecx, eax ; +0xe4, 0x180007ef4 test ecx, ecx ; +0xe7, 0x180007ef7 jz short loc_180007F06 ; +0xe9, 0x180007ef9 nop dword ptr [rax+rax+00h] ; +0xeb, 0x180007efb inc edx ; +0xf0, 0x180007f00 shr ecx, 1 ; +0xf2, 0x180007f02 jnz short loc_180007F00 ; +0xf4, 0x180007f04 mov rcx, r14 ; +0xf6, 0x180007f06 call sub_180001340 ; +0xf9, 0x180007f09 movzx edx, al ; +0xfe, 0x180007f0e mov rax, [rbx+20h] ; +0x101, 0x180007f11 mov [r12+rax+1], dl ; +0x105, 0x180007f15 cmp edi, edx ; +0x10a, 0x180007f1a jz loc_180008024 ; +0x10c, 0x180007f1c mov ecx, [r15+4] ; +0x112, 0x180007f22 cmp edi, ecx ; +0x116, 0x180007f26 jge loc_180008024 ; +0x118, 0x180007f28 cmp edx, ecx ; +0x11e, 0x180007f2e jge loc_180008024 ; +0x120, 0x180007f30 inc ebp ; +0x126, 0x180007f36 add r12, 2 ; +0x128, 0x180007f38 cmp ebp, [rbx+18h] ; +0x12c, 0x180007f3c jl loc_180007EC0 ; +0x12f, 0x180007f3f mov edx, 2 ; +0x135, 0x180007f45 mov rcx, r14 ; +0x13a, 0x180007f4a call sub_180001340 ; +0x13d, 0x180007f4d test eax, eax ; +0x142, 0x180007f52 jg loc_180008024 ; +0x144, 0x180007f54 cmp dword ptr [rbx], 1 ; +0x14a, 0x180007f5a jle short loc_180007FAF ; +0x14d, 0x180007f5d mov ecx, [r15+4] ; +0x14f, 0x180007f5f call sub_1800182F0 ; +0x153, 0x180007f63 mov [rbx+8], rax ; +0x158, 0x180007f68 mov ebp, esi ; +0x15c, 0x180007f6c cmp [r15+4], esi ; +0x15e, 0x180007f6e jle short loc_180007FAF ; +0x162, 0x180007f72 mov rdi, rsi ; +0x164, 0x180007f74 nop word ptr [rax+rax+00000000h] ; +0x167, 0x180007f77 mov edx, 4 ; +0x170, 0x180007f80 mov rcx, r14 ; +0x175, 0x180007f85 call sub_180001340 ; +0x178, 0x180007f88 mov rcx, [rbx+8] ; +0x17d, 0x180007f8d mov [rdi+rcx], al ; +0x181, 0x180007f91 mov rax, [rbx+8] ; +0x184, 0x180007f94 movzx ecx, byte ptr [rax+rdi] ; +0x188, 0x180007f98 cmp ecx, [rbx] ; +0x18c, 0x180007f9c jge loc_180008024 ; +0x18e, 0x180007f9e inc ebp ; +0x194, 0x180007fa4 inc rdi ; +0x196, 0x180007fa6 cmp ebp, [r15+4] ; +0x199, 0x180007fa9 jl short loc_180007F80 ; +0x19d, 0x180007fad mov ecx, [rbx] ; +0x19f, 0x180007faf add ecx, ecx ; +0x1a1, 0x180007fb1 call sub_1800182F0 ; +0x1a3, 0x180007fb3 mov [rbx+10h], rax ; +0x1a8, 0x180007fb8 cmp [rbx], esi ; +0x1ac, 0x180007fbc jle short loc_180008020 ; +0x1ae, 0x180007fbe mov rdi, rsi ; +0x1b0, 0x180007fc0 mov edx, 8 ; +0x1b3, 0x180007fc3 mov rcx, r14 ; +0x1b8, 0x180007fc8 call sub_180001340 ; +0x1bb, 0x180007fcb mov edx, 8 ; +0x1c0, 0x180007fd0 mov rcx, r14 ; +0x1c5, 0x180007fd5 call sub_180001340 ; +0x1c8, 0x180007fd8 mov rcx, [rbx+10h] ; +0x1cd, 0x180007fdd mov [rdi+rcx], al ; +0x1d1, 0x180007fe1 mov rax, [rbx+10h] ; +0x1d4, 0x180007fe4 movsx ecx, byte ptr [rax+rdi] ; +0x1d8, 0x180007fe8 cmp ecx, [r13+10h] ; +0x1dc, 0x180007fec jge short loc_180008024 ; +0x1e0, 0x180007ff0 mov edx, 8 ; +0x1e2, 0x180007ff2 mov rcx, r14 ; +0x1e7, 0x180007ff7 call sub_180001340 ; +0x1ea, 0x180007ffa mov rcx, [rbx+10h] ; +0x1ef, 0x180007fff mov [rcx+rdi+1], al ; +0x1f3, 0x180008003 mov rax, [rbx+10h] ; +0x1f7, 0x180008007 movsx ecx, byte ptr [rax+rdi+1] ; +0x1fb, 0x18000800b cmp ecx, [r13+14h] ; +0x200, 0x180008010 jge short loc_180008024 ; +0x204, 0x180008014 inc esi ; +0x206, 0x180008016 add rdi, 2 ; +0x208, 0x180008018 cmp esi, [rbx] ; +0x20c, 0x18000801c jl short loc_180007FC3 ; +0x20e, 0x18000801e xor eax, eax ; +0x210, 0x180008020 jmp short loc_180008029 ; +0x212, 0x180008022 mov eax, 0FFFFFFFFh ; +0x214, 0x180008024 mov r12, [rsp+48h+arg_10] ; +0x219, 0x180008029 mov rdi, [rsp+48h+arg_8] ; +0x21e, 0x18000802e mov rbp, [rsp+48h+arg_0] ; +0x223, 0x180008033 add rsp, 20h ; +0x228, 0x180008038 pop r15 ; +0x22c, 0x18000803c pop r14 ; +0x22e, 0x18000803e pop r13 ; +0x230, 0x180008040 pop rsi ; +0x232, 0x180008042 pop rbx ; +0x233, 0x180008043 retn ; +0x234, 0x180008044