; ; sub_180002550 from 0x180002550 to 0x180002736 (486 bytes) ; ; 4 xrefs: ; > sub_180001E90 @ 0x180001f19 ; > @ 0x18017d3a8 ; > @ 0x18017d3b8 ; > @ 0x1801f60fc ; ; 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_18], rbx ; +0x0, 0x180002550 push rbp ; +0x5, 0x180002555 push rsi ; +0x6, 0x180002556 push r14 ; +0x7, 0x180002557 sub rsp, 0A0h ; +0x9, 0x180002559 mov rax, cs:__security_cookie ; +0x10, 0x180002560 xor rax, rsp ; +0x17, 0x180002567 mov [rsp+0B8h+var_28], rax ; +0x1a, 0x18000256a xorps xmm0, xmm0 ; +0x22, 0x180002572 movsxd rsi, r8d ; +0x25, 0x180002575 xor eax, eax ; +0x28, 0x180002578 mov ebp, r9d ; +0x2a, 0x18000257a mov [rsp+0B8h+var_38], eax ; +0x2d, 0x18000257d mov r14, rdx ; +0x34, 0x180002584 mov r11, rcx ; +0x37, 0x180002587 movups [rsp+0B8h+var_B8], xmm0 ; +0x3a, 0x18000258a movups [rsp+0B8h+var_A8], xmm0 ; +0x3e, 0x18000258e movups [rsp+0B8h+var_98], xmm0 ; +0x43, 0x180002593 movups [rsp+0B8h+var_88], xmm0 ; +0x48, 0x180002598 movups [rsp+0B8h+var_78], xmm0 ; +0x4d, 0x18000259d movups [rsp+0B8h+var_68], xmm0 ; +0x52, 0x1800025a2 movups [rsp+0B8h+var_58], xmm0 ; +0x57, 0x1800025a7 movups [rsp+0B8h+var_48], xmm0 ; +0x5c, 0x1800025ac test r8d, r8d ; +0x61, 0x1800025b1 jle loc_180002678 ; +0x64, 0x1800025b4 xor ebx, ebx ; +0x6a, 0x1800025ba mov r10, rcx ; +0x6c, 0x1800025bc nop ; +0x6f, 0x1800025bf movsx r8, byte ptr [rbx+r14] ; +0x70, 0x1800025c0 test r8d, r8d ; +0x75, 0x1800025c5 jle loc_180002664 ; +0x78, 0x1800025c8 mov r9d, dword ptr [rsp+r8*4+0B8h+var_B8] ; +0x7e, 0x1800025ce mov rdx, r8 ; +0x82, 0x1800025d2 cmp r8d, 20h ; ' ' ; +0x85, 0x1800025d5 jge short loc_1800025EB ; +0x89, 0x1800025d9 mov eax, r9d ; +0x8b, 0x1800025db mov ecx, r8d ; +0x8e, 0x1800025de shr eax, cl ; +0x91, 0x1800025e1 test eax, eax ; +0x93, 0x1800025e3 jnz loc_18000272F ; +0x95, 0x1800025e5 mov [r10], r9d ; +0x9b, 0x1800025eb mov ecx, r8d ; +0x9e, 0x1800025ee add r10, 4 ; +0xa1, 0x1800025f1 test r8d, r8d ; +0xa5, 0x1800025f5 jle short loc_18000262F ; +0xa8, 0x1800025f8 nop word ptr [rax+rax+00h] ; +0xaa, 0x1800025fa mov eax, dword ptr [rsp+rdx*4+0B8h+var_B8] ; +0xb0, 0x180002600 test al, 1 ; +0xb3, 0x180002603 jnz short loc_180002618 ; +0xb5, 0x180002605 inc eax ; +0xb7, 0x180002607 dec ecx ; +0xb9, 0x180002609 mov dword ptr [rsp+rdx*4+0B8h+var_B8], eax ; +0xbb, 0x18000260b dec rdx ; +0xbe, 0x18000260e test rdx, rdx ; +0xc1, 0x180002611 jg short loc_180002600 ; +0xc4, 0x180002614 jmp short loc_18000262F ; +0xc6, 0x180002616 cmp ecx, 1 ; +0xc8, 0x180002618 jnz short loc_180002623 ; +0xcb, 0x18000261b inc dword ptr [rsp+0B8h+var_B8+4] ; +0xcd, 0x18000261d jmp short loc_18000262F ; +0xd1, 0x180002621 movsxd rcx, ecx ; +0xd3, 0x180002623 mov eax, [rsp+rcx*4+0B8h+var_BC] ; +0xd6, 0x180002626 add eax, eax ; +0xda, 0x18000262a mov dword ptr [rsp+rcx*4+0B8h+var_B8], eax ; +0xdc, 0x18000262c lea edx, [r8+1] ; +0xdf, 0x18000262f cmp edx, 21h ; '!' ; +0xe3, 0x180002633 jge short loc_18000266C ; +0xe6, 0x180002636 movsxd rax, edx ; +0xe8, 0x180002638 lea rax, [rsp+rax*4+0B8h+var_B8] ; +0xeb, 0x18000263b nop ; +0xef, 0x18000263f mov r8d, [rax] ; +0xf0, 0x180002640 mov ecx, r8d ; +0xf3, 0x180002643 shr ecx, 1 ; +0xf6, 0x180002646 cmp ecx, r9d ; +0xf8, 0x180002648 jnz short loc_18000266C ; +0xfb, 0x18000264b mov ecx, [rax-4] ; +0xfd, 0x18000264d inc edx ; +0x100, 0x180002650 add ecx, ecx ; +0x102, 0x180002652 mov r9d, r8d ; +0x104, 0x180002654 mov [rax], ecx ; +0x107, 0x180002657 add rax, 4 ; +0x109, 0x180002659 cmp edx, 21h ; '!' ; +0x10d, 0x18000265d jl short loc_180002640 ; +0x110, 0x180002660 jmp short loc_18000266C ; +0x112, 0x180002662 test ebp, ebp ; +0x114, 0x180002664 jnz short loc_18000266C ; +0x116, 0x180002666 add r10, 4 ; +0x118, 0x180002668 inc rbx ; +0x11c, 0x18000266c cmp rbx, rsi ; +0x11f, 0x18000266f jl loc_1800025C0 ; +0x122, 0x180002672 cmp ebp, 1 ; +0x128, 0x180002678 jz short loc_1800026AB ; +0x12b, 0x18000267b mov edx, 1 ; +0x12d, 0x18000267d mov ecx, 1Fh ; +0x132, 0x180002682 nop word ptr [rax+rax+00000000h] ; +0x137, 0x180002687 mov eax, 0FFFFFFFFh ; +0x140, 0x180002690 shr eax, cl ; +0x145, 0x180002695 test dword ptr [rsp+rdx*4+0B8h+var_B8], eax ; +0x147, 0x180002697 jnz loc_18000272F ; +0x14a, 0x18000269a dec ecx ; +0x150, 0x1800026a0 inc rdx ; +0x152, 0x1800026a2 cmp rdx, 21h ; '!' ; +0x155, 0x1800026a5 jl short loc_180002690 ; +0x159, 0x1800026a9 test rsi, rsi ; +0x15b, 0x1800026ab jle short loc_180002709 ; +0x15e, 0x1800026ae mov [rsp+0B8h+arg_10], rdi ; +0x160, 0x1800026b0 xor r9d, r9d ; +0x168, 0x1800026b8 nop dword ptr [rax+rax+00h] ; +0x16b, 0x1800026bb movsx edi, byte ptr [r9+r14] ; +0x170, 0x1800026c0 xor r8d, r8d ; +0x175, 0x1800026c5 xor ecx, ecx ; +0x178, 0x1800026c8 test dil, dil ; +0x17a, 0x1800026ca jle short loc_1800026E9 ; +0x17d, 0x1800026cd mov ebx, [r11] ; +0x17f, 0x1800026cf lea eax, [r8+r8] ; +0x182, 0x1800026d2 mov edx, ebx ; +0x186, 0x1800026d6 shr edx, cl ; +0x188, 0x1800026d8 inc ecx ; +0x18a, 0x1800026da and edx, 1 ; +0x18c, 0x1800026dc mov r8d, edx ; +0x18f, 0x1800026df or r8d, eax ; +0x192, 0x1800026e2 cmp ecx, edi ; +0x195, 0x1800026e5 jl short loc_1800026D2 ; +0x197, 0x1800026e7 test ebp, ebp ; +0x199, 0x1800026e9 jz short loc_1800026F2 ; +0x19b, 0x1800026eb test dil, dil ; +0x19d, 0x1800026ed jz short loc_1800026F9 ; +0x1a0, 0x1800026f0 mov [r11], r8d ; +0x1a2, 0x1800026f2 add r11, 4 ; +0x1a5, 0x1800026f5 inc r9 ; +0x1a9, 0x1800026f9 cmp r9, rsi ; +0x1ac, 0x1800026fc jl short loc_1800026C0 ; +0x1af, 0x1800026ff mov rdi, [rsp+0B8h+arg_10] ; +0x1b1, 0x180002701 xor eax, eax ; +0x1b9, 0x180002709 mov rcx, [rsp+0B8h+var_28] ; +0x1bb, 0x18000270b xor rcx, rsp; StackCookie ; +0x1c3, 0x180002713 call __security_check_cookie ; +0x1c6, 0x180002716 mov rbx, [rsp+0B8h+arg_18] ; +0x1cb, 0x18000271b add rsp, 0A0h ; +0x1d3, 0x180002723 pop r14 ; +0x1da, 0x18000272a pop rsi ; +0x1dc, 0x18000272c pop rbp ; +0x1dd, 0x18000272d retn ; +0x1de, 0x18000272e mov eax, 0FFFFFFFFh ; +0x1df, 0x18000272f jmp short loc_18000270B ; +0x1e4, 0x180002734