; ; __remainder_piby2d2f_forC from 0x1801368a0 to 0x180136a2c (396 bytes) ; ; 3 xrefs: ; > sinf @ 0x18012a0d4 ; > @ 0x18020353c ; > @ 0x180203548 ; ; 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 ; sub rsp, 88h ; +0x0, 0x1801368a0 mov [rsp+88h+var_68], rdi ; +0x7, 0x1801368a7 mov [rsp+88h+var_58], rsi ; +0xc, 0x1801368ac mov rdi, rcx ; +0x11, 0x1801368b1 mov rsi, rdx ; +0x14, 0x1801368b4 mov rdx, r8 ; +0x17, 0x1801368b7 movq xmm0, rdi ; +0x1a, 0x1801368ba lea r9, unk_180175740 ; +0x1f, 0x1801368bf movq r11, xmm0 ; +0x26, 0x1801368c6 mov rcx, r11 ; +0x2b, 0x1801368cb shr r11, 34h ; +0x2e, 0x1801368ce sub r11, 3FFh ; +0x32, 0x1801368d2 mov r10, r11 ; +0x39, 0x1801368d9 shr r10, 3 ; +0x3c, 0x1801368dc sub r10, 86h ; +0x40, 0x1801368e0 neg r10 ; +0x47, 0x1801368e7 mov rax, [r9+r10] ; +0x4a, 0x1801368ea mov rdi, rdx ; +0x4e, 0x1801368ee shl rcx, 0Ch ; +0x51, 0x1801368f1 shr rcx, 0Ch ; +0x55, 0x1801368f5 bts rcx, 34h ; '4' ; +0x59, 0x1801368f9 add r10, 8 ; +0x5e, 0x1801368fe movdqu xmm0, xmmword ptr [r9+r10] ; +0x62, 0x180136902 mul rcx ; +0x68, 0x180136908 mov r8, rax ; +0x6b, 0x18013690b mov r10, rdx ; +0x6e, 0x18013690e movq rax, xmm0 ; +0x71, 0x180136911 mul rcx ; +0x76, 0x180136916 and r11, 7 ; +0x79, 0x180136919 psrldq xmm0, 8 ; +0x7d, 0x18013691d add rax, r10 ; +0x82, 0x180136922 adc rdx, 0 ; +0x85, 0x180136925 mov r9, rax ; +0x89, 0x180136929 mov r10, rdx ; +0x8c, 0x18013692c movq rax, xmm0 ; +0x8f, 0x18013692f mul rcx ; +0x94, 0x180136934 add r10, rax ; +0x97, 0x180136937 mov rcx, 36h ; '6' ; +0x9a, 0x18013693a mov rax, r10 ; +0xa1, 0x180136941 sub rcx, r11 ; +0xa4, 0x180136944 xor rdx, rdx ; +0xa7, 0x180136947 shr rax, cl ; +0xaa, 0x18013694a jnb short L__no_point_five ; +0xad, 0x18013694d not r10 ; +0xaf, 0x18013694f not r9 ; +0xb2, 0x180136952 not r8 ; +0xb5, 0x180136955 mov rdx, 8000000000000000h ; +0xb8, 0x180136958 nop word ptr [rax+rax+00000000h] ; +0xc2, 0x180136962 adc rax, 0 ; +0xd0, 0x180136970 and rax, 3 ; +0xd4, 0x180136974 mov [rdi], eax ; +0xd8, 0x180136978 mov rcx, r11 ; +0xda, 0x18013697a add rcx, 0Ah ; +0xdd, 0x18013697d shl r10, cl ; +0xe1, 0x180136981 shr r10, cl ; +0xe4, 0x180136984 sub rcx, 40h ; '@' ; +0xe7, 0x180136987 mov r11, rcx ; +0xeb, 0x18013698b bsr rcx, r10 ; +0xee, 0x18013698e jnz short L__form_mantissa ; +0xf2, 0x180136992 mov r10, r9 ; +0xf4, 0x180136994 mov r9, r8 ; +0xf7, 0x180136997 bsr rcx, r10 ; +0xfa, 0x18013699a sub r11, 40h ; '@' ; +0xfe, 0x18013699e nop word ptr [rax+rax+00000000h] ; +0x102, 0x1801369a2 add r11, rcx ; +0x110, 0x1801369b0 sub rcx, 34h ; '4' ; +0x113, 0x1801369b3 cmp rcx, 0 ; +0x117, 0x1801369b7 jl short L__hsb_below_52 ; +0x11b, 0x1801369bb jz short L__form_numbers ; +0x11d, 0x1801369bd mov r8, r10 ; +0x11f, 0x1801369bf shr r10, cl ; +0x122, 0x1801369c2 jmp short L__form_numbers ; +0x125, 0x1801369c5 align 10h ; +0x127, 0x1801369c7 neg rcx ; +0x130, 0x1801369d0 mov rax, r9 ; +0x133, 0x1801369d3 shl r10, cl ; +0x136, 0x1801369d6 shl r9, cl ; +0x139, 0x1801369d9 sub rcx, 40h ; '@' ; +0x13c, 0x1801369dc neg rcx ; +0x140, 0x1801369e0 shr rax, cl ; +0x143, 0x1801369e3 or r10, rax ; +0x146, 0x1801369e6 nop dword ptr [rax+00000000h] ; +0x149, 0x1801369e9 add r11, 3FFh ; +0x150, 0x1801369f0 btr r10, 34h ; '4' ; +0x157, 0x1801369f7 mov rcx, r11 ; +0x15c, 0x1801369fc or r10, rdx ; +0x15f, 0x1801369ff shl rcx, 34h ; +0x162, 0x180136a02 or r10, rcx ; +0x166, 0x180136a06 movq xmm0, r10 ; +0x169, 0x180136a09 mulsd xmm0, cs:qword_180175730 ; +0x16e, 0x180136a0e movsd qword ptr [rsi], xmm0 ; +0x176, 0x180136a16 mov rsi, [rsp+88h+var_58] ; +0x17a, 0x180136a1a mov rdi, [rsp+88h+var_68] ; +0x17f, 0x180136a1f add rsp, 88h ; +0x184, 0x180136a24 retn ; +0x18b, 0x180136a2b