; ; sub_1800041D0 from 0x1800041d0 to 0x18000448d (701 bytes) ; ; 2 xrefs: ; > sub_180003D30 @ 0x180003dbf ; > @ 0x1801f6264 ; ; 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, 0x1800041d0 mov [rsp+arg_8], rbp ; +0x5, 0x1800041d5 mov [rsp+arg_10], rsi ; +0xa, 0x1800041da mov [rsp+arg_18], rdi ; +0xf, 0x1800041df push r12 ; +0x14, 0x1800041e4 push r14 ; +0x16, 0x1800041e6 push r15 ; +0x18, 0x1800041e8 mov rax, [rcx] ; +0x1a, 0x1800041ea mov r14, r9 ; +0x1d, 0x1800041ed mov r15, [rsp+18h+arg_40] ; +0x20, 0x1800041f0 mov r11d, r8d ; +0x25, 0x1800041f5 mov rbp, [rsp+18h+arg_48] ; +0x28, 0x1800041f8 mov r12, [rsp+18h+arg_50] ; +0x2d, 0x1800041fd mov r10, [rax+20h] ; +0x32, 0x180004202 mov eax, [rcx+28h] ; +0x36, 0x180004206 mov ebx, [r10] ; +0x39, 0x180004209 mov edi, ebx ; +0x3c, 0x18000420c mov r10d, [r10+4] ; +0x3e, 0x18000420e mov esi, r10d ; +0x42, 0x180004212 sar esi, 1 ; +0x45, 0x180004215 sar edi, 1 ; +0x47, 0x180004217 sar ebx, 2 ; +0x49, 0x180004219 sar r10d, 2 ; +0x4c, 0x18000421c cmp dword ptr [rcx+24h], 0 ; +0x50, 0x180004220 jz loc_18000436E ; +0x54, 0x180004224 test eax, eax ; +0x5a, 0x18000422a mov rax, [rsp+18h+arg_30] ; +0x5c, 0x18000422c jz short loc_1800042A8 ; +0x61, 0x180004231 mov edi, esi ; +0x63, 0x180004233 sub edi, edx ; +0x65, 0x180004235 cmp edx, r10d ; +0x67, 0x180004237 mov r9d, edi ; +0x6a, 0x18000423a cmovle r9d, edx ; +0x6d, 0x18000423d xor r8d, r8d ; +0x71, 0x180004241 mov [r14], r8d ; +0x74, 0x180004244 mov [rax], r8d ; +0x77, 0x180004247 cmp edx, r10d ; +0x7a, 0x18000424a jle short loc_180004254 ; +0x7d, 0x18000424d mov ecx, r8d ; +0x7f, 0x18000424f jmp short loc_180004268 ; +0x82, 0x180004252 cmp r10d, r11d ; +0x84, 0x180004254 mov ecx, r11d ; +0x87, 0x180004257 mov eax, r8d ; +0x8a, 0x18000425a cmovl ecx, r10d ; +0x8d, 0x18000425d test edx, edx ; +0x91, 0x180004261 cmovg eax, edx ; +0x93, 0x180004263 sub ecx, eax ; +0x96, 0x180004266 mov rax, [rsp+18h+arg_20] ; +0x98, 0x180004268 mov [rax], ecx ; +0x9d, 0x18000426d cmp r11d, r10d ; +0x9f, 0x18000426f jl short loc_18000428A ; +0xa2, 0x180004272 cmp r10d, edx ; +0xa4, 0x180004274 mov eax, edx ; +0xa7, 0x180004277 mov r8d, r11d ; +0xa9, 0x180004279 cmovg eax, r10d ; +0xac, 0x18000427c cmp esi, r11d ; +0xb0, 0x180004280 cmovl r8d, esi ; +0xb3, 0x180004283 sub r8d, eax ; +0xb7, 0x180004287 mov rax, [rsp+18h+arg_28] ; +0xba, 0x18000428a sub r10d, r9d ; +0xbf, 0x18000428f mov [rax], r8d ; +0xc2, 0x180004292 mov rax, [rsp+18h+arg_38] ; +0xc5, 0x180004295 mov [rax], r10d ; +0xca, 0x18000429a mov [r15], r9d ; +0xcd, 0x18000429d mov [rbp+0], edi ; +0xd0, 0x1800042a0 jmp loc_18000446E ; +0xd3, 0x1800042a3 xor r8d, r8d ; +0xd8, 0x1800042a8 mov r9d, r10d ; +0xdb, 0x1800042ab sub r9d, ebx ; +0xde, 0x1800042ae mov [rax], r8d ; +0xe1, 0x1800042b1 cmp edx, r9d ; +0xe4, 0x1800042b4 jle short loc_1800042BE ; +0xe7, 0x1800042b7 mov ecx, r8d ; +0xe9, 0x1800042b9 jmp short loc_1800042D2 ; +0xec, 0x1800042bc cmp r11d, r9d ; +0xee, 0x1800042be mov ecx, r9d ; +0xf1, 0x1800042c1 mov eax, edx ; +0xf4, 0x1800042c4 cmovl ecx, r11d ; +0xf6, 0x1800042c6 test edx, edx ; +0xfa, 0x1800042ca cmovs eax, r8d ; +0xfc, 0x1800042cc sub ecx, eax ; +0x100, 0x1800042d0 mov [r14], ecx ; +0x102, 0x1800042d2 cmp r11d, r9d ; +0x105, 0x1800042d5 jl short loc_1800042F6 ; +0x108, 0x1800042d8 cmp edx, r10d ; +0x10a, 0x1800042da jg short loc_1800042F6 ; +0x10d, 0x1800042dd cmp edx, r9d ; +0x10f, 0x1800042df mov eax, r9d ; +0x112, 0x1800042e2 mov ecx, r11d ; +0x115, 0x1800042e5 cmovg eax, edx ; +0x118, 0x1800042e8 cmp r10d, r11d ; +0x11b, 0x1800042eb cmovl ecx, r10d ; +0x11e, 0x1800042ee sub ecx, eax ; +0x122, 0x1800042f2 jmp short loc_1800042F9 ; +0x124, 0x1800042f4 mov ecx, r8d ; +0x126, 0x1800042f6 mov rax, [rsp+18h+arg_20] ; +0x129, 0x1800042f9 mov [rax], ecx ; +0x12e, 0x1800042fe cmp r11d, r10d ; +0x130, 0x180004300 jge short loc_18000430A ; +0x133, 0x180004303 mov r11d, r8d ; +0x135, 0x180004305 jmp short loc_180004321 ; +0x138, 0x180004308 lea eax, [r10+rbx] ; +0x13a, 0x18000430a cmp eax, r11d ; +0x13e, 0x18000430e cmovl r11d, eax ; +0x141, 0x180004311 cmp edx, r10d ; +0x145, 0x180004315 mov eax, r10d ; +0x148, 0x180004318 cmovg eax, edx ; +0x14b, 0x18000431b sub r11d, eax ; +0x14e, 0x18000431e mov rax, [rsp+18h+arg_28] ; +0x151, 0x180004321 sub esi, edx ; +0x156, 0x180004326 cmp edx, r10d ; +0x158, 0x180004328 mov ecx, r10d ; +0x15b, 0x18000432b cmovle esi, edx ; +0x15e, 0x18000432e sub ecx, esi ; +0x161, 0x180004331 mov [rax], r11d ; +0x163, 0x180004333 mov rax, [rsp+18h+arg_38] ; +0x166, 0x180004336 mov [rax], ecx ; +0x16b, 0x18000433b mov ecx, ebx ; +0x16d, 0x18000433d sub ecx, r10d ; +0x16f, 0x18000433f add ecx, edx ; +0x172, 0x180004342 cmp ecx, ebx ; +0x174, 0x180004344 jle short loc_180004350 ; +0x176, 0x180004346 sub r9d, edx ; +0x178, 0x180004348 add r9d, edi ; +0x17b, 0x18000434b jmp short loc_180004359 ; +0x17e, 0x18000434e test ecx, ecx ; +0x180, 0x180004350 mov r9d, r8d ; +0x182, 0x180004352 cmovns r9d, ecx ; +0x185, 0x180004355 test ecx, ecx ; +0x189, 0x180004359 mov [r15], r9d ; +0x18b, 0x18000435b mov edx, r8d ; +0x18e, 0x18000435e cmovns edx, ecx ; +0x191, 0x180004361 sub edi, edx ; +0x194, 0x180004364 mov [rbp+0], edi ; +0x196, 0x180004366 jmp loc_18000446E ; +0x199, 0x180004369 xor r8d, r8d ; +0x19e, 0x18000436e mov esi, edi ; +0x1a1, 0x180004371 sub esi, edx ; +0x1a3, 0x180004373 mov [r9], r8d ; +0x1a5, 0x180004375 mov r9d, esi ; +0x1a8, 0x180004378 test eax, eax ; +0x1ab, 0x18000437b jz loc_18000440E ; +0x1ad, 0x18000437d cmp edx, ebx ; +0x1b3, 0x180004383 cmovle r9d, edx ; +0x1b5, 0x180004385 cmp r11d, edi ; +0x1b9, 0x180004389 jge short loc_180004393 ; +0x1bc, 0x18000438c mov ecx, r8d ; +0x1be, 0x18000438e jmp short loc_1800043A9 ; +0x1c1, 0x180004391 lea eax, [r10+rbx] ; +0x1c3, 0x180004393 mov ecx, r11d ; +0x1c7, 0x180004397 cmp eax, r11d ; +0x1ca, 0x18000439a cmovl ecx, eax ; +0x1cd, 0x18000439d cmp edx, edi ; +0x1d0, 0x1800043a0 mov eax, edi ; +0x1d2, 0x1800043a2 cmovg eax, edx ; +0x1d4, 0x1800043a4 sub ecx, eax ; +0x1d7, 0x1800043a7 mov rax, [rsp+18h+arg_30] ; +0x1d9, 0x1800043a9 mov [rax], ecx ; +0x1de, 0x1800043ae cmp edx, ebx ; +0x1e0, 0x1800043b0 jle short loc_1800043B9 ; +0x1e2, 0x1800043b2 mov ecx, r8d ; +0x1e4, 0x1800043b4 jmp short loc_1800043CC ; +0x1e7, 0x1800043b7 cmp ebx, r11d ; +0x1e9, 0x1800043b9 mov ecx, r11d ; +0x1ec, 0x1800043bc mov eax, r8d ; +0x1ef, 0x1800043bf cmovl ecx, ebx ; +0x1f2, 0x1800043c2 test edx, edx ; +0x1f5, 0x1800043c5 cmovg eax, edx ; +0x1f7, 0x1800043c7 sub ecx, eax ; +0x1fa, 0x1800043ca mov rax, [rsp+18h+arg_20] ; +0x1fc, 0x1800043cc mov [rax], ecx ; +0x201, 0x1800043d1 cmp edx, edi ; +0x203, 0x1800043d3 jg short loc_1800043EF ; +0x205, 0x1800043d5 cmp r11d, ebx ; +0x207, 0x1800043d7 jl short loc_1800043EF ; +0x20a, 0x1800043da cmp edx, ebx ; +0x20c, 0x1800043dc mov eax, ebx ; +0x20e, 0x1800043de cmovg eax, edx ; +0x210, 0x1800043e0 cmp edi, r11d ; +0x213, 0x1800043e3 cmovl r11d, edi ; +0x216, 0x1800043e6 sub r11d, eax ; +0x21a, 0x1800043ea jmp short loc_1800043F2 ; +0x21d, 0x1800043ed mov r11d, r8d ; +0x21f, 0x1800043ef mov rax, [rsp+18h+arg_28] ; +0x222, 0x1800043f2 mov ecx, ebx ; +0x227, 0x1800043f7 sub ecx, r9d ; +0x229, 0x1800043f9 sub r9d, ebx ; +0x22c, 0x1800043fc add r9d, r10d ; +0x22f, 0x1800043ff mov [rax], r11d ; +0x232, 0x180004402 mov rax, [rsp+18h+arg_38] ; +0x235, 0x180004405 mov [rax], ecx ; +0x23a, 0x18000440a jmp short loc_180004468 ; +0x23c, 0x18000440c mov rax, [rsp+18h+arg_30] ; +0x23e, 0x18000440e cmp edx, ebx ; +0x243, 0x180004413 cmovle r9d, edx ; +0x245, 0x180004415 mov [rax], r8d ; +0x249, 0x180004419 jle short loc_180004423 ; +0x24c, 0x18000441c mov ecx, r8d ; +0x24e, 0x18000441e jmp short loc_180004436 ; +0x251, 0x180004421 cmp ebx, r11d ; +0x253, 0x180004423 mov ecx, r11d ; +0x256, 0x180004426 mov eax, r8d ; +0x259, 0x180004429 cmovl ecx, ebx ; +0x25c, 0x18000442c test edx, edx ; +0x25f, 0x18000442f cmovg eax, edx ; +0x261, 0x180004431 sub ecx, eax ; +0x264, 0x180004434 mov rax, [rsp+18h+arg_20] ; +0x266, 0x180004436 mov [rax], ecx ; +0x26b, 0x18000443b cmp r11d, ebx ; +0x26d, 0x18000443d jl short loc_180004456 ; +0x270, 0x180004440 cmp edx, ebx ; +0x272, 0x180004442 mov eax, ebx ; +0x274, 0x180004444 mov r8d, r11d ; +0x276, 0x180004446 cmovg eax, edx ; +0x279, 0x180004449 cmp edi, r11d ; +0x27c, 0x18000444c cmovl r8d, edi ; +0x27f, 0x18000444f sub r8d, eax ; +0x283, 0x180004453 mov rax, [rsp+18h+arg_28] ; +0x286, 0x180004456 sub ebx, r9d ; +0x28b, 0x18000445b mov [rax], r8d ; +0x28e, 0x18000445e mov rax, [rsp+18h+arg_38] ; +0x291, 0x180004461 mov [rax], ebx ; +0x296, 0x180004466 mov [r15], r9d ; +0x298, 0x180004468 mov [rbp+0], esi ; +0x29b, 0x18000446b mov [r12], edx ; +0x29e, 0x18000446e mov rbx, [rsp+18h+arg_0] ; +0x2a2, 0x180004472 mov rbp, [rsp+18h+arg_8] ; +0x2a7, 0x180004477 mov rsi, [rsp+18h+arg_10] ; +0x2ac, 0x18000447c mov rdi, [rsp+18h+arg_18] ; +0x2b1, 0x180004481 pop r15 ; +0x2b6, 0x180004486 pop r14 ; +0x2b8, 0x180004488 pop r12 ; +0x2ba, 0x18000448a retn ; +0x2bc, 0x18000448c