; ; logf from 0x180127880 to 0x180127c76 (1014 bytes) ; ; 8 xrefs: ; > sub_18001CFD0 @ 0x18001d61c ; > sub_18004DE50 @ 0x18004dec0 ; > sub_1800DBF50 @ 0x1800dc01e ; > sub_1800DBF50 @ 0x1800dc069 ; > sub_1800DC760 @ 0x1800dc7cf ; > sub_1800DC760 @ 0x1800dc827 ; > sub_1800DC760 @ 0x1800dc869 ; > @ 0x180202a08 ; ; 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, 0x180127880 cmp cs:dword_1801F4D54, 0 ; +0x4, 0x180127884 jnz Llogf_fma3 ; +0xb, 0x18012788b xor rax, rax ; +0x11, 0x180127891 movdqa xmm3, xmm0 ; +0x14, 0x180127894 movaps xmm4, xmm0 ; +0x18, 0x180127898 psrld xmm3, 17h ; +0x1b, 0x18012789b movd eax, xmm0 ; +0x20, 0x1801278a0 mov ecx, eax ; +0x24, 0x1801278a4 btr ecx, 1Fh ; +0x26, 0x1801278a6 cmp ecx, dword ptr cs:xmmword_180170CA0 ; +0x2a, 0x1801278aa jnb Llogf_sse2_x_is_inf_or_nan ; +0x30, 0x1801278b0 psubd xmm3, cs:xmmword_180170CF0 ; +0x36, 0x1801278b6 movdqa xmm2, xmm0 ; +0x3e, 0x1801278be cvtdq2ps xmm5, xmm3 ; +0x42, 0x1801278c2 xorps xmm1, xmm1 ; +0x45, 0x1801278c5 comiss xmm0, xmm1 ; +0x48, 0x1801278c8 jbe Llogf_sse2_x_is_zero_or_neg ; +0x4b, 0x1801278cb pand xmm2, cs:xmmword_180170CE0 ; +0x51, 0x1801278d1 subss xmm4, dword ptr cs:xmmword_180170C70 ; +0x59, 0x1801278d9 comiss xmm5, cs:dword_180170D94 ; +0x61, 0x1801278e1 jz Llogf_sse2_subnormal_adjust ; +0x68, 0x1801278e8 mov r9d, eax ; +0x6e, 0x1801278ee and eax, dword ptr cs:xmmword_180170D10 ; +0x71, 0x1801278f1 and r9d, dword ptr cs:xmmword_180170D20 ; +0x77, 0x1801278f7 shl r9d, 1 ; +0x7e, 0x1801278fe add eax, r9d ; +0x81, 0x180127901 movd xmm1, eax ; +0x84, 0x180127904 andps xmm4, cs:xmmword_180170CD0 ; +0x88, 0x180127908 comiss xmm4, cs:dword_180170D9C ; +0x8f, 0x18012790f jb Llogf_sse2_near_one ; +0x96, 0x180127916 shr eax, 10h ; +0x9c, 0x18012791c por xmm2, cs:xmmword_180170D70 ; +0x9f, 0x18012791f por xmm1, cs:xmmword_180170D70 ; +0xa7, 0x180127927 lea r9, flt_180173840 ; +0xaf, 0x18012792f subss xmm1, xmm2 ; +0xb6, 0x180127936 mulss xmm1, dword ptr [r9+rax*4] ; +0xba, 0x18012793a movaps xmm2, xmm1 ; +0xc0, 0x180127940 movaps xmm0, xmm1 ; +0xc3, 0x180127943 mulss xmm2, dword ptr cs:xmmword_180170D80 ; +0xc6, 0x180127946 mulss xmm0, xmm1 ; +0xce, 0x18012794e addss xmm2, cs:dword_180170D90 ; +0xd2, 0x180127952 movaps xmm3, cs:xmmword_180170D60 ; +0xda, 0x18012795a lea r9, flt_180173630 ; +0xe1, 0x180127961 lea r10, flt_180173420 ; +0xe8, 0x180127968 mulss xmm2, xmm0 ; +0xef, 0x18012796f mulss xmm3, xmm5 ; +0xf3, 0x180127973 addss xmm1, xmm2 ; +0xf7, 0x180127977 movaps xmm0, cs:xmmword_180170D50 ; +0xfb, 0x18012797b subss xmm3, xmm1 ; +0x102, 0x180127982 mulss xmm0, xmm5 ; +0x106, 0x180127986 addss xmm3, dword ptr [r9+rax*4] ; +0x10a, 0x18012798a addss xmm0, dword ptr [r10+rax*4] ; +0x110, 0x180127990 addss xmm0, xmm3 ; +0x116, 0x180127996 add rsp, 38h ; +0x11a, 0x18012799a retn ; +0x11e, 0x18012799e align 20h ; +0x11f, 0x18012799f movaps xmm2, cs:xmmword_180170C80 ; +0x120, 0x1801279a0 subss xmm0, dword ptr cs:xmmword_180170C70 ; +0x127, 0x1801279a7 addss xmm2, xmm0 ; +0x12f, 0x1801279af movaps xmm1, xmm0 ; +0x133, 0x1801279b3 divss xmm1, xmm2 ; +0x136, 0x1801279b6 movaps xmm4, xmm0 ; +0x13a, 0x1801279ba mulss xmm4, xmm1 ; +0x13d, 0x1801279bd addss xmm1, xmm1 ; +0x141, 0x1801279c1 movaps xmm2, xmm1 ; +0x145, 0x1801279c5 mulss xmm2, xmm2 ; +0x148, 0x1801279c8 movaps xmm3, xmm1 ; +0x14c, 0x1801279cc mulss xmm3, xmm2 ; +0x14f, 0x1801279cf mulss xmm2, dword ptr cs:xmmword_180170D40 ; +0x153, 0x1801279d3 addss xmm2, cs:dword_180170D30 ; +0x15b, 0x1801279db mulss xmm2, xmm3 ; +0x163, 0x1801279e3 subss xmm2, xmm4 ; +0x167, 0x1801279e7 addss xmm0, xmm2 ; +0x16b, 0x1801279eb add rsp, 38h ; +0x16f, 0x1801279ef retn ; +0x173, 0x1801279f3 align 20h ; +0x174, 0x1801279f4 por xmm2, cs:xmmword_180170C70 ; +0x180, 0x180127a00 subss xmm2, dword ptr cs:xmmword_180170C70 ; +0x188, 0x180127a08 movdqa xmm5, xmm2 ; +0x190, 0x180127a10 pand xmm2, cs:xmmword_180170CE0 ; +0x194, 0x180127a14 movd eax, xmm2 ; +0x19c, 0x180127a1c psrld xmm5, 17h ; +0x1a0, 0x180127a20 psubd xmm5, cs:xmmword_180170D00 ; +0x1a5, 0x180127a25 cvtdq2ps xmm5, xmm5 ; +0x1ad, 0x180127a2d jmp Llogf_sse2_continue_common ; +0x1b0, 0x180127a30 jnz short Llogf_sse2_x_is_neg ; +0x1b5, 0x180127a35 movaps xmm1, cs:xmmword_180170C90 ; +0x1b7, 0x180127a37 mov r8d, cs:dword_180170DA0 ; +0x1be, 0x180127a3e call _logf_special ; +0x1c5, 0x180127a45 jmp short Llogf_sse2_finish ; +0x1ca, 0x180127a4a movaps xmm1, cs:xmmword_180170CC0 ; +0x1cc, 0x180127a4c mov r8d, cs:dword_180170DA4 ; +0x1d3, 0x180127a53 call _logf_special ; +0x1da, 0x180127a5a jmp short Llogf_sse2_finish ; +0x1df, 0x180127a5f cmp eax, dword ptr cs:xmmword_180170CA0 ; +0x1e1, 0x180127a61 jz short Llogf_sse2_finish ; +0x1e7, 0x180127a67 cmp eax, dword ptr cs:xmmword_180170C90 ; +0x1e9, 0x180127a69 jz short Llogf_sse2_x_is_neg ; +0x1ef, 0x180127a6f or eax, cs:dword_180170D98 ; +0x1f1, 0x180127a71 movd xmm0, eax ; +0x1f7, 0x180127a77 add rsp, 38h ; +0x1fb, 0x180127a7b retn ; +0x1ff, 0x180127a7f vmovaps xmm4, cs:xmmword_180170CA0 ; +0x200, 0x180127a80 xor rax, rax ; +0x208, 0x180127a88 vpsrld xmm3, xmm0, 17h ; +0x20b, 0x180127a8b vmovd eax, xmm0 ; +0x210, 0x180127a90 vpsubd xmm3, xmm3, cs:xmmword_180170CF0 ; +0x214, 0x180127a94 vcvtdq2ps xmm5, xmm3 ; +0x21c, 0x180127a9c vpand xmm1, xmm0, xmm4 ; +0x220, 0x180127aa0 vcomiss xmm1, xmm4 ; +0x224, 0x180127aa4 jz Llogf_fma3_x_is_inf_or_nan ; +0x228, 0x180127aa8 vpxor xmm1, xmm1, xmm1 ; +0x22e, 0x180127aae vcomiss xmm0, xmm1 ; +0x232, 0x180127ab2 jbe Llogf_fma3_x_is_zero_or_neg ; +0x236, 0x180127ab6 vpand xmm2, xmm0, cs:xmmword_180170CE0 ; +0x23c, 0x180127abc vsubss xmm4, xmm0, dword ptr cs:xmmword_180170C70 ; +0x244, 0x180127ac4 vcomiss xmm5, cs:dword_180170D94 ; +0x24c, 0x180127acc jz Llogf_fma3_subnormal_adjust ; +0x254, 0x180127ad4 vpand xmm1, xmm0, cs:xmmword_180170D10 ; +0x25a, 0x180127ada vpand xmm3, xmm0, cs:xmmword_180170D20 ; +0x262, 0x180127ae2 vpslld xmm3, xmm3, 1 ; +0x26a, 0x180127aea vpaddd xmm1, xmm3, xmm1 ; +0x26f, 0x180127aef vmovd eax, xmm1 ; +0x273, 0x180127af3 vandps xmm4, xmm4, cs:xmmword_180170CD0 ; +0x277, 0x180127af7 vcomiss xmm4, cs:dword_180170D9C ; +0x27f, 0x180127aff jb Llogf_fma3_near_one ; +0x287, 0x180127b07 shr eax, 10h ; +0x28d, 0x180127b0d vpor xmm2, xmm2, cs:xmmword_180170D70 ; +0x290, 0x180127b10 vpor xmm1, xmm1, cs:xmmword_180170D70 ; +0x298, 0x180127b18 lea r9, flt_180173840 ; +0x2a0, 0x180127b20 vsubss xmm1, xmm1, xmm2 ; +0x2a7, 0x180127b27 vmulss xmm1, xmm1, dword ptr [r9+rax*4] ; +0x2ab, 0x180127b2b vmovaps xmm2, cs:xmmword_180170D80 ; +0x2b1, 0x180127b31 vfmadd213ss xmm2, xmm1, cs:dword_180170D90 ; +0x2b9, 0x180127b39 vmulss xmm0, xmm1, xmm1 ; +0x2c2, 0x180127b42 vmovaps xmm3, cs:xmmword_180170D60 ; +0x2c6, 0x180127b46 lea r9, flt_180173630 ; +0x2ce, 0x180127b4e lea r10, flt_180173420 ; +0x2d5, 0x180127b55 vfmadd231ss xmm1, xmm2, xmm0 ; +0x2dc, 0x180127b5c vfmsub213ss xmm3, xmm5, xmm1 ; +0x2e1, 0x180127b61 vmovaps xmm0, cs:xmmword_180170D50 ; +0x2e6, 0x180127b66 vfmadd213ss xmm0, xmm5, dword ptr [r10+rax*4] ; +0x2ee, 0x180127b6e vaddss xmm3, xmm3, dword ptr [r9+rax*4] ; +0x2f4, 0x180127b74 vaddss xmm0, xmm0, xmm3 ; +0x2fa, 0x180127b7a add rsp, 38h ; +0x2fe, 0x180127b7e retn ; +0x302, 0x180127b82 align 10h ; +0x303, 0x180127b83 vmovaps xmm2, cs:xmmword_180170C80 ; +0x310, 0x180127b90 vsubss xmm0, xmm0, dword ptr cs:xmmword_180170C70 ; +0x318, 0x180127b98 vaddss xmm2, xmm2, xmm0 ; +0x320, 0x180127ba0 vdivss xmm1, xmm0, xmm2 ; +0x324, 0x180127ba4 vmulss xmm4, xmm0, xmm1 ; +0x328, 0x180127ba8 vaddss xmm1, xmm1, xmm1 ; +0x32c, 0x180127bac vmulss xmm2, xmm1, xmm1 ; +0x330, 0x180127bb0 vmulss xmm3, xmm1, xmm2 ; +0x334, 0x180127bb4 vmovaps xmm5, cs:xmmword_180170D40 ; +0x338, 0x180127bb8 vfmadd213ss xmm2, xmm5, cs:dword_180170D30 ; +0x340, 0x180127bc0 vfmsub213ss xmm2, xmm3, xmm4 ; +0x349, 0x180127bc9 vaddss xmm0, xmm0, xmm2 ; +0x34e, 0x180127bce add rsp, 38h ; +0x352, 0x180127bd2 retn ; +0x356, 0x180127bd6 align 20h ; +0x357, 0x180127bd7 vmovaps xmm3, cs:xmmword_180170C70 ; +0x360, 0x180127be0 vpor xmm2, xmm2, xmm3 ; +0x368, 0x180127be8 vsubss xmm2, xmm2, xmm3 ; +0x36c, 0x180127bec vpsrld xmm5, xmm2, 17h ; +0x370, 0x180127bf0 vpand xmm2, xmm2, cs:xmmword_180170CE0 ; +0x375, 0x180127bf5 vmovaps xmm0, xmm2 ; +0x37d, 0x180127bfd vpsubd xmm5, xmm5, cs:xmmword_180170D00 ; +0x381, 0x180127c01 vcvtdq2ps xmm5, xmm5 ; +0x389, 0x180127c09 jmp Llogf_fma3_continue_common ; +0x38d, 0x180127c0d jnz short Llogf_fma3_x_is_neg ; +0x392, 0x180127c12 vmovaps xmm1, cs:xmmword_180170C90 ; +0x394, 0x180127c14 mov r8d, cs:dword_180170DA0 ; +0x39c, 0x180127c1c call _logf_special ; +0x3a3, 0x180127c23 add rsp, 38h ; +0x3a8, 0x180127c28 retn ; +0x3ac, 0x180127c2c vmovaps xmm1, cs:xmmword_180170CC0 ; +0x3ad, 0x180127c2d mov r8d, cs:dword_180170DA4 ; +0x3b5, 0x180127c35 call _logf_special ; +0x3bc, 0x180127c3c add rsp, 38h ; +0x3c1, 0x180127c41 retn ; +0x3c5, 0x180127c45 cmp eax, dword ptr cs:xmmword_180170CA0 ; +0x3c6, 0x180127c46 jz short Llogf_fma3_finish ; +0x3cc, 0x180127c4c cmp eax, dword ptr cs:xmmword_180170C90 ; +0x3ce, 0x180127c4e jz short Llogf_fma3_x_is_neg ; +0x3d4, 0x180127c54 or eax, cs:dword_180170D98 ; +0x3d6, 0x180127c56 vmovd xmm1, eax ; +0x3dc, 0x180127c5c mov r8d, cs:dword_180170DA8 ; +0x3e0, 0x180127c60 call _logf_special ; +0x3e7, 0x180127c67 add rsp, 38h ; +0x3ec, 0x180127c6c retn ; +0x3f0, 0x180127c70 add rsp, 38h ; +0x3f1, 0x180127c71 retn ; +0x3f5, 0x180127c75