; ; _handle_exc from 0x180133160 to 0x1801333c7 (615 bytes) ; ; 2 xrefs: ; > _except2 @ 0x18013309d ; > @ 0x180203128 ; ; 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, 0x180133160 push rbp ; +0x5, 0x180133165 push rsi ; +0x6, 0x180133166 push rdi ; +0x7, 0x180133167 push r12 ; +0x8, 0x180133168 push r13 ; +0xa, 0x18013316a push r14 ; +0xc, 0x18013316c push r15 ; +0xe, 0x18013316e sub rsp, 30h ; +0x10, 0x180133170 xor r14d, r14d ; +0x14, 0x180133174 movaps [rsp+68h+var_48], xmm6 ; +0x17, 0x180133177 mov ebx, ecx ; +0x1c, 0x18013317c mov r12, r8 ; +0x1e, 0x18013317e and ebx, 1Fh ; +0x21, 0x180133181 mov rbp, rdx ; +0x24, 0x180133184 mov r15d, ecx ; +0x27, 0x180133187 lea r13d, [r14+10h] ; +0x2a, 0x18013318a test cl, 8 ; +0x2e, 0x18013318e jz short loc_1801331A9 ; +0x31, 0x180133191 test r12b, r12b ; +0x33, 0x180133193 jns short loc_1801331A9 ; +0x36, 0x180133196 lea ecx, [r14+1] ; +0x38, 0x180133198 call _set_statfp ; +0x3c, 0x18013319c and ebx, 0FFFFFFF7h ; +0x41, 0x1801331a1 jmp loc_18013338B ; +0x44, 0x1801331a4 mov ecx, 4 ; +0x49, 0x1801331a9 test cl, r15b ; +0x4e, 0x1801331ae jz short loc_1801331C7 ; +0x51, 0x1801331b1 bt r12, 9 ; +0x53, 0x1801331b3 jnb short loc_1801331C7 ; +0x58, 0x1801331b8 call _set_statfp ; +0x5a, 0x1801331ba and ebx, 0FFFFFFFBh ; +0x5f, 0x1801331bf jmp loc_18013338B ; +0x62, 0x1801331c2 mov esi, 1 ; +0x67, 0x1801331c7 test sil, r15b ; +0x6c, 0x1801331cc jz loc_18013328A ; +0x6f, 0x1801331cf bt r12, 0Ah ; +0x75, 0x1801331d5 jnb loc_18013328A ; +0x7a, 0x1801331da lea ecx, [rsi+7] ; +0x80, 0x1801331e0 call _set_statfp ; +0x83, 0x1801331e3 mov rax, r12 ; +0x88, 0x1801331e8 mov ecx, 6000h ; +0x8b, 0x1801331eb and rax, rcx ; +0x90, 0x1801331f0 jz short loc_180133255 ; +0x93, 0x1801331f3 cmp rax, 2000h ; +0x95, 0x1801331f5 jz short loc_18013323C ; +0x9b, 0x1801331fb cmp rax, 4000h ; +0x9d, 0x1801331fd jz short loc_180133223 ; +0xa3, 0x180133203 cmp rax, rcx ; +0xa5, 0x180133205 jnz short loc_180133282 ; +0xa8, 0x180133208 movsd xmm0, qword ptr [rbp+0] ; +0xaa, 0x18013320a comisd xmm0, cs:qword_180170C20 ; +0xaf, 0x18013320f movsd xmm0, cs:qword_180173178 ; +0xb7, 0x180133217 ja short loc_18013327D ; +0xbf, 0x18013321f jmp short loc_180133276 ; +0xc1, 0x180133221 movsd xmm0, qword ptr [rbp+0] ; +0xc3, 0x180133223 comisd xmm0, cs:qword_180170C20 ; +0xc8, 0x180133228 ja short loc_180133264 ; +0xd0, 0x180133230 movsd xmm0, cs:qword_180173178 ; +0xd2, 0x180133232 jmp short loc_180133276 ; +0xda, 0x18013323a movsd xmm0, qword ptr [rbp+0] ; +0xdc, 0x18013323c comisd xmm0, cs:qword_180170C20 ; +0xe1, 0x180133241 jbe short loc_18013326E ; +0xe9, 0x180133249 movsd xmm0, cs:qword_180173178 ; +0xeb, 0x18013324b jmp short loc_18013327D ; +0xf3, 0x180133253 movsd xmm0, qword ptr [rbp+0] ; +0xf5, 0x180133255 comisd xmm0, cs:qword_180170C20 ; +0xfa, 0x18013325a jbe short loc_18013326E ; +0x102, 0x180133262 movsd xmm0, cs:Number ; +0x104, 0x180133264 jmp short loc_18013327D ; +0x10c, 0x18013326c movsd xmm0, cs:Number ; +0x10e, 0x18013326e xorps xmm0, cs:xmmword_1801445D0 ; +0x116, 0x180133276 movsd qword ptr [rbp+0], xmm0 ; +0x11d, 0x18013327d and ebx, 0FFFFFFFEh ; +0x122, 0x180133282 jmp loc_18013338B ; +0x125, 0x180133285 test r15b, 2 ; +0x12a, 0x18013328a jz loc_18013338B ; +0x12e, 0x18013328e bt r12, 0Bh ; +0x134, 0x180133294 jnb loc_18013338B ; +0x139, 0x180133299 movsd xmm0, qword ptr [rdx] ; +0x13f, 0x18013329f mov edi, r15d ; +0x143, 0x1801332a3 shr edi, 4 ; +0x146, 0x1801332a6 xorps xmm6, xmm6 ; +0x149, 0x1801332a9 and edi, esi ; +0x14c, 0x1801332ac ucomisd xmm0, xmm6 ; +0x14e, 0x1801332ae jp short loc_1801332BD ; +0x152, 0x1801332b2 jnz short loc_1801332BD ; +0x154, 0x1801332b4 mov edi, esi ; +0x156, 0x1801332b6 jmp loc_18013337C ; +0x158, 0x1801332b8 lea rdx, [rsp+68h+arg_0] ; +0x15d, 0x1801332bd call _decomp ; +0x162, 0x1801332c2 mov ecx, [rsp+68h+arg_0] ; +0x167, 0x1801332c7 add ecx, 0FFFFFA00h ; +0x16b, 0x1801332cb movsd [rsp+68h+arg_18], xmm0 ; +0x171, 0x1801332d1 cmp ecx, 0FFFFFBCEh ; +0x17a, 0x1801332da jge short loc_1801332ED ; +0x180, 0x1801332e0 mulsd xmm0, xmm6 ; +0x182, 0x1801332e2 mov edi, esi ; +0x186, 0x1801332e6 jmp loc_180133377 ; +0x188, 0x1801332e8 mov rax, [rsp+68h+arg_18] ; +0x18d, 0x1801332ed mov r8d, r14d ; +0x195, 0x1801332f5 comisd xmm6, xmm0 ; +0x198, 0x1801332f8 setnbe r8b ; +0x19c, 0x1801332fc shr rax, 30h ; +0x1a0, 0x180133300 and ax, 0Fh ; +0x1a4, 0x180133304 or ax, r13w ; +0x1a8, 0x180133308 mov word ptr [rsp+68h+arg_18+6], ax ; +0x1ac, 0x18013330c cmp ecx, 0FFFFFC03h ; +0x1b4, 0x180133314 jge short loc_180133362 ; +0x1ba, 0x18013331a mov eax, dword ptr [rsp+68h+arg_18] ; +0x1bc, 0x18013331c mov edx, 0FFFFFC03h ; +0x1c3, 0x180133323 sub edx, ecx ; +0x1c8, 0x180133328 mov ecx, dword ptr [rsp+68h+arg_18+4] ; +0x1ca, 0x18013332a test sil, al ; +0x1d1, 0x180133331 jz short loc_18013333B ; +0x1d4, 0x180133334 test edi, edi ; +0x1d6, 0x180133336 cmovz edi, esi ; +0x1d8, 0x180133338 shr eax, 1 ; +0x1db, 0x18013333b mov dword ptr [rsp+68h+arg_18], eax ; +0x1dd, 0x18013333d test sil, cl ; +0x1e4, 0x180133344 jz short loc_180133354 ; +0x1e7, 0x180133347 bts eax, 1Fh ; +0x1e9, 0x180133349 mov dword ptr [rsp+68h+arg_18], eax ; +0x1ed, 0x18013334d shr ecx, 1 ; +0x1f4, 0x180133354 sub rdx, rsi ; +0x1f6, 0x180133356 jnz short loc_180133331 ; +0x1f9, 0x180133359 mov dword ptr [rsp+68h+arg_18+4], ecx ; +0x1fb, 0x18013335b movsd xmm0, [rsp+68h+arg_18] ; +0x202, 0x180133362 test r8d, r8d ; +0x20b, 0x18013336b jz short loc_180133377 ; +0x20e, 0x18013336e xorps xmm0, cs:xmmword_1801445D0 ; +0x210, 0x180133370 movsd qword ptr [rbp+0], xmm0 ; +0x217, 0x180133377 test edi, edi ; +0x21c, 0x18013337c jz short loc_180133388 ; +0x21e, 0x18013337e mov rcx, r13 ; +0x220, 0x180133380 call _set_statfp ; +0x223, 0x180133383 and ebx, 0FFFFFFFDh ; +0x228, 0x180133388 test r13b, r15b ; +0x22b, 0x18013338b jz short loc_1801333A4 ; +0x22e, 0x18013338e bt r12, 0Ch ; +0x230, 0x180133390 jnb short loc_1801333A4 ; +0x235, 0x180133395 mov ecx, 20h ; ' ' ; +0x237, 0x180133397 call _set_statfp ; +0x23c, 0x18013339c and ebx, 0FFFFFFEFh ; +0x241, 0x1801333a1 movaps xmm6, [rsp+68h+var_48] ; +0x244, 0x1801333a4 test ebx, ebx ; +0x249, 0x1801333a9 mov rbx, [rsp+68h+arg_8] ; +0x24b, 0x1801333ab setz r14b ; +0x250, 0x1801333b0 mov eax, r14d ; +0x254, 0x1801333b4 add rsp, 30h ; +0x257, 0x1801333b7 pop r15 ; +0x25b, 0x1801333bb pop r14 ; +0x25d, 0x1801333bd pop r13 ; +0x25f, 0x1801333bf pop r12 ; +0x261, 0x1801333c1 pop rdi ; +0x263, 0x1801333c3 pop rsi ; +0x264, 0x1801333c4 pop rbp ; +0x265, 0x1801333c5 retn ; +0x266, 0x1801333c6