; ; sub_180007790 from 0x180007790 to 0x180007a63 (723 bytes) ; ; 2 xrefs: ; > sub_180017630 @ 0x180017929 ; > @ 0x1801f639c ; ; 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, 0x180007790 push rdi ; +0x2, 0x180007792 push r15 ; +0x3, 0x180007793 sub rsp, 20h ; +0x5, 0x180007795 mov rbx, [rcx+20h] ; +0x9, 0x180007799 mov rdi, rdx ; +0xd, 0x18000779d mov r15, rcx ; +0x10, 0x1800077a0 test rbx, rbx ; +0x13, 0x1800077a3 jnz short loc_1800077B6 ; +0x16, 0x1800077a6 mov eax, 0FFFFFF7Fh ; +0x18, 0x1800077a8 add rsp, 20h ; +0x1d, 0x1800077ad pop r15 ; +0x21, 0x1800077b1 pop rdi ; +0x23, 0x1800077b3 pop rbx ; +0x24, 0x1800077b4 retn ; +0x25, 0x1800077b5 mov [rsp+38h+arg_0], rbp ; +0x26, 0x1800077b6 mov edx, 8 ; +0x2b, 0x1800077bb mov [rsp+38h+arg_8], rsi ; +0x30, 0x1800077c0 mov rcx, rdi ; +0x35, 0x1800077c5 mov [rsp+38h+arg_10], r14 ; +0x38, 0x1800077c8 call sub_180001340 ; +0x3d, 0x1800077cd inc eax ; +0x42, 0x1800077d2 mov ecx, 10h ; +0x44, 0x1800077d4 imul edx, eax, 78h ; 'x' ; +0x49, 0x1800077d9 mov [rbx+18h], eax ; +0x4c, 0x1800077dc call sub_180018340 ; +0x4f, 0x1800077df xor ebp, ebp ; +0x54, 0x1800077e4 mov [rbx+48h], rax ; +0x56, 0x1800077e6 mov esi, ebp ; +0x5a, 0x1800077ea cmp [rbx+18h], ebp ; +0x5c, 0x1800077ec jle short loc_180007813 ; +0x5f, 0x1800077ef movsxd rax, esi ; +0x61, 0x1800077f1 mov rcx, rdi ; +0x64, 0x1800077f4 imul rdx, rax, 78h ; 'x' ; +0x67, 0x1800077f7 add rdx, [rbx+48h] ; +0x6b, 0x1800077fb call sub_180001A10 ; +0x6f, 0x1800077ff test eax, eax ; +0x74, 0x180007804 jnz loc_180007A42 ; +0x76, 0x180007806 inc esi ; +0x7c, 0x18000780c cmp esi, [rbx+18h] ; +0x7e, 0x18000780e jl short loc_1800077F1 ; +0x81, 0x180007811 mov edx, 6 ; +0x83, 0x180007813 mov rcx, rdi ; +0x88, 0x180007818 call sub_180001340 ; +0x8b, 0x18000781b mov esi, eax ; +0x90, 0x180007820 test eax, eax ; +0x92, 0x180007822 js short loc_18000784A ; +0x94, 0x180007824 nop word ptr [rax+rax+00000000h] ; +0x96, 0x180007826 mov edx, 10h ; +0xa0, 0x180007830 mov rcx, rdi ; +0xa5, 0x180007835 call sub_180001340 ; +0xa8, 0x180007838 test eax, eax ; +0xad, 0x18000783d jnz loc_180007A42 ; +0xaf, 0x18000783f sub esi, 1 ; +0xb5, 0x180007845 jns short loc_180007830 ; +0xb8, 0x180007848 mov edx, 6 ; +0xba, 0x18000784a mov rcx, rdi ; +0xbf, 0x18000784f call sub_180001340 ; +0xc2, 0x180007852 lea ecx, [rax+1] ; +0xc7, 0x180007857 mov [rbx+10h], ecx ; +0xca, 0x18000785a lea ecx, ds:0[rcx*8] ; +0xcd, 0x18000785d call sub_1800182F0 ; +0xd4, 0x180007864 mov ecx, [rbx+10h] ; +0xd9, 0x180007869 mov [rbx+38h], rax ; +0xdc, 0x18000786c call sub_1800182F0 ; +0xe0, 0x180007870 mov r14d, ebp ; +0xe5, 0x180007875 mov [rbx+30h], rax ; +0xe8, 0x180007878 cmp [rbx+10h], ebp ; +0xec, 0x18000787c jle short loc_1800078E6 ; +0xef, 0x18000787f mov rsi, rbp ; +0xf1, 0x180007881 nop dword ptr [rax+00h] ; +0xf4, 0x180007884 nop dword ptr [rax+rax+00000000h] ; +0xf8, 0x180007888 mov edx, 10h ; +0x100, 0x180007890 mov rcx, rdi ; +0x105, 0x180007895 call sub_180001340 ; +0x108, 0x180007898 mov rcx, [rbx+30h] ; +0x10d, 0x18000789d mov [rsi+rcx], al ; +0x111, 0x1800078a1 mov rax, [rbx+30h] ; +0x114, 0x1800078a4 movzx ecx, byte ptr [rsi+rax] ; +0x118, 0x1800078a8 cmp cl, 1 ; +0x11c, 0x1800078ac ja loc_180007A42 ; +0x11f, 0x1800078af test cl, cl ; +0x125, 0x1800078b5 jz short loc_1800078CC ; +0x127, 0x1800078b7 mov rdx, rdi ; +0x129, 0x1800078b9 mov rcx, r15 ; +0x12c, 0x1800078bc call sub_180006640 ; +0x12f, 0x1800078bf mov rcx, [rbx+38h] ; +0x134, 0x1800078c4 mov [rcx+rsi*8], rax ; +0x138, 0x1800078c8 mov rax, [rbx+38h] ; +0x13c, 0x1800078cc cmp [rax+rsi*8], rbp ; +0x140, 0x1800078d0 jz loc_180007A42 ; +0x144, 0x1800078d4 inc r14d ; +0x14a, 0x1800078da inc rsi ; +0x14d, 0x1800078dd cmp r14d, [rbx+10h] ; +0x150, 0x1800078e0 jl short loc_180007890 ; +0x154, 0x1800078e4 mov edx, 6 ; +0x156, 0x1800078e6 mov rcx, rdi ; +0x15b, 0x1800078eb call sub_180001340 ; +0x15e, 0x1800078ee inc eax ; +0x163, 0x1800078f3 mov [rbx+14h], eax ; +0x165, 0x1800078f5 lea ecx, [rax+rax*4] ; +0x168, 0x1800078f8 shl ecx, 3 ; +0x16b, 0x1800078fb call sub_1800182F0 ; +0x16e, 0x1800078fe mov esi, ebp ; +0x173, 0x180007903 mov [rbx+40h], rax ; +0x175, 0x180007905 cmp [rbx+14h], ebp ; +0x179, 0x180007909 jle short loc_180007939 ; +0x17c, 0x18000790c xchg ax, ax ; +0x17e, 0x18000790e movsxd rax, esi ; +0x180, 0x180007910 mov r8, rdi ; +0x183, 0x180007913 mov rdx, r15 ; +0x186, 0x180007916 lea rcx, [rax+rax*4] ; +0x189, 0x180007919 mov rax, [rbx+40h] ; +0x18d, 0x18000791d lea rcx, [rax+rcx*8] ; +0x191, 0x180007921 call sub_180009F30 ; +0x195, 0x180007925 test eax, eax ; +0x19a, 0x18000792a jnz loc_180007A42 ; +0x19c, 0x18000792c inc esi ; +0x1a2, 0x180007932 cmp esi, [rbx+14h] ; +0x1a4, 0x180007934 jl short loc_180007910 ; +0x1a7, 0x180007937 mov edx, 6 ; +0x1a9, 0x180007939 mov rcx, rdi ; +0x1ae, 0x18000793e call sub_180001340 ; +0x1b1, 0x180007941 inc eax ; +0x1b6, 0x180007946 mov [rbx+0Ch], eax ; +0x1b8, 0x180007948 lea ecx, [rax+rax*4] ; +0x1bb, 0x18000794b shl ecx, 3 ; +0x1be, 0x18000794e call sub_1800182F0 ; +0x1c1, 0x180007951 mov esi, ebp ; +0x1c6, 0x180007956 mov [rbx+28h], rax ; +0x1c8, 0x180007958 cmp [rbx+0Ch], ebp ; +0x1cc, 0x18000795c jle short loc_18000799F ; +0x1cf, 0x18000795f mov edx, 10h ; +0x1d1, 0x180007961 mov rcx, rdi ; +0x1d6, 0x180007966 call sub_180001340 ; +0x1d9, 0x180007969 test eax, eax ; +0x1de, 0x18000796e jnz loc_180007A42 ; +0x1e0, 0x180007970 movsxd rax, esi ; +0x1e6, 0x180007976 mov r8, rdi ; +0x1e9, 0x180007979 mov rdx, r15 ; +0x1ec, 0x18000797c lea rcx, [rax+rax*4] ; +0x1ef, 0x18000797f mov rax, [rbx+28h] ; +0x1f3, 0x180007983 lea rcx, [rax+rcx*8] ; +0x1f7, 0x180007987 call sub_180007E10 ; +0x1fb, 0x18000798b test eax, eax ; +0x200, 0x180007990 jnz loc_180007A42 ; +0x202, 0x180007992 inc esi ; +0x208, 0x180007998 cmp esi, [rbx+0Ch] ; +0x20a, 0x18000799a jl short loc_180007961 ; +0x20d, 0x18000799d mov edx, 6 ; +0x20f, 0x18000799f mov rcx, rdi ; +0x214, 0x1800079a4 call sub_180001340 ; +0x217, 0x1800079a7 lea ecx, [rax+1] ; +0x21c, 0x1800079ac mov [rbx+8], ecx ; +0x21f, 0x1800079af add ecx, ecx ; +0x222, 0x1800079b2 call sub_1800182F0 ; +0x224, 0x1800079b4 mov [rbx+20h], rax ; +0x229, 0x1800079b9 cmp [rbx+8], ebp ; +0x22d, 0x1800079bd jle short loc_180007A30 ; +0x230, 0x1800079c0 mov rsi, rbp ; +0x232, 0x1800079c2 nop word ptr [rax+rax+00000000h] ; +0x235, 0x1800079c5 mov edx, 1 ; +0x240, 0x1800079d0 mov rcx, rdi ; +0x245, 0x1800079d5 call sub_180001340 ; +0x248, 0x1800079d8 mov rcx, [rbx+20h] ; +0x24d, 0x1800079dd mov edx, 10h ; +0x251, 0x1800079e1 mov [rsi+rcx], al ; +0x256, 0x1800079e6 mov rcx, rdi ; +0x259, 0x1800079e9 call sub_180001340 ; +0x25c, 0x1800079ec test eax, eax ; +0x261, 0x1800079f1 jnz short loc_180007A42 ; +0x263, 0x1800079f3 lea edx, [rax+10h] ; +0x265, 0x1800079f5 mov rcx, rdi ; +0x268, 0x1800079f8 call sub_180001340 ; +0x26b, 0x1800079fb test eax, eax ; +0x270, 0x180007a00 jnz short loc_180007A42 ; +0x272, 0x180007a02 lea edx, [rax+8] ; +0x274, 0x180007a04 mov rcx, rdi ; +0x277, 0x180007a07 call sub_180001340 ; +0x27a, 0x180007a0a mov rcx, [rbx+20h] ; +0x27f, 0x180007a0f mov [rsi+rcx+1], al ; +0x283, 0x180007a13 mov rax, [rbx+20h] ; +0x287, 0x180007a17 movzx ecx, byte ptr [rsi+rax+1] ; +0x28b, 0x180007a1b cmp ecx, [rbx+0Ch] ; +0x290, 0x180007a20 jge short loc_180007A42 ; +0x293, 0x180007a23 inc ebp ; +0x295, 0x180007a25 add rsi, 2 ; +0x297, 0x180007a27 cmp ebp, [rbx+8] ; +0x29b, 0x180007a2b jl short loc_1800079D0 ; +0x29e, 0x180007a2e mov edx, 1 ; +0x2a0, 0x180007a30 mov rcx, rdi ; +0x2a5, 0x180007a35 call sub_180001340 ; +0x2a8, 0x180007a38 cmp eax, 1 ; +0x2ad, 0x180007a3d jz short loc_180007A49 ; +0x2b0, 0x180007a40 mov eax, 0FFFFFF7Bh ; +0x2b2, 0x180007a42 jmp short loc_180007A4B ; +0x2b7, 0x180007a47 xor eax, eax ; +0x2b9, 0x180007a49 mov rsi, [rsp+38h+arg_8] ; +0x2bb, 0x180007a4b mov rbp, [rsp+38h+arg_0] ; +0x2c0, 0x180007a50 mov r14, [rsp+38h+arg_10] ; +0x2c5, 0x180007a55 add rsp, 20h ; +0x2ca, 0x180007a5a pop r15 ; +0x2ce, 0x180007a5e pop rdi ; +0x2d0, 0x180007a60 pop rbx ; +0x2d1, 0x180007a61 retn ; +0x2d2, 0x180007a62