; ; acosf from 0x180127650 to 0x18012787c (556 bytes) ; ; 3 xrefs: ; > sub_1800107D0 @ 0x180010fae ; > sub_1800107D0 @ 0x180011494 ; > @ 0x1802029fc ; ; 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, 68h ; +0x0, 0x180127650 movaps xmm1, xmm0 ; +0x4, 0x180127654 movaps [rsp+68h+var_18], xmm6 ; +0x7, 0x180127657 movss [rsp+68h+arg_8], xmm1 ; +0xc, 0x18012765c xorps xmm6, xmm6 ; +0x12, 0x180127662 mov ecx, [rsp+68h+arg_8] ; +0x15, 0x180127665 mov eax, ecx ; +0x19, 0x180127669 shr eax, 17h ; +0x1b, 0x18012766b movzx edx, al ; +0x1e, 0x18012766e mov eax, ecx ; +0x21, 0x180127671 btr eax, 1Fh ; +0x23, 0x180127673 cmp eax, 7F800000h ; +0x27, 0x180127677 jbe short loc_18012768C ; +0x2c, 0x18012767c movaps xmm6, [rsp+68h+var_18] ; +0x2e, 0x18012767e add rsp, 68h ; +0x33, 0x180127683 jmp _handle_nanf ; +0x37, 0x180127687 cmp edx, 65h ; 'e' ; +0x3c, 0x18012768c jnb short loc_18012769B ; +0x3f, 0x18012768f movss xmm6, cs:dword_180166F14 ; +0x41, 0x180127691 jmp short loc_1801276C6 ; +0x49, 0x180127699 cmp edx, 7Fh ; +0x4b, 0x18012769b jb short loc_18012771A ; +0x4e, 0x18012769e ucomiss xmm1, cs:dword_180145744 ; +0x50, 0x1801276a0 jp short loc_1801276B3 ; +0x57, 0x1801276a7 jnz short loc_1801276B3 ; +0x59, 0x1801276a9 xorps xmm0, xmm0 ; +0x5b, 0x1801276ab jmp loc_180127872 ; +0x5e, 0x1801276ae ucomiss xmm1, cs:X ; +0x63, 0x1801276b3 jp short loc_1801276D8 ; +0x6a, 0x1801276ba jnz short loc_1801276D8 ; +0x6c, 0x1801276bc movss xmm6, cs:dword_180164B80 ; +0x6e, 0x1801276be mov ecx, 20h ; ' ' ; +0x76, 0x1801276c6 call _set_statfp ; +0x7b, 0x1801276cb movaps xmm0, xmm6 ; +0x80, 0x1801276d0 jmp loc_180127872 ; +0x83, 0x1801276d3 mov r9d, 1 ; +0x88, 0x1801276d8 lea rcx, aAcosf ; +0x8e, 0x1801276de mov [rsp+68h+var_28], r9d ; +0x95, 0x1801276e5 mov r8d, 0FFC00000h ; +0x9a, 0x1801276ea movss [rsp+68h+var_30], xmm6 ; +0xa0, 0x1801276f0 movss [rsp+68h+var_38], xmm1 ; +0xa6, 0x1801276f6 mov [rsp+68h+var_40], 21h ; '!' ; +0xac, 0x1801276fc lea edx, [r9+0Ch] ; +0xb4, 0x180127704 mov [rsp+68h+var_48], 8 ; +0xb8, 0x180127708 call _handle_errorf ; +0xc0, 0x180127710 jmp loc_180127872 ; +0xc5, 0x180127715 movaps xmm4, xmm1 ; +0xca, 0x18012771a test ecx, ecx ; +0xcd, 0x18012771d jns short loc_180127728 ; +0xcf, 0x18012771f xorps xmm4, cs:xmmword_180144610 ; +0xd1, 0x180127721 cmp edx, 7Eh ; '~' ; +0xd8, 0x180127728 jb short loc_180127759 ; +0xdb, 0x18012772b movss xmm2, cs:dword_180145744 ; +0xdd, 0x18012772d subss xmm2, xmm4 ; +0xe5, 0x180127735 mulss xmm2, cs:dword_18014573C ; +0xe9, 0x180127739 movss [rsp+68h+arg_0], xmm2 ; +0xf1, 0x180127741 movss xmm0, [rsp+68h+arg_0] ; +0xf7, 0x180127747 movaps xmm6, xmm0 ; +0xfd, 0x18012774d sqrtss xmm6, xmm0 ; +0x100, 0x180127750 movaps xmm4, xmm6 ; +0x104, 0x180127754 jmp short loc_180127766 ; +0x107, 0x180127757 movaps xmm2, xmm4 ; +0x109, 0x180127759 mulss xmm2, xmm4 ; +0x10c, 0x18012775c movss [rsp+68h+arg_0], xmm2 ; +0x110, 0x180127760 movss xmm5, cs:dword_180170C60 ; +0x116, 0x180127766 movaps xmm0, xmm2 ; +0x11e, 0x18012776e mulss xmm0, cs:dword_180170C30 ; +0x121, 0x180127771 subss xmm5, xmm0 ; +0x129, 0x180127779 movss xmm0, cs:dword_180170C4C ; +0x12d, 0x18012777d mulss xmm5, xmm2 ; +0x135, 0x180127785 subss xmm5, cs:dword_180170C40 ; +0x139, 0x180127789 mulss xmm5, xmm2 ; +0x141, 0x180127791 addss xmm5, cs:dword_180170C44 ; +0x145, 0x180127795 mulss xmm5, xmm2 ; +0x14d, 0x18012779d mulss xmm2, cs:dword_180170C48 ; +0x151, 0x1801277a1 subss xmm0, xmm2 ; +0x159, 0x1801277a9 divss xmm5, xmm0 ; +0x15d, 0x1801277ad jb loc_180127844 ; +0x161, 0x1801277b1 test ecx, ecx ; +0x167, 0x1801277b7 jns short loc_1801277EE ; +0x169, 0x1801277b9 xorps xmm0, xmm0 ; +0x16b, 0x1801277bb mulss xmm5, xmm4 ; +0x16e, 0x1801277be cvtss2sd xmm0, xmm6 ; +0x172, 0x1801277c2 cvtps2pd xmm1, xmm5 ; +0x176, 0x1801277c6 subsd xmm1, cs:qword_180170C38 ; +0x179, 0x1801277c9 addsd xmm1, xmm0 ; +0x181, 0x1801277d1 movsd xmm0, cs:qword_180170C58 ; +0x185, 0x1801277d5 addsd xmm1, xmm1 ; +0x18d, 0x1801277dd subsd xmm0, xmm1 ; +0x191, 0x1801277e1 cvtpd2ps xmm0, xmm0 ; +0x195, 0x1801277e5 jmp loc_180127872 ; +0x199, 0x1801277e9 movss [rsp+68h+arg_8], xmm6 ; +0x19e, 0x1801277ee addss xmm4, xmm4 ; +0x1a4, 0x1801277f4 mov eax, [rsp+68h+arg_8] ; +0x1a8, 0x1801277f8 and eax, 0FFFF0000h ; +0x1ac, 0x1801277fc mov [rsp+68h+arg_8], eax ; +0x1b1, 0x180127801 movss xmm3, [rsp+68h+arg_8] ; +0x1b5, 0x180127805 movss xmm2, [rsp+68h+arg_0] ; +0x1bb, 0x18012780b movaps xmm0, xmm3 ; +0x1c1, 0x180127811 mulss xmm0, xmm3 ; +0x1c4, 0x180127814 movaps xmm1, xmm3 ; +0x1c8, 0x180127818 mulss xmm3, cs:flt_180145750 ; +0x1cb, 0x18012781b addss xmm1, xmm6 ; +0x1d3, 0x180127823 subss xmm2, xmm0 ; +0x1d7, 0x180127827 mulss xmm4, xmm5 ; +0x1db, 0x18012782b divss xmm2, xmm1 ; +0x1df, 0x18012782f addss xmm2, xmm2 ; +0x1e3, 0x180127833 addss xmm4, xmm2 ; +0x1e7, 0x180127837 addss xmm4, xmm3 ; +0x1eb, 0x18012783b movaps xmm0, xmm4 ; +0x1ef, 0x18012783f jmp short loc_180127872 ; +0x1f2, 0x180127842 movsd xmm2, cs:qword_180170C50 ; +0x1f4, 0x180127844 xorps xmm3, xmm3 ; +0x1fc, 0x18012784c mulss xmm5, xmm1 ; +0x1ff, 0x18012784f cvtss2sd xmm3, xmm1 ; +0x203, 0x180127853 movsd xmm1, cs:qword_180170C38 ; +0x207, 0x180127857 cvtps2pd xmm0, xmm5 ; +0x20f, 0x18012785f subsd xmm1, xmm0 ; +0x212, 0x180127862 subsd xmm3, xmm1 ; +0x216, 0x180127866 subsd xmm2, xmm3 ; +0x21a, 0x18012786a cvtpd2ps xmm0, xmm2 ; +0x21e, 0x18012786e movaps xmm6, [rsp+68h+var_18] ; +0x222, 0x180127872 add rsp, 68h ; +0x227, 0x180127877 retn ; +0x22b, 0x18012787b