; ; log10f from 0x180129960 to 0x180129e35 (1237 bytes) ; ; 17 xrefs: ; > sub_1800258D0 @ 0x1800259e3 ; > sub_180067970 @ 0x1800679ad ; > sub_18006F890 @ 0x18006faa2 ; > sub_18006F890 @ 0x18006fae7 ; > sub_180070770 @ 0x1800707cb ; > sub_180070770 @ 0x1800707f2 ; > sub_180070770 @ 0x180070828 ; > sub_1800DB2E0 @ 0x1800db95c ; > sub_1800ECDE0 @ 0x1800ecf48 ; > sub_1800ED3F0 @ 0x1800ed5d2 ; > sub_1800ED3F0 @ 0x1800ed616 ; > sub_1800ED3F0 @ 0x1800ed637 ; > sub_1800ED830 @ 0x1800edaae ; > sub_1800ED830 @ 0x1800edca1 ; > sub_1800ED830 @ 0x1800ee2fd ; > sub_1800F6090 @ 0x1800f60f1 ; > @ 0x180202ac8 ; ; 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, 78h ; +0x0, 0x180129960 cmp cs:dword_1801F4D54, 0 ; +0x4, 0x180129964 jnz Llog10f_fma3 ; +0xb, 0x18012996b xor eax, eax ; +0x11, 0x180129971 movdqa xmm3, xmm0 ; +0x13, 0x180129973 movss xmm4, xmm0 ; +0x17, 0x180129977 psrld xmm3, 17h ; +0x1b, 0x18012997b movd eax, xmm0 ; +0x20, 0x180129980 movdqa xmm1, xmm0 ; +0x24, 0x180129984 andps xmm1, cs:xmmword_180171720 ; +0x28, 0x180129988 comiss xmm1, dword ptr cs:xmmword_180171720 ; +0x2f, 0x18012998f jz __x_is_inf_or_nan ; +0x36, 0x180129996 psubd xmm3, cs:xmmword_1801717A0 ; +0x3c, 0x18012999c movdqa xmm2, xmm0 ; +0x44, 0x1801299a4 cvtdq2ps xmm5, xmm3 ; +0x48, 0x1801299a8 xorps xmm3, xmm3 ; +0x4b, 0x1801299ab comiss xmm0, xmm3 ; +0x4e, 0x1801299ae jbe __x_is_zero_or_neg ; +0x51, 0x1801299b1 pand xmm2, cs:xmmword_180171790 ; +0x57, 0x1801299b7 subss xmm4, dword ptr cs:xmmword_1801716F0 ; +0x5f, 0x1801299bf comiss xmm5, cs:dword_180171880 ; +0x67, 0x1801299c7 jz __denormal_adjust ; +0x6e, 0x1801299ce mov r9d, eax ; +0x74, 0x1801299d4 and eax, dword ptr cs:xmmword_1801717B0 ; +0x77, 0x1801299d7 and r9d, dword ptr cs:xmmword_1801717C0 ; +0x7d, 0x1801299dd shl r9d, 1 ; +0x84, 0x1801299e4 add eax, r9d ; +0x87, 0x1801299e7 mov [rsp+78h+var_48], eax ; +0x8a, 0x1801299ea andps xmm4, cs:xmmword_180171770 ; +0x8e, 0x1801299ee comiss xmm4, cs:dword_1801718A0 ; +0x95, 0x1801299f5 jb __near_one ; +0x9c, 0x1801299fc movss xmm1, [rsp+78h+var_48] ; +0xa2, 0x180129a02 shr eax, 10h ; +0xa8, 0x180129a08 por xmm2, cs:xmmword_180171810 ; +0xab, 0x180129a0b por xmm1, cs:xmmword_180171810 ; +0xb3, 0x180129a13 lea r9, flt_180173840 ; +0xbb, 0x180129a1b subss xmm1, xmm2 ; +0xc2, 0x180129a22 mulss xmm1, dword ptr [r9+rax*4] ; +0xc6, 0x180129a26 movss xmm2, xmm1 ; +0xcc, 0x180129a2c movss xmm0, xmm1 ; +0xd0, 0x180129a30 mulss xmm2, dword ptr cs:xmmword_1801718E0 ; +0xd4, 0x180129a34 mulss xmm0, xmm1 ; +0xdc, 0x180129a3c addss xmm2, cs:dword_1801718F0 ; +0xe0, 0x180129a40 movss xmm3, cs:dword_180171850 ; +0xe8, 0x180129a48 lea r9, flt_180175430 ; +0xf0, 0x180129a50 lea r10, flt_180175220 ; +0xf7, 0x180129a57 mulss xmm2, xmm0 ; +0xfe, 0x180129a5e mulss xmm3, xmm5 ; +0x102, 0x180129a62 addss xmm1, xmm2 ; +0x106, 0x180129a66 mulss xmm1, cs:dword_180171860 ; +0x10a, 0x180129a6a movss xmm0, cs:dword_180171840 ; +0x112, 0x180129a72 subss xmm3, xmm1 ; +0x11a, 0x180129a7a mulss xmm0, xmm5 ; +0x11e, 0x180129a7e addss xmm3, dword ptr [r9+rax*4] ; +0x122, 0x180129a82 addss xmm0, dword ptr [r10+rax*4] ; +0x128, 0x180129a88 addss xmm0, xmm3 ; +0x12e, 0x180129a8e add rsp, 78h ; +0x132, 0x180129a92 retn ; +0x136, 0x180129a96 align 20h ; +0x137, 0x180129a97 movss xmm2, cs:dword_180171700 ; +0x140, 0x180129aa0 subss xmm0, dword ptr cs:xmmword_1801716F0 ; +0x148, 0x180129aa8 addss xmm2, xmm0 ; +0x150, 0x180129ab0 movss xmm1, xmm0 ; +0x154, 0x180129ab4 divss xmm1, xmm2 ; +0x158, 0x180129ab8 movss xmm4, xmm0 ; +0x15c, 0x180129abc mulss xmm4, xmm1 ; +0x160, 0x180129ac0 addss xmm1, xmm1 ; +0x164, 0x180129ac4 movss xmm2, xmm1 ; +0x168, 0x180129ac8 mulss xmm2, xmm2 ; +0x16c, 0x180129acc movss xmm3, xmm1 ; +0x170, 0x180129ad0 mulss xmm3, xmm2 ; +0x174, 0x180129ad4 mulss xmm2, cs:dword_1801717E0 ; +0x178, 0x180129ad8 addss xmm2, cs:dword_1801717D0 ; +0x180, 0x180129ae0 mulss xmm2, xmm3 ; +0x188, 0x180129ae8 subss xmm2, xmm4 ; +0x18c, 0x180129aec movdqa xmm5, xmm0 ; +0x190, 0x180129af0 pand xmm5, cs:xmmword_180171870 ; +0x194, 0x180129af4 subss xmm0, xmm5 ; +0x19c, 0x180129afc addss xmm2, xmm0 ; +0x1a0, 0x180129b00 movss xmm0, xmm5 ; +0x1a4, 0x180129b04 movss xmm1, xmm2 ; +0x1a8, 0x180129b08 mulss xmm2, cs:dword_180171830 ; +0x1ac, 0x180129b0c mulss xmm0, cs:dword_180171830 ; +0x1b4, 0x180129b14 mulss xmm1, cs:dword_180171820 ; +0x1bc, 0x180129b1c mulss xmm5, cs:dword_180171820 ; +0x1c4, 0x180129b24 addss xmm0, xmm2 ; +0x1cc, 0x180129b2c addss xmm0, xmm1 ; +0x1d0, 0x180129b30 addss xmm0, xmm5 ; +0x1d4, 0x180129b34 add rsp, 78h ; +0x1d8, 0x180129b38 retn ; +0x1dc, 0x180129b3c por xmm2, cs:xmmword_1801716F0 ; +0x1dd, 0x180129b3d subss xmm2, dword ptr cs:xmmword_1801716F0 ; +0x1e5, 0x180129b45 movdqa xmm5, xmm2 ; +0x1ed, 0x180129b4d pand xmm2, cs:xmmword_180171790 ; +0x1f1, 0x180129b51 movd eax, xmm2 ; +0x1f9, 0x180129b59 psrld xmm5, 17h ; +0x1fd, 0x180129b5d psubd xmm5, cs:xmmword_180171890 ; +0x202, 0x180129b62 cvtdq2ps xmm5, xmm5 ; +0x20a, 0x180129b6a jmp __continue_common ; +0x20d, 0x180129b6d align 20h ; +0x212, 0x180129b72 jnz short __x_is_neg ; +0x220, 0x180129b80 movss xmm1, cs:dword_180171710 ; +0x222, 0x180129b82 mov r8d, cs:dword_180171900 ; +0x22a, 0x180129b8a call _log10f_special ; +0x231, 0x180129b91 jmp short __finish ; +0x236, 0x180129b96 align 20h ; +0x238, 0x180129b98 movss xmm1, cs:dword_180171750 ; +0x240, 0x180129ba0 mov r8d, cs:dword_180171904 ; +0x248, 0x180129ba8 call _log10f_special ; +0x24f, 0x180129baf jmp short __finish ; +0x254, 0x180129bb4 align 20h ; +0x256, 0x180129bb6 cmp eax, dword ptr cs:xmmword_180171720 ; +0x260, 0x180129bc0 jz short __finish ; +0x266, 0x180129bc6 cmp eax, cs:dword_180171710 ; +0x268, 0x180129bc8 jz short __x_is_neg ; +0x26e, 0x180129bce or eax, cs:dword_180171780 ; +0x270, 0x180129bd0 movd xmm0, eax ; +0x276, 0x180129bd6 nop word ptr [rax+rax+00h] ; +0x27a, 0x180129bda add rsp, 78h ; +0x280, 0x180129be0 retn ; +0x284, 0x180129be4 align 10h ; +0x285, 0x180129be5 vpand xmm1, xmm0, cs:xmmword_180171720 ; +0x290, 0x180129bf0 vpsrld xmm3, xmm0, 17h ; +0x298, 0x180129bf8 vmovd eax, xmm0 ; +0x29d, 0x180129bfd vcomiss xmm1, dword ptr cs:xmmword_180171720 ; +0x2a1, 0x180129c01 jz Llog10f_fma3_x_is_inf_or_nan ; +0x2a9, 0x180129c09 vpsubd xmm3, xmm3, cs:xmmword_1801717A0 ; +0x2af, 0x180129c0f vcvtdq2ps xmm5, xmm3 ; +0x2b7, 0x180129c17 vpxor xmm1, xmm1, xmm1 ; +0x2bb, 0x180129c1b vcomiss xmm0, xmm1 ; +0x2bf, 0x180129c1f jbe Llog10f_fma3_x_is_zero_or_neg ; +0x2c3, 0x180129c23 vpand xmm2, xmm0, cs:xmmword_180171790 ; +0x2c9, 0x180129c29 vsubss xmm4, xmm0, dword ptr cs:xmmword_1801716F0 ; +0x2d1, 0x180129c31 vcomiss xmm5, cs:dword_180171880 ; +0x2d9, 0x180129c39 jz Llog10f_fma3_denormal_adjust ; +0x2e1, 0x180129c41 vpand xmm1, xmm0, cs:xmmword_1801717B0 ; +0x2e7, 0x180129c47 vpand xmm3, xmm0, cs:xmmword_1801717C0 ; +0x2ef, 0x180129c4f vpslld xmm3, xmm3, 1 ; +0x2f7, 0x180129c57 vpaddd xmm1, xmm3, xmm1 ; +0x2fc, 0x180129c5c vmovd eax, xmm1 ; +0x300, 0x180129c60 vandps xmm4, xmm4, cs:xmmword_180171770 ; +0x304, 0x180129c64 vcomiss xmm4, cs:dword_1801718A0 ; +0x30c, 0x180129c6c jb Llog10f_fma3_near_one ; +0x314, 0x180129c74 shr eax, 10h ; +0x31a, 0x180129c7a vpor xmm2, xmm2, cs:xmmword_180171810 ; +0x31d, 0x180129c7d vpor xmm1, xmm1, cs:xmmword_180171810 ; +0x325, 0x180129c85 lea r9, flt_180173840 ; +0x32d, 0x180129c8d vsubss xmm1, xmm1, xmm2 ; +0x334, 0x180129c94 vmulss xmm1, xmm1, dword ptr [r9+rax*4] ; +0x338, 0x180129c98 vmovapd xmm2, cs:xmmword_1801718E0 ; +0x33e, 0x180129c9e vfmadd213ss xmm2, xmm1, dword ptr cs:xmmword_180171810 ; +0x346, 0x180129ca6 vmulss xmm0, xmm1, xmm1 ; +0x34f, 0x180129caf vmovss xmm3, cs:dword_180171850 ; +0x353, 0x180129cb3 lea r9, flt_180175430 ; +0x35b, 0x180129cbb lea r10, flt_180175220 ; +0x362, 0x180129cc2 vfmadd231ss xmm1, xmm2, xmm0 ; +0x369, 0x180129cc9 vmovss xmm0, cs:dword_180171840 ; +0x36e, 0x180129cce vmulss xmm1, xmm1, cs:dword_180171860 ; +0x376, 0x180129cd6 vfmsub213ss xmm3, xmm5, xmm1 ; +0x37e, 0x180129cde vfmadd213ss xmm0, xmm5, dword ptr [r10+rax*4] ; +0x383, 0x180129ce3 vaddss xmm3, xmm3, dword ptr [r9+rax*4] ; +0x389, 0x180129ce9 vaddss xmm0, xmm0, xmm3 ; +0x38f, 0x180129cef add rsp, 78h ; +0x393, 0x180129cf3 retn ; +0x397, 0x180129cf7 align 20h ; +0x398, 0x180129cf8 vmovss xmm2, cs:dword_180171700 ; +0x3a0, 0x180129d00 vsubss xmm0, xmm0, dword ptr cs:xmmword_1801716F0 ; +0x3a8, 0x180129d08 vaddss xmm2, xmm2, xmm0 ; +0x3b0, 0x180129d10 vdivss xmm1, xmm0, xmm2 ; +0x3b4, 0x180129d14 vmulss xmm4, xmm0, xmm1 ; +0x3b8, 0x180129d18 vaddss xmm1, xmm1, xmm1 ; +0x3bc, 0x180129d1c vmulss xmm2, xmm1, xmm1 ; +0x3c0, 0x180129d20 vmulss xmm3, xmm1, xmm2 ; +0x3c4, 0x180129d24 vmovss xmm5, cs:dword_1801717E0 ; +0x3c8, 0x180129d28 vfmadd213ss xmm2, xmm5, cs:dword_1801717D0 ; +0x3d0, 0x180129d30 vfmsub213ss xmm2, xmm3, xmm4 ; +0x3d9, 0x180129d39 vpand xmm5, xmm0, cs:xmmword_180171870 ; +0x3de, 0x180129d3e vsubss xmm0, xmm0, xmm5 ; +0x3e6, 0x180129d46 vaddss xmm2, xmm2, xmm0 ; +0x3ea, 0x180129d4a vmulss xmm1, xmm2, cs:dword_180171820 ; +0x3ee, 0x180129d4e vmulss xmm0, xmm5, cs:dword_180171830 ; +0x3f6, 0x180129d56 vmulss xmm5, xmm5, cs:dword_180171820 ; +0x3fe, 0x180129d5e vfmadd231ss xmm0, xmm2, cs:dword_180171830 ; +0x406, 0x180129d66 vaddss xmm0, xmm0, xmm1 ; +0x40f, 0x180129d6f vaddss xmm0, xmm0, xmm5 ; +0x413, 0x180129d73 add rsp, 78h ; +0x417, 0x180129d77 retn ; +0x41b, 0x180129d7b align 20h ; +0x41c, 0x180129d7c vmovss xmm3, dword ptr cs:xmmword_1801716F0 ; +0x420, 0x180129d80 vpor xmm2, xmm2, xmm3 ; +0x428, 0x180129d88 vsubss xmm2, xmm2, xmm3 ; +0x42c, 0x180129d8c vpsrld xmm5, xmm2, 17h ; +0x430, 0x180129d90 vpand xmm2, xmm2, cs:xmmword_180171790 ; +0x435, 0x180129d95 vmovaps xmm0, xmm2 ; +0x43d, 0x180129d9d vpsubd xmm5, xmm5, cs:xmmword_180171890 ; +0x441, 0x180129da1 vcvtdq2ps xmm5, xmm5 ; +0x449, 0x180129da9 jmp Llog10f_fma3_continue_common ; +0x44d, 0x180129dad align 20h ; +0x452, 0x180129db2 jnz short Llog10f_fma3_x_is_neg ; +0x460, 0x180129dc0 vmovss xmm1, cs:dword_180171710 ; +0x462, 0x180129dc2 mov r8d, cs:dword_180171900 ; +0x46a, 0x180129dca call _log10f_special ; +0x471, 0x180129dd1 add rsp, 78h ; +0x476, 0x180129dd6 retn ; +0x47a, 0x180129dda align 20h ; +0x47b, 0x180129ddb vmovss xmm1, cs:dword_180171750 ; +0x480, 0x180129de0 mov r8d, cs:dword_180171904 ; +0x488, 0x180129de8 call _log10f_special ; +0x48f, 0x180129def add rsp, 78h ; +0x494, 0x180129df4 retn ; +0x498, 0x180129df8 align 20h ; +0x499, 0x180129df9 cmp eax, dword ptr cs:xmmword_180171720 ; +0x4a0, 0x180129e00 jz short Llog10f_fma3_finish ; +0x4a6, 0x180129e06 cmp eax, cs:dword_180171710 ; +0x4a8, 0x180129e08 jz short Llog10f_fma3_x_is_neg ; +0x4ae, 0x180129e0e or eax, cs:dword_180171780 ; +0x4b0, 0x180129e10 movd xmm1, eax ; +0x4b6, 0x180129e16 mov r8d, cs:dword_180171908 ; +0x4ba, 0x180129e1a call _log10f_special ; +0x4c1, 0x180129e21 add rsp, 78h ; +0x4c6, 0x180129e26 retn ; +0x4ca, 0x180129e2a align 10h ; +0x4cb, 0x180129e2b add rsp, 78h ; +0x4d0, 0x180129e30 retn ; +0x4d4, 0x180129e34