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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x60
push esi
mov esi, dword [ebp + 8]
mov eax, edx
push edi
mov edi, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edi
cmp byte [esi + 0xbc], 0
je 0x1003f1ec
cmp byte [esi + 0xbe], 0
lea ecx, [edi + 0x56]
movss xmm0, dword [eax]
movss xmm2, dword [0x101ecca0]
mov eax, dword [esi + 0x114]
subss xmm0, xmm2
movss xmm4, dword [0x101ecaf4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], ecx
movss dword [esp + 0x14], xmm0
je 0x1003e7dd
cmp byte [ecx], 0
mov eax, dword [0x1021663c]
mov esi, dword [eax + 0x5c]
mov eax, dword [0x10216634]
mov dword [esp + 0x28], esi
je 0x1003e6f3
movss xmm1, dword [eax + 0x1248]
jmp 0x1003e6fb
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea edx, [esp + 0x20]
mov esi, dword [esi]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], 0x3f800000
mov eax, dword [eax + 0xc]
mov dword [esp + 0x20], 0
movss xmm0, dword [eax]
lea eax, [esp + 0x1c]
subss xmm0, dword [edi + 0x6c]
subss xmm0, xmm4
divss xmm0, xmm1
movss xmm1, dword [0x101ecba0]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [esp + 0x1c], xmm1
cmovbe edx, eax
lea eax, [esp + 0x24]
comiss xmm1, dword [0x101ecba0]
cmovbe eax, edx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101ecdfc]
cvttss2si eax, xmm0
push eax
mov eax, dword [esi + 0x3c]
push 0
push 0
push 0
call eax
mov eax, dword [0x1021663c]
mov esi, dword [esp + 0xc]
movss xmm0, dword [esp + 0x14]
movaps xmm1, xmm0
mov ecx, dword [eax + 0x5c]
cvttss2si eax, dword [esi + 0xc]
mov edx, dword [ecx]
addss xmm1, dword [0x101ecba0]
subss xmm0, dword [0x101ecca0]
push eax
cvttss2si eax, xmm1
movss dword [esp + 0x20], xmm1
push eax
cvttss2si eax, dword [esi + 4]
movss dword [esp + 0x28], xmm0
push eax
cvttss2si eax, xmm0
push eax
mov eax, dword [edx + 0x40]
call eax
movss xmm3, dword [0x101ecba0]
lea ecx, [edi + 0x56]
movss xmm4, dword [0x101ecaf4]
mov esi, dword [ebp + 8]
jmp 0x1003e800
movss xmm3, dword [0x101ecba0]
movaps xmm1, xmm0
addss xmm1, xmm3
mov dword [esp + 0x10], ecx
subss xmm0, xmm2
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x20], xmm0
cmp byte [esi + 0xbd], 0
movss xmm2, dword [0x101ece10]
je 0x1003e8fc
cmp byte [ecx], 0
mov eax, dword [0x1021663c]
mov esi, dword [eax + 0x5c]
mov eax, dword [0x10216634]
mov dword [esp + 0x30], esi
je 0x1003e835
movss xmm1, dword [eax + 0x1248]
jmp 0x1003e83d
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea edx, [esp + 0x28]
mov esi, dword [esi]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2c], 0x3f800000
mov eax, dword [eax + 0xc]
mov dword [esp + 0x28], 0
movss xmm0, dword [eax]
lea eax, [esp + 0x24]
subss xmm0, dword [edi + 0x6c]
subss xmm0, xmm4
divss xmm0, xmm1
movaps xmm1, xmm3
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [esp + 0x24], xmm1
cmovbe edx, eax
lea eax, [esp + 0x2c]
comiss xmm1, xmm3
cmovbe eax, edx
movss xmm0, dword [eax]
mulss xmm0, xmm2
cvttss2si eax, xmm0
push eax
mov eax, dword [esi + 0x3c]
push 0
push 0
push 0
call eax
mov esi, dword [esp + 0xc]
mov eax, dword [0x1021663c]
movss xmm0, dword [esi + 0xc]
addss xmm0, dword [0x101ecba0]
mov ecx, dword [eax + 0x5c]
cvttss2si eax, xmm0
mov edx, dword [ecx]
movss xmm0, dword [esi + 4]
subss xmm0, dword [0x101ecba0]
push eax
cvttss2si eax, dword [esp + 0x20]
push eax
cvttss2si eax, xmm0
push eax
cvttss2si eax, dword [esp + 0x2c]
push eax
mov eax, dword [edx + 0x48]
call eax
movss xmm2, dword [0x101ece10]
mov esi, dword [ebp + 8]
cmp byte [esi + 0xd4], 0
movss xmm1, dword [0x101eccd4]
je 0x1003ec42
cmp dword [edi + 0x78], 0x64
je 0x1003ec42
cmp byte [esi + 0xd3], 0
mov eax, dword [0x1021663c]
jne 0x1003ea08
mov edx, dword [eax + 0x5c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edx
cmp byte [eax], 0
mov eax, dword [0x10216634]
je 0x1003e94c
movss xmm1, dword [eax + 0x1248]
jmp 0x1003e954
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea ecx, [esp + 0x30]
mov dword [esp + 0x28], 0x3f800000
mov dword [esp + 0x30], 0
mov edx, dword [edx]
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
lea eax, [esp + 0x2c]
subss xmm0, dword [edi + 0x6c]
subss xmm0, dword [0x101ecaf4]
divss xmm0, xmm1
movss xmm1, dword [0x101ecba0]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss xmm0, dword [esi + 0xcb]
mulss xmm0, xmm2
cmovbe ecx, eax
lea eax, [esp + 0x28]
movss dword [esp + 0x2c], xmm1
comiss xmm1, dword [0x101ecba0]
cmovbe eax, ecx
mov ecx, dword [esp + 0x24]
mulss xmm0, dword [eax]
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xc7]
mulss xmm0, xmm2
push eax
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xc3]
mulss xmm0, xmm2
push eax
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xbf]
mulss xmm0, xmm2
push eax
cvttss2si eax, xmm0
push eax
mov eax, dword [edx + 0x64]
jmp 0x1003eac4
mov edi, dword [eax + 0x5c]
mov eax, dword [0x10216630]
push 0xff
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
mulss xmm0, dword [esi + 0xcf]
mov esi, dword [edi]
movss dword [esp + 0x24], xmm0
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x101ecc58]
push eax
cvtps2pd xmm0, xmm0
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x28]
cvtps2pd xmm0, xmm0
push eax
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mov ecx, edi
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
push eax
mov eax, dword [esi + 0x64]
call eax
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x5c]
mov eax, dword [0x10216968]
mov edx, dword [ecx]
push dword [eax + 0x28]
mov eax, dword [edx + 0x5c]
call eax
mov eax, dword [0x1021663c]
lea ecx, [esp + 0x50]
mov esi, dword [esp + 0x18]
mov edi, dword [eax + 0x5c]
mov edx, dword [esi + 0x78]
call fcn.10041c80
cmp dword [esp + 0x64], 7
lea ecx, [esp + 0x30]
mov edx, dword [edi]
lea eax, [esp + 0x50]
cmova eax, dword [esp + 0x50]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
mov eax, dword [0x10216968]
mov ecx, edi
push dword [eax + 0x28]
mov eax, dword [edx + 0x13c]
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x78]
movss xmm1, dword [eax + 4]
movss xmm2, dword [eax + 0xc]
mov eax, 0x64
sub eax, ecx
subss xmm2, xmm1
movd xmm0, eax
andps xmm2, xmmword [0x101ed3d0]
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + 0x30]
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
lea ecx, [esp + 0x38]
mulss xmm2, xmm0
movd xmm0, eax
mov eax, dword [0x1021663c]
divss xmm2, dword [0x101ecdd0]
mov esi, dword [eax + 0x5c]
cvtdq2ps xmm0, xmm0
addss xmm2, xmm1
subss xmm2, xmm0
movss dword [esp + 0x30], xmm2
call fcn.10041c80
cmp dword [esp + 0x4c], 7
lea ecx, [esp + 0x28]
mov edx, dword [esi]
lea eax, [esp + 0x38]
cmova eax, dword [esp + 0x38]
push ecx
lea ecx, [esp + 0x30]
push ecx
push eax
mov eax, dword [0x10216968]
mov ecx, esi
push dword [eax + 0x28]
mov eax, dword [edx + 0x13c]
call eax
movd xmm0, dword [esp + 0x2c]
mov ecx, edi
movss xmm1, dword [esp + 0x14]
subss xmm1, dword [0x101eccd0]
cvttss2si eax, dword [esp + 0x30]
mov edx, dword [edi]
cvtdq2ps xmm0, xmm0
push eax
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
mov eax, dword [edx + 0x68]
call eax
lea ecx, [esp + 0x38]
call fcn.100021f0
lea ecx, [esp + 0x50]
call fcn.100021f0
mov eax, dword [0x1021663c]
lea ecx, [esp + 0x38]
mov edi, dword [esp + 0x18]
mov esi, dword [eax + 0x5c]
mov edx, dword [edi + 0x78]
call fcn.10041c80
cmp dword [esp + 0x4c], 7
lea edx, [esp + 0x38]
mov eax, dword [esi]
mov ecx, esi
cmova edx, dword [esp + 0x38]
push 0
push dword [esp + 0x4c]
mov eax, dword [eax + 0x70]
push edx
call eax
lea ecx, [esp + 0x38]
call fcn.100021f0
movss xmm1, dword [0x101eccd4]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x1003ee5c
cmp byte [esi + 0xe9], 0
mov eax, dword [0x1021663c]
je 0x1003ed27
mov edi, dword [eax + 0x5c]
mov eax, dword [0x10216630]
push 0xff
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
mulss xmm0, dword [esi + 0xe5]
mov esi, dword [edi]
movss dword [esp + 0x24], xmm0
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x101ecc58]
push eax
cvtps2pd xmm0, xmm0
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x28]
cvtps2pd xmm0, xmm0
push eax
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mov ecx, edi
mulss xmm0, dword [0x101ecb34]
addss xmm0, dword [0x101ecb34]
mulss xmm0, dword [0x101ece10]
cvttss2si eax, xmm0
push eax
mov eax, dword [esi + 0x3c]
call eax
mov edi, dword [esp + 0x18]
jmp 0x1003ee07
mov edx, dword [eax + 0x5c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x28], edx
cmp byte [eax], 0
mov eax, dword [0x10216634]
je 0x1003ed46
movss xmm1, dword [eax + 0x1248]
jmp 0x1003ed4e
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x34], 0
mov edx, dword [edx]
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
lea eax, [esp + 0x30]
subss xmm0, dword [edi + 0x6c]
subss xmm0, dword [0x101ecaf4]
divss xmm0, xmm1
movss xmm1, dword [0x101ecba0]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss xmm0, dword [esi + 0xe1]
movss dword [esp + 0x30], xmm1
cmovbe ecx, eax
lea eax, [esp + 0x2c]
comiss xmm1, dword [0x101ecba0]
movss xmm1, dword [0x101ece10]
mulss xmm0, xmm1
cmovbe eax, ecx
mov ecx, dword [esp + 0x28]
mulss xmm0, dword [eax]
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xdd]
mulss xmm0, xmm1
push eax
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xd9]
mulss xmm0, xmm1
push eax
cvttss2si eax, xmm0
movss xmm0, dword [esi + 0xd5]
mulss xmm0, xmm1
push eax
cvttss2si eax, xmm0
push eax
mov eax, dword [edx + 0x3c]
call eax
mov eax, dword [0x1021663c]
movss xmm3, dword [esp + 0x14]
mov ecx, dword [eax + 0x5c]
mov eax, dword [esp + 0xc]
movss xmm2, dword [eax + 0xc]
movss xmm1, dword [eax + 4]
cvttss2si eax, xmm2
subss xmm2, xmm1
push eax
cvttss2si eax, xmm3
andps xmm2, xmmword [0x101ed3d0]
push eax
mov eax, 0x64
sub eax, dword [edi + 0x78]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm2, xmm0
divss xmm2, dword [0x101ecdd0]
addss xmm2, xmm1
jmp 0x1003f1d3
cmp eax, 1
jne 0x1003f094
mov eax, dword [esp + 0x10]
cmp byte [eax], 0
mov eax, dword [0x10216634]
je 0x1003ee7d
movss xmm1, dword [eax + 0x1248]
jmp 0x1003ee85
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x34], 0
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
lea eax, [esp + 0x30]
subss xmm0, dword [edi + 0x6c]
subss xmm0, dword [0x101ecaf4]
divss xmm0, xmm1
movss xmm1, dword [0x101ecba0]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [esp + 0x30], xmm1
cmovbe ecx, eax
lea eax, [esp + 0x2c]
comiss xmm1, dword [0x101ecba0]
movups xmm1, xmmword [esi + 0xff]
cmovbe eax, ecx
sub esp, 0x18
mov ecx, esp
movss xmm0, dword [eax]
mov eax, dword [esi + 0x10f]
mulss xmm0, dword [esi + 0x10b]
movups xmmword [ecx], xmm1
mov dword [ecx + 0x10], eax
mov al, byte [esi + 0x113]
mov byte [ecx + 0x14], al
call fcn.100b13a0
mov edx, eax
mov ecx, edx
shr ecx, 8
movzx eax, cl
movzx ecx, dl
shl ecx, 8
or eax, ecx
mov ecx, edx
shl eax, 8
and edx, 0xff000000
shr ecx, 0x10
mov dword [esp + 0x18], eax
movzx eax, cl
mov ecx, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x10]
or ecx, edx
mov dword [esp + 0x18], ecx
cmp byte [eax], 0
mov eax, dword [0x10216634]
je 0x1003ef60
movss xmm1, dword [eax + 0x1248]
jmp 0x1003ef68
movss xmm1, dword [eax + 0x13d0]
mov eax, dword [0x10216630]
lea ecx, [esp + 0x34]
mov dword [esp + 0x2c], 0x3f800000
mov dword [esp + 0x34], 0
mov eax, dword [eax + 0xc]
movss xmm0, dword [eax]
lea eax, [esp + 0x30]
subss xmm0, dword [edi + 0x6c]
subss xmm0, dword [0x101ecaf4]
divss xmm0, xmm1
movss xmm1, dword [0x101ecba0]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [esp + 0x30], xmm1
cmovbe ecx, eax
lea eax, [esp + 0x2c]
comiss xmm1, dword [0x101ecba0]
movups xmm1, xmmword [esi + 0xea]
cmovbe eax, ecx
sub esp, 0x18
mov ecx, esp
movss xmm0, dword [eax]
mov eax, dword [esi + 0xfa]
mulss xmm0, dword [esi + 0xf6]
movups xmmword [ecx], xmm1
mov dword [ecx + 0x10], eax
mov al, byte [esi + 0xfe]
mov byte [ecx + 0x14], al
call fcn.100b13a0
mov ecx, dword [esp + 0xc]
push dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
mov dword [esp + 0x38], eax
movss xmm3, dword [ecx + 0xc]
movss xmm2, dword [ecx + 4]
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, al
shr eax, 0x10
movzx eax, al
shl ecx, 8
or edx, ecx
shl edx, 8
or edx, eax
mov eax, dword [esp + 0x38]
and eax, 0xff000000
or edx, eax
cvttss2si eax, xmm3
push edx
subss xmm3, xmm2
push eax
cvttss2si eax, xmm0
andps xmm3, xmmword [0x101ed3d0]
push eax
mov eax, 0x64
sub eax, dword [edi + 0x78]
subss xmm0, dword [0x101ecc48]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvttss2si ecx, xmm0
mulss xmm3, xmm1
movss xmm0, dword [0x101ecba0]
divss xmm3, dword [0x101ecdd0]
addss xmm3, xmm2
cvttss2si edx, xmm3
call fcn.1014f630
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
cmp eax, 2
jne 0x1003f1ec
mov eax, dword [0x1021663c]
mov esi, dword [eax + 0x5c]
mov eax, dword [edi + 0x78]
cmp eax, 0x64
jge 0x1003f0b8
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
jmp 0x1003f0bd
mov ecx, 0x64
movss xmm1, dword [0x101ecc78]
movss xmm2, dword [0x101ece10]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
comiss xmm2, xmm0
jbe 0x1003f10a
cmp eax, 0x64
jge 0x1003f0f8
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
jmp 0x1003f10d
mov ecx, 0x64
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
jmp 0x1003f10d
movaps xmm0, xmm2
cvttss2si ecx, xmm0
mov dword [esp + 0x34], ecx
cmp eax, 0x64
jge 0x1003f125
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
jmp 0x1003f12a
mov ecx, 0x64
movss xmm3, dword [0x101eccec]
movaps xmm0, xmm2
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
subss xmm0, xmm1
comiss xmm2, xmm0
jbe 0x1003f16b
cmp eax, 0x64
jge 0x1003f157
xor ecx, ecx
test eax, eax
cmovs eax, ecx
jmp 0x1003f15c
mov eax, 0x64
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
subss xmm2, xmm0
mov edx, dword [esi]
mov ecx, esi
cvttss2si eax, xmm2
push 0xff
push 0
push dword [esp + 0x3c]
push eax
mov eax, dword [edx + 0x3c]
call eax
mov esi, dword [esp + 0xc]
mov eax, dword [0x1021663c]
movss xmm3, dword [esp + 0x14]
movss xmm2, dword [esi + 0xc]
mov ecx, dword [eax + 0x5c]
movaps xmm1, xmm2
subss xmm1, dword [esi + 4]
cvttss2si eax, xmm2
andps xmm1, xmmword [0x101ed3d0]
push eax
cvttss2si eax, xmm3
push eax
mov eax, 0x64
sub eax, dword [edi + 0x78]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
divss xmm1, dword [0x101ecdd0]
subss xmm2, xmm1
subss xmm3, dword [0x101ecc48]
mov edx, dword [ecx]
cvttss2si eax, xmm2
push eax
cvttss2si eax, xmm3
push eax
mov eax, dword [edx + 0x40]
call eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4