; ; sub_1800013B0 from 0x1800013b0 to 0x180001531 (385 bytes) ; ; 15 xrefs: ; > sub_180006A40 @ 0x180006b49 ; > sub_180006A40 @ 0x180006bc9 ; > sub_180006A40 @ 0x180006bee ; > sub_180006A40 @ 0x180006c0c ; > sub_180006A40 @ 0x180006c35 ; > sub_180006A40 @ 0x180006c92 ; > sub_180006A40 @ 0x180006cb7 ; > sub_180006A40 @ 0x180006cdd ; > sub_180006A40 @ 0x180006d37 ; > sub_180009770 @ 0x1800099a7 ; > sub_180009770 @ 0x180009c21 ; > @ 0x18017d354 ; > @ 0x18017d364 ; > @ 0x18017d378 ; > @ 0x1801f609c ; ; 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_8], rbx ; +0x0, 0x1800013b0 push rsi ; +0x5, 0x1800013b5 mov rsi, [rcx+38h] ; +0x6, 0x1800013b6 mov r10, rcx ; +0xa, 0x1800013ba mov ecx, [rdx+10h] ; +0xd, 0x1800013bd mov r11, rdx ; +0x10, 0x1800013c0 mov rbx, [rdx] ; +0x13, 0x1800013c3 mov r8d, [r10+70h] ; +0x16, 0x1800013c6 mov eax, [rbx] ; +0x1a, 0x1800013ca shr eax, cl ; +0x1c, 0x1800013cc mov ecx, eax ; +0x1e, 0x1800013ce mov rax, [r10+30h] ; +0x20, 0x1800013d0 and r8, rcx ; +0x24, 0x1800013d4 movzx eax, word ptr [rax+r8*2] ; +0x27, 0x1800013d7 cmp eax, 8000h ; +0x2c, 0x1800013dc jb loc_1800014C9 ; +0x31, 0x1800013e1 mov edx, [r10+68h] ; +0x37, 0x1800013e7 and eax, 7FFFh ; +0x3b, 0x1800013eb and edx, ecx ; +0x40, 0x1800013f0 mov [rsp+8+arg_0], rbp ; +0x42, 0x1800013f2 movsx ebp, word ptr [r10+62h] ; +0x47, 0x1800013f7 rol edx, 10h ; +0x4c, 0x1800013fc mov r9d, edx ; +0x4f, 0x1800013ff mov ecx, edx ; +0x52, 0x180001402 shl ecx, 8 ; +0x54, 0x180001404 shl edx, 8 ; +0x57, 0x180001407 shr r9d, 8 ; +0x5a, 0x18000140a xor r9d, ecx ; +0x5e, 0x18000140e and r9d, 0FF00FFh ; +0x61, 0x180001411 xor r9d, edx ; +0x68, 0x180001418 mov r8d, r9d ; +0x6b, 0x18000141b mov ecx, r9d ; +0x6e, 0x18000141e shr r8d, 4 ; +0x71, 0x180001421 shl ecx, 4 ; +0x75, 0x180001425 xor r8d, ecx ; +0x78, 0x180001428 shl r9d, 4 ; +0x7b, 0x18000142b and r8d, 0F0F0F0Fh ; +0x7f, 0x18000142f xor r8d, r9d ; +0x86, 0x180001436 mov r9, [r10+40h] ; +0x89, 0x180001439 mov edx, r8d ; +0x8d, 0x18000143d shr edx, 2 ; +0x90, 0x180001440 lea ecx, ds:0[r8*4] ; +0x93, 0x180001443 xor edx, ecx ; +0x9b, 0x18000144b lea ecx, ds:0[r8*4] ; +0x9d, 0x18000144d and edx, 33333333h ; +0xa5, 0x180001455 xor edx, ecx ; +0xab, 0x18000145b mov r8d, edx ; +0xad, 0x18000145d shr r8d, 1 ; +0xb0, 0x180001460 lea ecx, [rdx+rdx] ; +0xb3, 0x180001463 xor r8d, ecx ; +0xb6, 0x180001466 lea ecx, [rdx+rdx] ; +0xb9, 0x180001469 and r8d, 55555555h ; +0xbc, 0x18000146c mov edx, ebp ; +0xc3, 0x180001473 sub edx, eax ; +0xc5, 0x180001475 xor r8d, ecx ; +0xc7, 0x180001477 mov ecx, edx ; +0xca, 0x18000147a lea rax, [r9+rax*4] ; +0xcc, 0x18000147c shr ecx, 2 ; +0xd0, 0x180001480 test ecx, ecx ; +0xd3, 0x180001483 jz short loc_1800014AF ; +0xd5, 0x180001485 cmp [rax], r8d ; +0xd7, 0x180001487 ja loc_180001528 ; +0xda, 0x18000148a cmp [rax+4], r8d ; +0xe0, 0x180001490 ja loc_18000151B ; +0xe4, 0x180001494 cmp [rax+8], r8d ; +0xea, 0x18000149a ja short loc_18000150E ; +0xee, 0x18000149e cmp [rax+0Ch], r8d ; +0xf0, 0x1800014a0 ja short loc_180001501 ; +0xf4, 0x1800014a4 add rax, 10h ; +0xf6, 0x1800014a6 add ecx, 0FFFFFFFFh ; +0xfa, 0x1800014aa jnz short loc_180001487 ; +0xfd, 0x1800014ad and edx, 3 ; +0xff, 0x1800014af jz short loc_1800014C2 ; +0x102, 0x1800014b2 cmp [rax], r8d ; +0x104, 0x1800014b4 ja short loc_180001528 ; +0x107, 0x1800014b7 add rax, 4 ; +0x109, 0x1800014b9 add edx, 0FFFFFFFFh ; +0x10d, 0x1800014bd jnz short loc_1800014B4 ; +0x110, 0x1800014c0 mov eax, ebp ; +0x112, 0x1800014c2 mov rbp, [rsp+8+arg_0] ; +0x114, 0x1800014c4 mov ecx, eax ; +0x119, 0x1800014c9 and ecx, 7FFFh ; +0x11b, 0x1800014cb movsx edx, byte ptr [rcx+rsi] ; +0x121, 0x1800014d1 add edx, [r11+10h] ; +0x125, 0x1800014d5 mov ecx, edx ; +0x129, 0x1800014d9 and ecx, 7 ; +0x12b, 0x1800014db mov [r11+10h], ecx ; +0x12e, 0x1800014de movsxd rcx, edx ; +0x132, 0x1800014e2 sar rcx, 3 ; +0x135, 0x1800014e5 add rcx, rbx ; +0x139, 0x1800014e9 mov rbx, [rsp+8+arg_8] ; +0x13c, 0x1800014ec mov [r11], rcx ; +0x141, 0x1800014f1 lea ecx, [rax-1] ; +0x144, 0x1800014f4 mov rax, [r10+50h] ; +0x147, 0x1800014f7 movsx eax, word ptr [rax+rcx*2] ; +0x14b, 0x1800014fb pop rsi ; +0x14f, 0x1800014ff retn ; +0x150, 0x180001500 sub rax, r9 ; +0x151, 0x180001501 add rax, 0Ch ; +0x154, 0x180001504 sar rax, 2 ; +0x158, 0x180001508 jmp short loc_1800014C4 ; +0x15c, 0x18000150c sub rax, r9 ; +0x15e, 0x18000150e add rax, 8 ; +0x161, 0x180001511 sar rax, 2 ; +0x165, 0x180001515 jmp short loc_1800014C4 ; +0x169, 0x180001519 sub rax, r9 ; +0x16b, 0x18000151b add rax, 4 ; +0x16e, 0x18000151e sar rax, 2 ; +0x172, 0x180001522 jmp short loc_1800014C4 ; +0x176, 0x180001526 sub rax, r9 ; +0x178, 0x180001528 sar rax, 2 ; +0x17b, 0x18000152b jmp short loc_1800014C4 ; +0x17f, 0x18000152f