; ; sub_180007A70 from 0x180007a70 to 0x180007cad (573 bytes) ; ; 2 xrefs: ; > sub_180017630 @ 0x180017803 ; > @ 0x1801f63a8 ; ; 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 ; mov [rsp+arg_0], rbx ; +0x0, 0x180007a70 mov [rsp+arg_8], rbp ; +0x5, 0x180007a75 mov [rsp+arg_10], rsi ; +0xa, 0x180007a7a push rdi ; +0xf, 0x180007a7f push r14 ; +0x10, 0x180007a80 push r15 ; +0x12, 0x180007a82 sub rsp, 20h ; +0x14, 0x180007a84 mov rbx, rdx ; +0x18, 0x180007a88 mov r15, rcx ; +0x1b, 0x180007a8b mov rcx, rbx ; +0x1e, 0x180007a8e mov edx, 8 ; +0x21, 0x180007a91 call sub_180001340 ; +0x26, 0x180007a96 xor esi, esi ; +0x2b, 0x180007a9b mov ebp, esi ; +0x2d, 0x180007a9d lea r14d, [rax+1] ; +0x2f, 0x180007a9f imul edi, r14d, 78h ; 'x' ; +0x33, 0x180007aa3 test r14d, r14d ; +0x37, 0x180007aa7 jle short loc_180007ACF ; +0x3a, 0x180007aaa nop dword ptr [rax+00h] ; +0x3c, 0x180007aac mov rcx, rbx ; +0x40, 0x180007ab0 call sub_180001540 ; +0x43, 0x180007ab3 test eax, eax ; +0x48, 0x180007ab8 js loc_180007CA6 ; +0x4a, 0x180007aba add edi, 0Fh ; +0x50, 0x180007ac0 inc ebp ; +0x53, 0x180007ac3 and edi, 0FFFFFFF0h ; +0x55, 0x180007ac5 add edi, eax ; +0x58, 0x180007ac8 cmp ebp, r14d ; +0x5a, 0x180007aca jl short loc_180007AB0 ; +0x5d, 0x180007acd add edi, 3 ; +0x5f, 0x180007acf mov edx, 6 ; +0x62, 0x180007ad2 mov rcx, rbx ; +0x67, 0x180007ad7 and edi, 0FFFFFFFCh ; +0x6a, 0x180007ada call sub_180001340 ; +0x6d, 0x180007add test eax, eax ; +0x72, 0x180007ae2 js short loc_180007B0A ; +0x74, 0x180007ae4 mov edx, [rbx+10h] ; +0x76, 0x180007ae6 nop dword ptr [rax+00000000h] ; +0x79, 0x180007ae9 lea ecx, [rdx+10h] ; +0x80, 0x180007af0 mov edx, ecx ; +0x83, 0x180007af3 movsxd rcx, ecx ; +0x85, 0x180007af5 sar rcx, 3 ; +0x88, 0x180007af8 and edx, 7 ; +0x8c, 0x180007afc add [rbx], rcx ; +0x8f, 0x180007aff sub eax, 1 ; +0x92, 0x180007b02 jns short loc_180007AF0 ; +0x95, 0x180007b05 mov [rbx+10h], edx ; +0x97, 0x180007b07 mov edx, 6 ; +0x9a, 0x180007b0a mov rcx, rbx ; +0x9f, 0x180007b0f call sub_180001340 ; +0xa2, 0x180007b12 lea r14d, [rax+1] ; +0xa7, 0x180007b17 lea ebp, ds:3[r14*8] ; +0xab, 0x180007b1b add ebp, edi ; +0xb3, 0x180007b23 mov edi, esi ; +0xb5, 0x180007b25 add ebp, r14d ; +0xb7, 0x180007b27 and ebp, 0FFFFFFFCh ; +0xba, 0x180007b2a test r14d, r14d ; +0xbd, 0x180007b2d jle short loc_180007B61 ; +0xc0, 0x180007b30 mov edx, 10h ; +0xc2, 0x180007b32 mov rcx, rbx ; +0xc7, 0x180007b37 call sub_180001340 ; +0xca, 0x180007b3a mov rdx, rbx ; +0xcf, 0x180007b3f mov rcx, r15 ; +0xd2, 0x180007b42 call sub_180006380 ; +0xd5, 0x180007b45 test eax, eax ; +0xda, 0x180007b4a js loc_180007CA6 ; +0xdc, 0x180007b4c add eax, 3 ; +0xe2, 0x180007b52 inc edi ; +0xe5, 0x180007b55 and eax, 0FFFFFFFCh ; +0xe7, 0x180007b57 add ebp, eax ; +0xea, 0x180007b5a cmp edi, r14d ; +0xec, 0x180007b5c jl short loc_180007B32 ; +0xef, 0x180007b5f mov edx, 6 ; +0xf1, 0x180007b61 mov rcx, rbx ; +0xf6, 0x180007b66 call sub_180001340 ; +0xf9, 0x180007b69 lea r14d, [rax+1] ; +0xfe, 0x180007b6e lea ecx, [r14+r14*4] ; +0x102, 0x180007b72 lea edi, ds:3[rcx*8] ; +0x106, 0x180007b76 add edi, ebp ; +0x10d, 0x180007b7d and edi, 0FFFFFFFCh ; +0x10f, 0x180007b7f test r14d, r14d ; +0x112, 0x180007b82 jle short loc_180007BB2 ; +0x115, 0x180007b85 nop word ptr [rax+rax+00000000h] ; +0x117, 0x180007b87 mov rdx, rbx ; +0x120, 0x180007b90 mov rcx, r15 ; +0x123, 0x180007b93 call sub_180009D60 ; +0x126, 0x180007b96 test eax, eax ; +0x12b, 0x180007b9b js loc_180007CA6 ; +0x12d, 0x180007b9d add edi, 3 ; +0x133, 0x180007ba3 inc esi ; +0x136, 0x180007ba6 add edi, eax ; +0x138, 0x180007ba8 and edi, 0FFFFFFFCh ; +0x13a, 0x180007baa cmp esi, r14d ; +0x13d, 0x180007bad jl short loc_180007B90 ; +0x140, 0x180007bb0 mov edx, 6 ; +0x142, 0x180007bb2 mov rcx, rbx ; +0x147, 0x180007bb7 call sub_180001340 ; +0x14a, 0x180007bba inc eax ; +0x14f, 0x180007bbf lea ecx, [rax+rax*4] ; +0x151, 0x180007bc1 lea edi, [rdi+rcx*8] ; +0x154, 0x180007bc4 test eax, eax ; +0x157, 0x180007bc7 jle short loc_180007C01 ; +0x159, 0x180007bc9 mov esi, eax ; +0x15b, 0x180007bcb nop dword ptr [rax] ; +0x15d, 0x180007bcd mov ecx, [rbx+10h] ; +0x160, 0x180007bd0 mov rdx, rbx ; +0x163, 0x180007bd3 add ecx, 10h ; +0x166, 0x180007bd6 mov eax, ecx ; +0x169, 0x180007bd9 and eax, 7 ; +0x16b, 0x180007bdb mov [rbx+10h], eax ; +0x16e, 0x180007bde movsxd rax, ecx ; +0x171, 0x180007be1 mov rcx, r15 ; +0x174, 0x180007be4 sar rax, 3 ; +0x177, 0x180007be7 add [rbx], rax ; +0x17b, 0x180007beb call sub_180007CB0 ; +0x17e, 0x180007bee add eax, 3 ; +0x183, 0x180007bf3 add edi, eax ; +0x186, 0x180007bf6 and edi, 0FFFFFFFCh ; +0x188, 0x180007bf8 sub rsi, 1 ; +0x18b, 0x180007bfb jnz short loc_180007BD0 ; +0x18f, 0x180007bff mov edx, 6 ; +0x191, 0x180007c01 mov rcx, rbx ; +0x196, 0x180007c06 call sub_180001340 ; +0x199, 0x180007c09 inc eax ; +0x19e, 0x180007c0e lea r11d, ds:3[rax*2] ; +0x1a0, 0x180007c10 add r11d, edi ; +0x1a8, 0x180007c18 and r11d, 0FFFFFFFCh ; +0x1ab, 0x180007c1b test eax, eax ; +0x1af, 0x180007c1f jle short loc_180007C8A ; +0x1b1, 0x180007c21 mov r10d, [rbx+10h] ; +0x1b3, 0x180007c23 mov rdi, [rbx] ; +0x1b7, 0x180007c27 mov esi, eax ; +0x1ba, 0x180007c2a nop dword ptr [rax+00h] ; +0x1bc, 0x180007c2c lea r9d, [r10+1] ; +0x1c0, 0x180007c30 mov r8d, r9d ; +0x1c4, 0x180007c34 and r8d, 7 ; +0x1c7, 0x180007c37 add r8d, 10h ; +0x1cb, 0x180007c3b mov ecx, r8d ; +0x1cf, 0x180007c3f and ecx, 7 ; +0x1d2, 0x180007c42 add ecx, 10h ; +0x1d5, 0x180007c45 mov eax, ecx ; +0x1d8, 0x180007c48 and eax, 7 ; +0x1da, 0x180007c4a add eax, 8 ; +0x1dd, 0x180007c4d mov r10d, eax ; +0x1e0, 0x180007c50 mov edx, eax ; +0x1e3, 0x180007c53 mov eax, ecx ; +0x1e5, 0x180007c55 and r10d, 7 ; +0x1e7, 0x180007c57 shr rdx, 3 ; +0x1eb, 0x180007c5b shr rax, 3 ; +0x1ef, 0x180007c5f add rdx, rax ; +0x1f3, 0x180007c63 mov ecx, r8d ; +0x1f6, 0x180007c66 shr rcx, 3 ; +0x1f9, 0x180007c69 add rdx, rcx ; +0x1fd, 0x180007c6d movsxd rcx, r9d ; +0x200, 0x180007c70 sar rcx, 3 ; +0x203, 0x180007c73 add rdi, rcx ; +0x207, 0x180007c77 add rdi, rdx ; +0x20a, 0x180007c7a sub rsi, 1 ; +0x20d, 0x180007c7d jnz short loc_180007C30 ; +0x211, 0x180007c81 mov [rbx+10h], r10d ; +0x213, 0x180007c83 mov [rbx], rdi ; +0x217, 0x180007c87 mov eax, r11d ; +0x21a, 0x180007c8a mov rbx, [rsp+38h+arg_0] ; +0x21d, 0x180007c8d mov rbp, [rsp+38h+arg_8] ; +0x222, 0x180007c92 mov rsi, [rsp+38h+arg_10] ; +0x227, 0x180007c97 add rsp, 20h ; +0x22c, 0x180007c9c pop r15 ; +0x230, 0x180007ca0 pop r14 ; +0x232, 0x180007ca2 pop rdi ; +0x234, 0x180007ca4 retn ; +0x235, 0x180007ca5 mov eax, 0FFFFFFFFh ; +0x236, 0x180007ca6 jmp short loc_180007C8D ; +0x23b, 0x180007cab