; ; sub_180002830 from 0x180002830 to 0x180002954 (292 bytes) ; ; 4 xrefs: ; > sub_180002B80 @ 0x180003050 ; > sub_180003390 @ 0x180003610 ; > sub_180003390 @ 0x180003625 ; > @ 0x1801f612c ; ; 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, 0x180002830 mov [rsp+arg_8], rbp ; +0x5, 0x180002835 mov [rsp+arg_10], rsi ; +0xa, 0x18000283a mov [rsp+arg_18], rdi ; +0xf, 0x18000283f push r14 ; +0x14, 0x180002844 sub rsp, 20h ; +0x16, 0x180002846 mov r11, [rdx] ; +0x1a, 0x18000284a mov rsi, rcx ; +0x1d, 0x18000284d mov rdi, [rcx+38h] ; +0x20, 0x180002850 mov rbp, r9 ; +0x24, 0x180002854 mov ecx, [rdx+10h] ; +0x27, 0x180002857 mov rbx, rdx ; +0x2a, 0x18000285a mov r14, r8 ; +0x2d, 0x18000285d mov rax, [rsi+30h] ; +0x30, 0x180002860 mov r9, [r11] ; +0x34, 0x180002864 mov r10d, [rsi+70h] ; +0x37, 0x180002867 shr r9, cl ; +0x3b, 0x18000286b and r10, r9 ; +0x3e, 0x18000286e movzx edx, word ptr [rax+r10*2] ; +0x41, 0x180002871 mov eax, edx ; +0x46, 0x180002876 and eax, 7FFFh ; +0x48, 0x180002878 movsx r8d, byte ptr [rax+rdi] ; +0x4d, 0x18000287d cmp edx, 8000h ; +0x52, 0x180002882 jb short loc_1800028A5 ; +0x58, 0x180002888 mov r8d, edx ; +0x5a, 0x18000288a mov rcx, rsi ; +0x5d, 0x18000288d mov rdx, rbx ; +0x60, 0x180002890 call sub_180001910 ; +0x63, 0x180002893 mov ecx, [rbx+10h] ; +0x68, 0x180002898 mov r11, [rbx] ; +0x6b, 0x18000289b mov edx, eax ; +0x6e, 0x18000289e movsx r8d, byte ptr [rdx+rdi] ; +0x70, 0x1800028a0 add ecx, r8d ; +0x75, 0x1800028a5 mov eax, ecx ; +0x78, 0x1800028a8 and eax, 7 ; +0x7a, 0x1800028aa mov [rbx+10h], eax ; +0x7d, 0x1800028ad movsxd rax, ecx ; +0x80, 0x1800028b0 lea ecx, [rdx-1] ; +0x83, 0x1800028b3 sar rax, 3 ; +0x86, 0x1800028b6 add rax, r11 ; +0x8a, 0x1800028ba mov [rbx], rax ; +0x8d, 0x1800028bd mov rax, [rsi+48h] ; +0x90, 0x1800028c0 movsx edi, byte ptr [rsi+66h] ; +0x94, 0x1800028c4 mov rsi, [rsp+28h+arg_10] ; +0x98, 0x1800028c8 movzx r11d, word ptr [rax+rcx*2] ; +0x9d, 0x1800028cd mov ecx, edi ; +0xa2, 0x1800028d2 mov rdi, [rsp+28h+arg_18] ; +0xa4, 0x1800028d4 mov r10d, r11d ; +0xa9, 0x1800028d9 shr r10d, cl ; +0xac, 0x1800028dc mov r8d, r10d ; +0xaf, 0x1800028df shr r8d, cl ; +0xb2, 0x1800028e2 mov eax, r8d ; +0xb5, 0x1800028e5 movd xmm3, r11d ; +0xb8, 0x1800028e8 shr eax, cl ; +0xbd, 0x1800028ed mov ebx, eax ; +0xbf, 0x1800028ef movd xmm0, r10d ; +0xc1, 0x1800028f1 punpckldq xmm3, xmm0 ; +0xc6, 0x1800028f6 shr ebx, cl ; +0xca, 0x1800028fa movd xmm1, eax ; +0xcc, 0x1800028fc mov r9d, ebx ; +0xd0, 0x180002900 shr r9d, cl ; +0xd3, 0x180002903 mov edx, r9d ; +0xd6, 0x180002906 movd xmm2, r8d ; +0xd9, 0x180002909 punpckldq xmm2, xmm1 ; +0xde, 0x18000290e punpcklqdq xmm3, xmm2 ; +0xe2, 0x180002912 movdqu xmmword ptr [r14], xmm3 ; +0xe6, 0x180002916 shr edx, cl ; +0xeb, 0x18000291b movd xmm3, ebx ; +0xed, 0x18000291d mov eax, edx ; +0xf1, 0x180002921 mov rbx, [rsp+28h+arg_0] ; +0xf3, 0x180002923 shr eax, cl ; +0xf8, 0x180002928 movd xmm2, edx ; +0xfa, 0x18000292a movd xmm0, r9d ; +0xfe, 0x18000292e punpckldq xmm3, xmm0 ; +0x103, 0x180002933 movd xmm1, eax ; +0x107, 0x180002937 punpckldq xmm2, xmm1 ; +0x10b, 0x18000293b punpcklqdq xmm3, xmm2 ; +0x10f, 0x18000293f movdqu xmmword ptr [rbp+0], xmm3 ; +0x113, 0x180002943 mov rbp, [rsp+28h+arg_8] ; +0x118, 0x180002948 add rsp, 20h ; +0x11d, 0x18000294d pop r14 ; +0x121, 0x180002951 retn ; +0x123, 0x180002953