; ; sub_180002960 from 0x180002960 to 0x180002b7f (543 bytes) ; ; 12 xrefs: ; > sub_180002B80 @ 0x180002c29 ; > sub_180002B80 @ 0x180002c66 ; > sub_180002B80 @ 0x180002d49 ; > sub_180002B80 @ 0x180002e86 ; > sub_180003130 @ 0x1800031b6 ; > sub_180003130 @ 0x1800031fa ; > sub_180003130 @ 0x180003296 ; > sub_180003390 @ 0x180003436 ; > sub_180003390 @ 0x180003450 ; > sub_180003390 @ 0x1800034a6 ; > sub_180003390 @ 0x180003526 ; > @ 0x1801f6138 ; ; 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, 0x180002960 push rbp ; +0x2, 0x180002962 push rsi ; +0x3, 0x180002963 push rdi ; +0x4, 0x180002964 push r12 ; +0x5, 0x180002965 push r13 ; +0x7, 0x180002967 push r14 ; +0x9, 0x180002969 push r15 ; +0xb, 0x18000296b sub rsp, 28h ; +0xd, 0x18000296d mov r8, [rcx+30h] ; +0x11, 0x180002971 mov r13, rcx ; +0x15, 0x180002975 mov r12, [rcx+38h] ; +0x18, 0x180002978 mov rdi, rdx ; +0x1c, 0x18000297c mov rax, [rdx] ; +0x1f, 0x18000297f mov ecx, [rdx+10h] ; +0x22, 0x180002982 mov r14d, [r13+70h] ; +0x25, 0x180002985 mov [rsp+68h+arg_18], r8 ; +0x29, 0x180002989 mov rbx, [rax] ; +0x31, 0x180002991 mov eax, r14d ; +0x34, 0x180002994 shr rbx, cl ; +0x37, 0x180002997 and rax, rbx ; +0x3a, 0x18000299a mov rdx, rbx ; +0x3d, 0x18000299d movzx r15d, word ptr [r8+rax*2] ; +0x40, 0x1800029a0 mov eax, r15d ; +0x45, 0x1800029a5 and eax, 7FFFh ; +0x48, 0x1800029a8 movsx r11d, byte ptr [rax+r12] ; +0x4d, 0x1800029ad mov eax, r14d ; +0x52, 0x1800029b2 mov ecx, r11d ; +0x55, 0x1800029b5 shr rdx, cl ; +0x58, 0x1800029b8 and rax, rdx ; +0x5b, 0x1800029bb movzx esi, word ptr [r8+rax*2] ; +0x5e, 0x1800029be mov eax, esi ; +0x63, 0x1800029c3 and eax, 7FFFh ; +0x65, 0x1800029c5 movsx r10d, byte ptr [rax+r12] ; +0x6a, 0x1800029ca mov eax, r14d ; +0x6f, 0x1800029cf mov ecx, r10d ; +0x72, 0x1800029d2 shr rdx, cl ; +0x75, 0x1800029d5 and rax, rdx ; +0x78, 0x1800029d8 movzx ebp, word ptr [r8+rax*2] ; +0x7b, 0x1800029db mov eax, ebp ; +0x80, 0x1800029e0 and eax, 7FFFh ; +0x82, 0x1800029e2 movsx r9d, byte ptr [rax+r12] ; +0x87, 0x1800029e7 mov ecx, r9d ; +0x8c, 0x1800029ec shr rdx, cl ; +0x8f, 0x1800029ef mov ecx, 8000h ; +0x92, 0x1800029f2 and rdx, r14 ; +0x97, 0x1800029f7 movzx r8d, word ptr [r8+rdx*2] ; +0x9a, 0x1800029fa mov eax, r8d ; +0x9f, 0x1800029ff and eax, 7FFFh ; +0xa2, 0x180002a02 movsx edx, byte ptr [rax+r12] ; +0xa7, 0x180002a07 movzx eax, r8w ; +0xac, 0x180002a0c or ax, bp ; +0xb0, 0x180002a10 or ax, si ; +0xb3, 0x180002a13 or ax, r15w ; +0xb6, 0x180002a16 test cx, ax ; +0xba, 0x180002a1a jz loc_180002B0A ; +0xbd, 0x180002a1d cmp r15d, ecx ; +0xc3, 0x180002a23 jb short loc_180002A3C ; +0xc6, 0x180002a26 mov r9d, ebx ; +0xc8, 0x180002a28 mov r8d, r15d ; +0xcb, 0x180002a2b mov rdx, rdi ; +0xce, 0x180002a2e mov rcx, r13 ; +0xd1, 0x180002a31 call sub_180001910 ; +0xd4, 0x180002a34 mov r15d, eax ; +0xd9, 0x180002a39 mov rbp, [rsp+68h+arg_18] ; +0xdc, 0x180002a3c mov eax, r15d ; +0xe4, 0x180002a44 movsx eax, byte ptr [rax+r12] ; +0xe7, 0x180002a47 mov ecx, eax ; +0xec, 0x180002a4c mov [rsp+68h+arg_10], eax ; +0xee, 0x180002a4e shr rbx, cl ; +0xf5, 0x180002a55 mov rax, r14 ; +0xf8, 0x180002a58 and rax, rbx ; +0xfb, 0x180002a5b movzx esi, word ptr [rbp+rax*2+0] ; +0xfe, 0x180002a5e cmp esi, 8000h ; +0x103, 0x180002a63 jb short loc_180002A7E ; +0x109, 0x180002a69 mov r9d, ebx ; +0x10b, 0x180002a6b mov r8d, esi ; +0x10e, 0x180002a6e mov rdx, rdi ; +0x111, 0x180002a71 mov rcx, r13 ; +0x114, 0x180002a74 call sub_180001910 ; +0x117, 0x180002a77 mov esi, eax ; +0x11c, 0x180002a7c mov eax, esi ; +0x11e, 0x180002a7e movsx eax, byte ptr [rax+r12] ; +0x120, 0x180002a80 mov ecx, eax ; +0x125, 0x180002a85 mov [rsp+68h+arg_8], eax ; +0x127, 0x180002a87 shr rbx, cl ; +0x12b, 0x180002a8b mov rax, r14 ; +0x12e, 0x180002a8e and rax, rbx ; +0x131, 0x180002a91 movzx ebp, word ptr [rbp+rax*2+0] ; +0x134, 0x180002a94 cmp ebp, 8000h ; +0x139, 0x180002a99 jb short loc_180002AB4 ; +0x13f, 0x180002a9f mov r9d, ebx ; +0x141, 0x180002aa1 mov r8d, ebp ; +0x144, 0x180002aa4 mov rdx, rdi ; +0x147, 0x180002aa7 mov rcx, r13 ; +0x14a, 0x180002aaa call sub_180001910 ; +0x14d, 0x180002aad mov ebp, eax ; +0x152, 0x180002ab2 mov eax, ebp ; +0x154, 0x180002ab4 movsx r9d, byte ptr [rax+r12] ; +0x156, 0x180002ab6 mov rax, [rsp+68h+arg_18] ; +0x15b, 0x180002abb mov ecx, r9d ; +0x163, 0x180002ac3 shr rbx, cl ; +0x166, 0x180002ac6 and r14, rbx ; +0x169, 0x180002ac9 mov [rsp+68h+arg_0], r9d ; +0x16c, 0x180002acc movzx r8d, word ptr [rax+r14*2] ; +0x171, 0x180002ad1 cmp r8d, 8000h ; +0x176, 0x180002ad6 jb short loc_180002AF5 ; +0x17d, 0x180002add mov r9d, ebx ; +0x17f, 0x180002adf mov rdx, rdi ; +0x182, 0x180002ae2 mov rcx, r13 ; +0x185, 0x180002ae5 call sub_180001910 ; +0x188, 0x180002ae8 mov r9d, [rsp+68h+arg_0] ; +0x18d, 0x180002aed mov r8d, eax ; +0x192, 0x180002af2 mov r10d, [rsp+68h+arg_8] ; +0x195, 0x180002af5 mov r11d, [rsp+68h+arg_10] ; +0x19a, 0x180002afa mov eax, r8d ; +0x1a2, 0x180002b02 movsx edx, byte ptr [rax+r12] ; +0x1a5, 0x180002b05 mov ecx, [rdi+10h] ; +0x1aa, 0x180002b0a add ecx, edx ; +0x1ad, 0x180002b0d add ecx, r9d ; +0x1af, 0x180002b0f add ecx, r10d ; +0x1b2, 0x180002b12 add ecx, r11d ; +0x1b5, 0x180002b15 mov eax, ecx ; +0x1b8, 0x180002b18 and eax, 7 ; +0x1ba, 0x180002b1a mov [rdi+10h], eax ; +0x1bd, 0x180002b1d movsxd rax, ecx ; +0x1c0, 0x180002b20 sar rax, 3 ; +0x1c3, 0x180002b23 add [rdi], rax ; +0x1c7, 0x180002b27 lea eax, [r8-1] ; +0x1ca, 0x180002b2a mov r10, [r13+48h] ; +0x1ce, 0x180002b2e movzx r9d, word ptr [r10+rax*2] ; +0x1d2, 0x180002b32 lea eax, [rbp-1] ; +0x1d7, 0x180002b37 movzx r8d, word ptr [r10+rax*2] ; +0x1da, 0x180002b3a lea eax, [rsi-1] ; +0x1df, 0x180002b3f movzx edx, word ptr [r10+rax*2] ; +0x1e2, 0x180002b42 lea eax, [r15-1] ; +0x1e7, 0x180002b47 movzx eax, word ptr [r10+rax*2] ; +0x1eb, 0x180002b4b movd xmm2, r9d ; +0x1f0, 0x180002b50 movd xmm3, r8d ; +0x1f5, 0x180002b55 movd xmm1, edx ; +0x1fa, 0x180002b5a movd xmm0, eax ; +0x1fe, 0x180002b5e punpckldq xmm0, xmm1 ; +0x202, 0x180002b62 punpckldq xmm3, xmm2 ; +0x206, 0x180002b66 punpcklqdq xmm0, xmm3 ; +0x20a, 0x180002b6a add rsp, 28h ; +0x20e, 0x180002b6e pop r15 ; +0x212, 0x180002b72 pop r14 ; +0x214, 0x180002b74 pop r13 ; +0x216, 0x180002b76 pop r12 ; +0x218, 0x180002b78 pop rdi ; +0x21a, 0x180002b7a pop rsi ; +0x21b, 0x180002b7b pop rbp ; +0x21c, 0x180002b7c pop rbx ; +0x21d, 0x180002b7d retn ; +0x21e, 0x180002b7e