; ; log10 from 0x180141610 to 0x180141bbb (1451 bytes) ; ; 2 xrefs: ; > __acrt_fltout @ 0x18013e397 ; > @ 0x180203cd4 ; ; 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, 58h ; +0x0, 0x180141610 movdqa [rsp+58h+var_38], xmm6 ; +0x4, 0x180141614 cmp cs:dword_1801F4D54, 0 ; +0xa, 0x18014161a jnz Llog10_fma3 ; +0x11, 0x180141621 movapd xmm3, xmm0 ; +0x17, 0x180141627 movapd xmm4, xmm0 ; +0x1b, 0x18014162b psrlq xmm3, 34h ; '4' ; +0x1f, 0x18014162f movq rax, xmm0 ; +0x24, 0x180141634 psubq xmm3, cs:xmmword_18017B0A0 ; +0x29, 0x180141639 movapd xmm5, xmm0 ; +0x31, 0x180141641 andpd xmm5, cs:xmmword_18017B070 ; +0x35, 0x180141645 comisd xmm5, qword ptr cs:xmmword_18017B070 ; +0x3d, 0x18014164d jz Llog10_sse2_x_is_inf_or_nan ; +0x45, 0x180141655 movapd xmm2, xmm0 ; +0x4b, 0x18014165b cvtdq2pd xmm6, xmm3 ; +0x4f, 0x18014165f xorpd xmm5, xmm5 ; +0x53, 0x180141663 comisd xmm0, xmm5 ; +0x57, 0x180141667 jbe Llog10_sse2_x_is_zero_or_neg ; +0x5b, 0x18014166b pand xmm2, cs:xmmword_18017B0C0 ; +0x61, 0x180141671 subsd xmm4, qword ptr cs:xmmword_18017B150 ; +0x69, 0x180141679 comisd xmm6, cs:qword_18017B1E0 ; +0x71, 0x180141681 jz Llog10_sse2_denormal_adjust ; +0x79, 0x180141689 andpd xmm4, cs:xmmword_18017B240 ; +0x7f, 0x18014168f mov r9, rax ; +0x87, 0x180141697 and rax, qword ptr cs:xmmword_18017B0D0 ; +0x8a, 0x18014169a and r9, qword ptr cs:xmmword_18017B0E0 ; +0x91, 0x1801416a1 shl r9, 1 ; +0x98, 0x1801416a8 add rax, r9 ; +0x9b, 0x1801416ab movq xmm1, rax ; +0x9e, 0x1801416ae comisd xmm4, cs:qword_18017B200 ; +0xa3, 0x1801416b3 jb Llog10_sse2_near_one ; +0xab, 0x1801416bb shr rax, 2Ch ; +0xb1, 0x1801416c1 por xmm2, cs:xmmword_18017B160 ; +0xb5, 0x1801416c5 por xmm1, cs:xmmword_18017B160 ; +0xbd, 0x1801416cd lea r9, dbl_180173C60 ; +0xc5, 0x1801416d5 subsd xmm1, xmm2 ; +0xcc, 0x1801416dc mulsd xmm1, qword ptr [r9+rax*8] ; +0xd0, 0x1801416e0 movapd xmm2, xmm1 ; +0xd6, 0x1801416e6 movapd xmm0, xmm1 ; +0xda, 0x1801416ea lea r9, dbl_18017B2B0 ; +0xde, 0x1801416ee movsd xmm3, cs:qword_18017B1D0 ; +0xe5, 0x1801416f5 movsd xmm1, cs:qword_18017B1A0 ; +0xed, 0x1801416fd mulsd xmm3, xmm2 ; +0xf5, 0x180141705 mulsd xmm1, xmm2 ; +0xf9, 0x180141709 mulsd xmm0, xmm2 ; +0xfd, 0x18014170d movapd xmm4, xmm0 ; +0x101, 0x180141711 addsd xmm3, cs:qword_18017B1C0 ; +0x105, 0x180141715 addsd xmm1, cs:qword_18017B190 ; +0x10d, 0x18014171d mulsd xmm4, xmm0 ; +0x115, 0x180141725 mulsd xmm3, xmm2 ; +0x119, 0x180141729 mulsd xmm1, xmm0 ; +0x11d, 0x18014172d addsd xmm3, cs:qword_18017B1B0 ; +0x121, 0x180141731 addsd xmm1, xmm2 ; +0x129, 0x180141739 mulsd xmm3, xmm4 ; +0x12d, 0x18014173d addsd xmm1, xmm3 ; +0x131, 0x180141741 movsd xmm5, cs:qword_18017B130 ; +0x135, 0x180141745 mulsd xmm1, cs:qword_18017B0F0 ; +0x13d, 0x18014174d mulsd xmm5, xmm6 ; +0x145, 0x180141755 subsd xmm5, xmm1 ; +0x149, 0x180141759 movsd xmm0, qword ptr [r9+rax*8] ; +0x14d, 0x18014175d lea rdx, dbl_18017BAC0 ; +0x153, 0x180141763 movsd xmm2, qword ptr [rdx+rax*8] ; +0x15a, 0x18014176a movsd xmm4, cs:qword_18017B120 ; +0x15f, 0x18014176f mulsd xmm4, xmm6 ; +0x167, 0x180141777 addsd xmm0, xmm4 ; +0x16b, 0x18014177b addsd xmm2, xmm5 ; +0x16f, 0x18014177f addsd xmm0, xmm2 ; +0x173, 0x180141783 movdqa xmm6, [rsp+58h+var_38] ; +0x177, 0x180141787 add rsp, 58h ; +0x17d, 0x18014178d retn ; +0x181, 0x180141791 align 20h ; +0x182, 0x180141792 movsd xmm2, cs:qword_18017B140 ; +0x190, 0x1801417a0 subsd xmm0, qword ptr cs:xmmword_18017B150 ; +0x198, 0x1801417a8 addsd xmm2, xmm0 ; +0x1a0, 0x1801417b0 movapd xmm1, xmm0 ; +0x1a4, 0x1801417b4 divsd xmm1, xmm2 ; +0x1a8, 0x1801417b8 movsd xmm4, cs:qword_18017B260 ; +0x1ac, 0x1801417bc movsd xmm5, cs:qword_18017B280 ; +0x1b4, 0x1801417c4 movapd xmm6, xmm0 ; +0x1bc, 0x1801417cc mulsd xmm6, xmm1 ; +0x1c0, 0x1801417d0 addsd xmm1, xmm1 ; +0x1c4, 0x1801417d4 movapd xmm2, xmm1 ; +0x1c8, 0x1801417d8 mulsd xmm2, xmm1 ; +0x1cc, 0x1801417dc mulsd xmm4, xmm2 ; +0x1d0, 0x1801417e0 mulsd xmm5, xmm2 ; +0x1d4, 0x1801417e4 addsd xmm4, cs:qword_18017B250 ; +0x1d8, 0x1801417e8 addsd xmm5, cs:qword_18017B270 ; +0x1e0, 0x1801417f0 mulsd xmm2, xmm1 ; +0x1e8, 0x1801417f8 mulsd xmm4, xmm2 ; +0x1ec, 0x1801417fc mulsd xmm2, xmm2 ; +0x1f0, 0x180141800 mulsd xmm2, xmm1 ; +0x1f4, 0x180141804 mulsd xmm5, xmm2 ; +0x1f8, 0x180141808 movsd xmm2, cs:qword_18017B110 ; +0x1fc, 0x18014180c addsd xmm4, xmm5 ; +0x204, 0x180141814 subsd xmm4, xmm6 ; +0x208, 0x180141818 movsd xmm6, cs:qword_18017B100 ; +0x20c, 0x18014181c movapd xmm3, xmm0 ; +0x214, 0x180141824 pand xmm3, cs:xmmword_18017B290 ; +0x218, 0x180141828 subsd xmm0, xmm3 ; +0x220, 0x180141830 addsd xmm4, xmm0 ; +0x224, 0x180141834 movapd xmm0, xmm3 ; +0x228, 0x180141838 movapd xmm1, xmm4 ; +0x22c, 0x18014183c mulsd xmm4, xmm2 ; +0x230, 0x180141840 mulsd xmm0, xmm2 ; +0x234, 0x180141844 mulsd xmm1, xmm6 ; +0x238, 0x180141848 mulsd xmm3, xmm6 ; +0x23c, 0x18014184c addsd xmm0, xmm4 ; +0x240, 0x180141850 addsd xmm0, xmm1 ; +0x244, 0x180141854 addsd xmm0, xmm3 ; +0x248, 0x180141858 movdqa xmm6, [rsp+58h+var_38] ; +0x24c, 0x18014185c add rsp, 58h ; +0x252, 0x180141862 retn ; +0x256, 0x180141866 por xmm2, cs:xmmword_18017B150 ; +0x257, 0x180141867 subsd xmm2, qword ptr cs:xmmword_18017B150 ; +0x25f, 0x18014186f movsd xmm5, xmm2 ; +0x267, 0x180141877 pand xmm2, cs:xmmword_18017B0C0 ; +0x26b, 0x18014187b movq rax, xmm2 ; +0x273, 0x180141883 psrlq xmm5, 34h ; '4' ; +0x278, 0x180141888 psubd xmm5, cs:xmmword_18017B1F0 ; +0x27d, 0x18014188d cvtdq2pd xmm6, xmm5 ; +0x285, 0x180141895 jmp Llog10_sse2_continue_common ; +0x289, 0x180141899 align 20h ; +0x28e, 0x18014189e jnz short Llog10_sse2_x_is_neg ; +0x290, 0x1801418a0 movsd xmm1, cs:qword_18017B060 ; +0x292, 0x1801418a2 mov r8d, cs:dword_18017B2A0 ; +0x29a, 0x1801418aa call _log10_special ; +0x2a1, 0x1801418b1 jmp short Llog10_sse2_finish ; +0x2a6, 0x1801418b6 align 20h ; +0x2a8, 0x1801418b8 movsd xmm1, cs:qword_18017B080 ; +0x2b0, 0x1801418c0 mov r8d, cs:dword_18017B2A4 ; +0x2b8, 0x1801418c8 call _log10_special ; +0x2bf, 0x1801418cf jmp short Llog10_sse2_finish ; +0x2c4, 0x1801418d4 align 20h ; +0x2c6, 0x1801418d6 cmp rax, qword ptr cs:xmmword_18017B070 ; +0x2d0, 0x1801418e0 jz short Llog10_sse2_finish ; +0x2d7, 0x1801418e7 cmp rax, cs:qword_18017B060 ; +0x2d9, 0x1801418e9 jz short Llog10_sse2_x_is_neg ; +0x2e0, 0x1801418f0 or rax, cs:qword_18017B090 ; +0x2e2, 0x1801418f2 movq xmm0, rax ; +0x2e9, 0x1801418f9 xchg ax, ax ; +0x2ee, 0x1801418fe movdqa xmm6, [rsp+58h+var_38] ; +0x2f0, 0x180141900 add rsp, 58h ; +0x2f6, 0x180141906 retn ; +0x2fa, 0x18014190a align 10h ; +0x2fb, 0x18014190b xor rax, rax ; +0x300, 0x180141910 vpsrlq xmm3, xmm0, 34h ; '4' ; +0x303, 0x180141913 vmovq rax, xmm0 ; +0x308, 0x180141918 vpsubq xmm3, xmm3, cs:xmmword_18017B0A0 ; +0x30d, 0x18014191d vcvtdq2pd xmm6, xmm3 ; +0x315, 0x180141925 vpand xmm5, xmm0, cs:xmmword_18017B070 ; +0x319, 0x180141929 vcomisd xmm5, qword ptr cs:xmmword_18017B070 ; +0x321, 0x180141931 jz Llog10_fma3_x_is_inf_or_nan ; +0x329, 0x180141939 vpxor xmm5, xmm5, xmm5 ; +0x32f, 0x18014193f vcomisd xmm0, xmm5 ; +0x333, 0x180141943 jbe Llog10_fma3_x_is_zero_or_neg ; +0x337, 0x180141947 vpand xmm2, xmm0, cs:xmmword_18017B0C0 ; +0x33d, 0x18014194d vsubsd xmm4, xmm0, qword ptr cs:xmmword_18017B150 ; +0x345, 0x180141955 vcomisd xmm6, cs:qword_18017B1E0 ; +0x34d, 0x18014195d jz Llog10_fma3_denormal_adjust ; +0x355, 0x180141965 vpand xmm1, xmm0, cs:xmmword_18017B0D0 ; +0x35b, 0x18014196b vpand xmm3, xmm0, cs:xmmword_18017B0E0 ; +0x363, 0x180141973 vpsllq xmm3, xmm3, 1 ; +0x36b, 0x18014197b vpaddq xmm1, xmm3, xmm1 ; +0x370, 0x180141980 vmovq rax, xmm1 ; +0x374, 0x180141984 vpand xmm4, xmm4, cs:xmmword_18017B240 ; +0x379, 0x180141989 vcomisd xmm4, cs:qword_18017B200 ; +0x381, 0x180141991 jb Llog10_fma3_near_one ; +0x389, 0x180141999 shr rax, 2Ch ; +0x38f, 0x18014199f vpor xmm2, xmm2, cs:xmmword_18017B160 ; +0x393, 0x1801419a3 vpor xmm1, xmm1, cs:xmmword_18017B160 ; +0x39b, 0x1801419ab lea r9, dbl_180173C60 ; +0x3a3, 0x1801419b3 vsubsd xmm1, xmm1, xmm2 ; +0x3aa, 0x1801419ba vmulsd xmm1, xmm1, qword ptr [r9+rax*8] ; +0x3ae, 0x1801419be lea r9, dbl_18017B2B0 ; +0x3b4, 0x1801419c4 vmulsd xmm0, xmm1, xmm1 ; +0x3bb, 0x1801419cb vmovsd xmm3, cs:qword_18017B1D0 ; +0x3bf, 0x1801419cf vmovsd xmm5, cs:qword_18017B1A0 ; +0x3c7, 0x1801419d7 vfmadd213sd xmm3, xmm1, cs:qword_18017B1C0 ; +0x3cf, 0x1801419df vfmadd213sd xmm5, xmm1, qword ptr cs:xmmword_18017B160 ; +0x3d8, 0x1801419e8 movsd xmm4, xmm0 ; +0x3e1, 0x1801419f1 vfmadd213sd xmm3, xmm1, cs:qword_18017B1B0 ; +0x3e5, 0x1801419f5 vmulsd xmm4, xmm0, xmm0 ; +0x3ee, 0x1801419fe vfmadd231sd xmm1, xmm5, xmm0 ; +0x3f2, 0x180141a02 vfmadd231sd xmm1, xmm3, xmm4 ; +0x3f7, 0x180141a07 vmulsd xmm1, xmm1, cs:qword_18017B0F0 ; +0x3fc, 0x180141a0c vmovsd xmm5, cs:qword_18017B130 ; +0x404, 0x180141a14 vfmsub213sd xmm5, xmm6, xmm1 ; +0x40c, 0x180141a1c movsd xmm0, qword ptr [r9+rax*8] ; +0x411, 0x180141a21 lea rdx, dbl_18017BAC0 ; +0x417, 0x180141a27 movsd xmm2, qword ptr [rdx+rax*8] ; +0x41e, 0x180141a2e vaddsd xmm2, xmm2, xmm5 ; +0x423, 0x180141a33 vfmadd231sd xmm0, xmm6, cs:qword_18017B120 ; +0x427, 0x180141a37 vaddsd xmm0, xmm0, xmm2 ; +0x430, 0x180141a40 vmovdqa xmm6, [rsp+58h+var_38] ; +0x434, 0x180141a44 add rsp, 58h ; +0x43a, 0x180141a4a retn ; +0x43e, 0x180141a4e align 10h ; +0x43f, 0x180141a4f vmovsd xmm2, cs:qword_18017B140 ; +0x440, 0x180141a50 vsubsd xmm0, xmm0, qword ptr cs:xmmword_18017B150 ; +0x448, 0x180141a58 vaddsd xmm2, xmm2, xmm0 ; +0x450, 0x180141a60 vdivsd xmm1, xmm0, xmm2 ; +0x454, 0x180141a64 vmovsd xmm4, cs:qword_18017B260 ; +0x458, 0x180141a68 vmovsd xmm5, cs:qword_18017B280 ; +0x460, 0x180141a70 vmulsd xmm6, xmm0, xmm1 ; +0x468, 0x180141a78 vaddsd xmm1, xmm1, xmm1 ; +0x46c, 0x180141a7c vmulsd xmm2, xmm1, xmm1 ; +0x470, 0x180141a80 vfmadd213sd xmm4, xmm2, cs:qword_18017B250 ; +0x474, 0x180141a84 vfmadd213sd xmm5, xmm2, cs:qword_18017B270 ; +0x47d, 0x180141a8d vmulsd xmm2, xmm2, xmm1 ; +0x486, 0x180141a96 vmulsd xmm4, xmm4, xmm2 ; +0x48a, 0x180141a9a vmulsd xmm2, xmm2, xmm2 ; +0x48e, 0x180141a9e vmulsd xmm2, xmm2, xmm1 ; +0x492, 0x180141aa2 vmulsd xmm5, xmm5, xmm2 ; +0x496, 0x180141aa6 vaddsd xmm4, xmm4, xmm5 ; +0x49a, 0x180141aaa vsubsd xmm4, xmm4, xmm6 ; +0x49e, 0x180141aae vpand xmm3, xmm0, cs:xmmword_18017B290 ; +0x4a2, 0x180141ab2 vsubsd xmm0, xmm0, xmm3 ; +0x4aa, 0x180141aba vaddsd xmm4, xmm4, xmm0 ; +0x4ae, 0x180141abe vmulsd xmm1, xmm4, cs:qword_18017B100 ; +0x4b2, 0x180141ac2 vmulsd xmm4, xmm4, cs:qword_18017B110 ; +0x4ba, 0x180141aca vmulsd xmm0, xmm3, cs:qword_18017B110 ; +0x4c2, 0x180141ad2 vmulsd xmm3, xmm3, cs:qword_18017B100 ; +0x4ca, 0x180141ada vaddsd xmm0, xmm0, xmm4 ; +0x4d2, 0x180141ae2 vaddsd xmm0, xmm0, xmm1 ; +0x4d6, 0x180141ae6 vaddsd xmm0, xmm0, xmm3 ; +0x4da, 0x180141aea vmovdqa xmm6, [rsp+58h+var_38] ; +0x4de, 0x180141aee add rsp, 58h ; +0x4e4, 0x180141af4 retn ; +0x4e8, 0x180141af8 vpor xmm2, xmm2, cs:xmmword_18017B150 ; +0x4e9, 0x180141af9 vsubsd xmm2, xmm2, qword ptr cs:xmmword_18017B150 ; +0x4f1, 0x180141b01 vpsrlq xmm5, xmm2, 34h ; '4' ; +0x4f9, 0x180141b09 vpand xmm2, xmm2, cs:xmmword_18017B0C0 ; +0x4fe, 0x180141b0e vmovapd xmm0, xmm2 ; +0x506, 0x180141b16 vpsubd xmm5, xmm5, cs:xmmword_18017B1F0 ; +0x50a, 0x180141b1a vcvtdq2pd xmm6, xmm5 ; +0x512, 0x180141b22 jmp Llog10_fma3_continue_common ; +0x516, 0x180141b26 align 10h ; +0x51b, 0x180141b2b jnz short Llog10_fma3_x_is_neg ; +0x520, 0x180141b30 vmovsd xmm1, cs:qword_18017B060 ; +0x522, 0x180141b32 mov r8d, cs:dword_18017B2A0 ; +0x52a, 0x180141b3a call _log10_special ; +0x531, 0x180141b41 vmovdqa xmm6, [rsp+58h+var_38] ; +0x536, 0x180141b46 add rsp, 58h ; +0x53c, 0x180141b4c retn ; +0x540, 0x180141b50 align 20h ; +0x541, 0x180141b51 vmovsd xmm1, cs:qword_18017B080 ; +0x550, 0x180141b60 mov r8d, cs:dword_18017B2A4 ; +0x558, 0x180141b68 call _log10_special ; +0x55f, 0x180141b6f vmovdqa xmm6, [rsp+58h+var_38] ; +0x564, 0x180141b74 add rsp, 58h ; +0x56a, 0x180141b7a retn ; +0x56e, 0x180141b7e align 20h ; +0x56f, 0x180141b7f cmp rax, qword ptr cs:xmmword_18017B070 ; +0x570, 0x180141b80 jz short Llog10_fma3_finish ; +0x577, 0x180141b87 cmp rax, cs:qword_18017B060 ; +0x579, 0x180141b89 jz short Llog10_fma3_x_is_neg ; +0x580, 0x180141b90 or rax, cs:qword_18017B090 ; +0x582, 0x180141b92 movq xmm1, rax ; +0x589, 0x180141b99 mov r8d, cs:dword_18017B2A8 ; +0x58e, 0x180141b9e call _log10_special ; +0x595, 0x180141ba5 jmp short Llog10_fma3_finish ; +0x59a, 0x180141baa align 10h ; +0x59c, 0x180141bac vmovdqa xmm6, [rsp+58h+var_38] ; +0x5a0, 0x180141bb0 add rsp, 58h ; +0x5a6, 0x180141bb6 retn ; +0x5aa, 0x180141bba