Function at 0x10004060
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x10041010]
xor eax, esp
mov dword [esp + 0x1a0], eax
mov ecx, dword [0x100692b8]
movss xmm0, dword [0x1003eadc]
push ebx
push esi
mov eax, dword [ecx]
or ebx, 0xffffffff
push edi
mov dword [esp + 0x10], ebx
movss dword [esp + 0x14], xmm0
call dword [eax + 0xf4]
mov esi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov edi, eax
push 4
push edi
mov dword [esp + 0x28], edi
call esi
test eax, eax
jne 0x10004361
test edi, edi
je 0x10004361
xor ebx, ebx
cmp dword [edi + 0x18c], ebx
jle 0x10004349
nop
mov eax, dword [edi + 0x184]
push 4
mov edi, dword [eax + ebx*4]
push edi
call esi
test eax, eax
jne 0x1000431f
test edi, edi
je 0x1000431f
mov esi, dword [edi + 0x10]
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10004319
test esi, esi
je 0x10004319
mov esi, dword [0x3840db0c]
mov eax, 0x371b92e0
push dword [edi + 0x5dc]
mov ecx, esi
mov dword [0x100692c4], 0x371b92e0
mov dword [0x100692bc], 0x371ba2d0
call eax
mov dword [esp + 0x18], eax
mov ecx, esi
mov eax, dword [0x100692bc]
call eax
mov esi, dword [esp + 0x18]
push 4
push esi
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10004319
test esi, esi
je 0x10004319
cmp byte [esi + 8], al
jne 0x10004319
mov ecx, dword [0x100692ac]
lea edx, [esp + 0x98]
push 1
push edx
push 8
mov eax, dword [ecx]
push dword [edi + 0x10]
call dword [eax + 0x40]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
cmp eax, dword [ecx + 0xc]
je 0x10004319
cmp byte [edi + 0x562], 0
jne 0x10004319
push 0x2c
lea eax, [esp + 0x70]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x100692d8]
lea ecx, [esp + 0x78]
xorps xmm0, xmm0
mov dword [esp + 0x44], 0
movlpd qword [esp + 0x3c], xmm0
add esp, 0xc
movlpd qword [esp + 0x48], xmm0
mov eax, dword [eax + 0x13c]
movlpd qword [esp + 0x50], xmm0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
mov dword [esp + 0x68], 0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x30], xmm0
mov eax, dword [eax + 0x18]
movq xmm0, qword [esp + 0x98]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
mov eax, dword [0x100692e0]
push ecx
lea ecx, [esp + 0x34]
movq qword [esp + 0x40], xmm0
push ecx
mov eax, dword [eax + 0x38]
call eax
add esp, 8
test al, al
jne 0x10004319
mov eax, dword [0x100692d8]
sub esp, 0xc
movq xmm0, qword [esp + 0xa4]
mov ecx, esp
sub esp, 0xc
mov esi, dword [eax + 0x13c]
mov eax, dword [esp + 0xb8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, esp
movq xmm0, qword [esi + 0x10]
mov eax, dword [esi + 0x18]
movq qword [ecx], xmm0
movd xmm0, dword [ebp + 8]
cvtdq2ps xmm0, xmm0
mov dword [ecx + 8], eax
call fcn.10003ee0
add esp, 0x18
test eax, eax
je 0x10004319
movq xmm0, qword [esi + 0x10]
mov eax, dword [esi + 0x18]
movq qword [esp + 0x24], xmm0
movss xmm1, dword [esp + 0x28]
movss xmm2, dword [esp + 0x24]
subss xmm2, dword [esp + 0x98]
subss xmm1, dword [esp + 0x9c]
mov dword [esp + 0x2c], eax
movss xmm0, dword [esp + 0x2c]
subss xmm0, dword [esp + 0xa0]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x100042f1
sqrtsd xmm0, xmm0
jmp 0x100042f6
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm1, dword [esp + 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1000431f
mov eax, ebx
movss dword [esp + 0x14], xmm0
mov dword [esp + 0x10], eax
jmp 0x10004323
mov esi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
inc ebx
cmp ebx, dword [edi + 0x18c]
jl 0x100040d0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.100348e0
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.100348e0
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1ac]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100348e0
mov esp, ebp
pop ebp
ret