; ; strrchr from 0x1801427bc to 0x1801428e5 (297 bytes) ; ; 1 xrefs: ; > fp_format_a @ 0x1801376b5 ; ; 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 ; xor r9d, r9d ; +0x0, 0x1801427bc mov r8, rcx ; +0x3, 0x1801427bf test edx, edx ; +0x6, 0x1801427c2 jnz short loc_180142805 ; +0x8, 0x1801427c4 and r8d, 0Fh ; +0xa, 0x1801427c6 mov rdx, rcx ; +0xe, 0x1801427ca and rdx, 0FFFFFFFFFFFFFFF0h ; +0x11, 0x1801427cd mov ecx, r8d ; +0x15, 0x1801427d1 or r8d, 0FFFFFFFFh ; +0x18, 0x1801427d4 xorps xmm0, xmm0 ; +0x1c, 0x1801427d8 shl r8d, cl ; +0x1f, 0x1801427db pcmpeqb xmm0, xmmword ptr [rdx] ; +0x22, 0x1801427de pmovmskb eax, xmm0 ; +0x26, 0x1801427e2 and eax, r8d ; +0x2a, 0x1801427e6 jnz short loc_1801427FE ; +0x2d, 0x1801427e9 add rdx, 10h ; +0x2f, 0x1801427eb xorps xmm0, xmm0 ; +0x33, 0x1801427ef pcmpeqb xmm0, xmmword ptr [rdx] ; +0x36, 0x1801427f2 pmovmskb eax, xmm0 ; +0x3a, 0x1801427f6 test eax, eax ; +0x3e, 0x1801427fa jz short loc_1801427EB ; +0x40, 0x1801427fc bsf eax, eax ; +0x42, 0x1801427fe add rax, rdx ; +0x45, 0x180142801 retn ; +0x48, 0x180142804 cmp cs:dword_1801B1700, 2 ; +0x49, 0x180142805 jge loc_1801428BA ; +0x50, 0x18014280c movzx eax, dl ; +0x56, 0x180142812 mov r10, r8 ; +0x59, 0x180142815 and r8d, 0Fh ; +0x5c, 0x180142818 and r10, 0FFFFFFFFFFFFFFF0h ; +0x60, 0x18014281c mov ecx, eax ; +0x64, 0x180142820 shl ecx, 8 ; +0x66, 0x180142822 or ecx, eax ; +0x69, 0x180142825 movd xmm0, ecx ; +0x6b, 0x180142827 mov ecx, r8d ; +0x6f, 0x18014282b pshuflw xmm1, xmm0, 0 ; +0x72, 0x18014282e or r8d, 0FFFFFFFFh ; +0x77, 0x180142833 xorps xmm0, xmm0 ; +0x7b, 0x180142837 shl r8d, cl ; +0x7e, 0x18014283a pcmpeqb xmm0, xmmword ptr [r10] ; +0x81, 0x18014283d pmovmskb ecx, xmm0 ; +0x86, 0x180142842 pshufd xmm2, xmm1, 0 ; +0x8a, 0x180142846 movdqa xmm0, xmm2 ; +0x8f, 0x18014284b pcmpeqb xmm0, xmmword ptr [r10] ; +0x93, 0x18014284f pmovmskb edx, xmm0 ; +0x98, 0x180142854 and edx, r8d ; +0x9c, 0x180142858 and ecx, r8d ; +0x9f, 0x18014285b jnz short loc_18014288D ; +0xa2, 0x18014285e bsr ecx, edx ; +0xa4, 0x180142860 xorps xmm1, xmm1 ; +0xa7, 0x180142863 movdqa xmm0, xmm2 ; +0xaa, 0x180142866 add rcx, r10 ; +0xae, 0x18014286a test edx, edx ; +0xb1, 0x18014286d cmovnz r9, rcx ; +0xb3, 0x18014286f add r10, 10h ; +0xb7, 0x180142873 pcmpeqb xmm1, xmmword ptr [r10] ; +0xbb, 0x180142877 pcmpeqb xmm0, xmmword ptr [r10] ; +0xc0, 0x18014287c pmovmskb ecx, xmm1 ; +0xc5, 0x180142881 pmovmskb edx, xmm0 ; +0xc9, 0x180142885 test ecx, ecx ; +0xcd, 0x180142889 jz short loc_180142860 ; +0xcf, 0x18014288b mov eax, ecx ; +0xd1, 0x18014288d neg eax ; +0xd3, 0x18014288f and eax, ecx ; +0xd5, 0x180142891 dec eax ; +0xd7, 0x180142893 and edx, eax ; +0xd9, 0x180142895 bsr ecx, edx ; +0xdb, 0x180142897 add rcx, r10 ; +0xde, 0x18014289a test edx, edx ; +0xe1, 0x18014289d cmovnz r9, rcx ; +0xe3, 0x18014289f mov rax, r9 ; +0xe7, 0x1801428a3 retn ; +0xea, 0x1801428a6 movsx eax, byte ptr [r8] ; +0xeb, 0x1801428a7 cmp eax, edx ; +0xef, 0x1801428ab cmovz r9, r8 ; +0xf1, 0x1801428ad cmp byte ptr [r8], 0 ; +0xf5, 0x1801428b1 jz short loc_1801428A3 ; +0xf9, 0x1801428b5 inc r8 ; +0xfb, 0x1801428b7 test r8b, 0Fh ; +0xfe, 0x1801428ba jnz short loc_1801428A7 ; +0x102, 0x1801428be movzx eax, dl ; +0x104, 0x1801428c0 movd xmm0, eax ; +0x107, 0x1801428c3 pcmpistri xmm0, xmmword ptr [r8], 40h ; '@' ; +0x10b, 0x1801428c7 jnb short loc_1801428DD ; +0x112, 0x1801428ce movsxd r9, ecx ; +0x114, 0x1801428d0 add r9, r8 ; +0x117, 0x1801428d3 pcmpistri xmm0, xmmword ptr [r8], 40h ; '@' ; +0x11a, 0x1801428d6 jz short loc_1801428A3 ; +0x121, 0x1801428dd add r8, 10h ; +0x123, 0x1801428df jmp short loc_1801428C7 ; +0x127, 0x1801428e3