; ; __remainder_piby2_fma3 from 0x180136df0 to 0x180136fdc (492 bytes) ; ; 2 xrefs: ; > cosf @ 0x18012b3e0 ; > @ 0x180203590 ; ; 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, 38h ; +0x0, 0x180136df0 lea r9, unk_180175690 ; +0x4, 0x180136df4 vmovq r11, xmm0 ; +0xb, 0x180136dfb mov rcx, r11 ; +0x10, 0x180136e00 shr r11, 34h ; +0x13, 0x180136e03 sub r11, 3FFh ; +0x17, 0x180136e07 mov r10, r11 ; +0x1e, 0x180136e0e shr r10, 3 ; +0x21, 0x180136e11 sub r10, 86h ; +0x25, 0x180136e15 neg r10 ; +0x2c, 0x180136e1c mov rax, [r9+r10] ; +0x2f, 0x180136e1f shl rcx, 0Ch ; +0x33, 0x180136e23 shr rcx, 0Ch ; +0x37, 0x180136e27 bts rcx, 34h ; '4' ; +0x3b, 0x180136e2b add r10, 8 ; +0x40, 0x180136e30 vmovdqu xmm0, xmmword ptr [r9+r10] ; +0x44, 0x180136e34 mul rcx ; +0x4a, 0x180136e3a mov r8, rax ; +0x4d, 0x180136e3d mov r10, rdx ; +0x50, 0x180136e40 vmovq rax, xmm0 ; +0x53, 0x180136e43 mul rcx ; +0x58, 0x180136e48 and r11, 7 ; +0x5b, 0x180136e4b vpsrldq xmm0, xmm0, 8 ; +0x5f, 0x180136e4f add rax, r10 ; +0x64, 0x180136e54 adc rdx, 0 ; +0x67, 0x180136e57 mov r9, rax ; +0x6b, 0x180136e5b mov r10, rdx ; +0x6e, 0x180136e5e vmovq rax, xmm0 ; +0x71, 0x180136e61 mul rcx ; +0x76, 0x180136e66 add r10, rax ; +0x79, 0x180136e69 mov rcx, 36h ; '6' ; +0x7c, 0x180136e6c mov rax, r10 ; +0x83, 0x180136e73 sub rcx, r11 ; +0x86, 0x180136e76 xor rdx, rdx ; +0x89, 0x180136e79 shr rax, cl ; +0x8c, 0x180136e7c jnb short L__no_point_five_1 ; +0x8f, 0x180136e7f not r10 ; +0x91, 0x180136e81 not r9 ; +0x94, 0x180136e84 not r8 ; +0x97, 0x180136e87 mov rdx, 8000000000000000h ; +0x9a, 0x180136e8a nop word ptr [rax+rax+00000000h] ; +0xa4, 0x180136e94 adc rax, 0 ; +0xb0, 0x180136ea0 and rax, 3 ; +0xb4, 0x180136ea4 mov [rsp+38h+var_18], rax ; +0xb8, 0x180136ea8 mov rcx, r11 ; +0xbd, 0x180136ead add rcx, 0Ah ; +0xc0, 0x180136eb0 shl r10, cl ; +0xc4, 0x180136eb4 shr r10, cl ; +0xc7, 0x180136eb7 sub rcx, 40h ; '@' ; +0xca, 0x180136eba mov r11, rcx ; +0xce, 0x180136ebe bsr rcx, r10 ; +0xd1, 0x180136ec1 jnz short L__form_mantissa_1 ; +0xd5, 0x180136ec5 mov r10, r9 ; +0xd7, 0x180136ec7 mov r9, r8 ; +0xda, 0x180136eca mov r8, 0 ; +0xdd, 0x180136ecd bsr rcx, r10 ; +0xe4, 0x180136ed4 sub r11, 40h ; '@' ; +0xe8, 0x180136ed8 nop dword ptr [rax+00h] ; +0xec, 0x180136edc add r11, rcx ; +0xf0, 0x180136ee0 sub rcx, 34h ; '4' ; +0xf3, 0x180136ee3 cmp rcx, 0 ; +0xf7, 0x180136ee7 jl short L__hsb_below_52_1 ; +0xfb, 0x180136eeb jz short L__form_numbers_1 ; +0xfd, 0x180136eed mov r8, r10 ; +0xff, 0x180136eef shr r10, cl ; +0x102, 0x180136ef2 shr r9, cl ; +0x105, 0x180136ef5 sub rcx, 40h ; '@' ; +0x108, 0x180136ef8 neg rcx ; +0x10c, 0x180136efc shl r8, cl ; +0x10f, 0x180136eff or r9, r8 ; +0x112, 0x180136f02 jmp short L__form_numbers_1 ; +0x115, 0x180136f05 align 10h ; +0x117, 0x180136f07 neg rcx ; +0x120, 0x180136f10 mov rax, r9 ; +0x123, 0x180136f13 shl r10, cl ; +0x126, 0x180136f16 shl r9, cl ; +0x129, 0x180136f19 sub rcx, 40h ; '@' ; +0x12c, 0x180136f1c neg rcx ; +0x130, 0x180136f20 shr rax, cl ; +0x133, 0x180136f23 or r10, rax ; +0x136, 0x180136f26 shr r8, cl ; +0x139, 0x180136f29 or r9, r8 ; +0x13c, 0x180136f2c nop ; +0x13f, 0x180136f2f add r11, 3FFh ; +0x140, 0x180136f30 btr r10, 34h ; '4' ; +0x147, 0x180136f37 mov rcx, r11 ; +0x14c, 0x180136f3c or r10, rdx ; +0x14f, 0x180136f3f shl rcx, 34h ; +0x152, 0x180136f42 or r10, rcx ; +0x156, 0x180136f46 vmovq xmm2, r10 ; +0x159, 0x180136f49 bsr rcx, r9 ; +0x15e, 0x180136f4e sub rcx, 40h ; '@' ; +0x162, 0x180136f52 neg rcx ; +0x166, 0x180136f56 shl r9, cl ; +0x169, 0x180136f59 shr r9, 0Ch ; +0x16c, 0x180136f5c add rcx, 34h ; '4' ; +0x170, 0x180136f60 sub r11, rcx ; +0x174, 0x180136f64 shl r11, 34h ; +0x177, 0x180136f67 or r9, rdx ; +0x17b, 0x180136f6b or r9, r11 ; +0x17e, 0x180136f6e vmovq xmm1, r9 ; +0x181, 0x180136f71 vandpd xmm4, xmm2, cs:xmmword_180176030 ; +0x186, 0x180136f76 vsubsd xmm0, xmm2, xmm4 ; +0x18e, 0x180136f7e vmulsd xmm5, xmm2, cs:qword_180176020 ; +0x192, 0x180136f82 vmulsd xmm3, xmm4, cs:qword_180176040 ; +0x19a, 0x180136f8a vsubsd xmm3, xmm3, xmm5 ; +0x1a2, 0x180136f92 vfmadd231sd xmm3, xmm0, cs:qword_180176040 ; +0x1a6, 0x180136f96 vfmadd231sd xmm3, xmm4, cs:qword_180176050 ; +0x1af, 0x180136f9f vfmadd231sd xmm3, xmm0, cs:qword_180176050 ; +0x1b8, 0x180136fa8 vmulsd xmm4, xmm1, cs:qword_180176020 ; +0x1c1, 0x180136fb1 vfmadd231sd xmm4, xmm2, cs:qword_180176060 ; +0x1c9, 0x180136fb9 vaddsd xmm3, xmm3, xmm4 ; +0x1d2, 0x180136fc2 vaddsd xmm0, xmm5, xmm3 ; +0x1d6, 0x180136fc6 vsubsd xmm1, xmm5, xmm0 ; +0x1da, 0x180136fca vaddsd xmm1, xmm1, xmm3 ; +0x1de, 0x180136fce mov rax, [rsp+38h+var_18] ; +0x1e2, 0x180136fd2 add rsp, 38h ; +0x1e7, 0x180136fd7 retn ; +0x1eb, 0x180136fdb