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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
push esi
push edi
mov edi, dword [ebp + 0x14]
mov eax, ecx
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x10], xmm1
mov dword [esp + 0x20], eax
cmp dword [edi + 0x14], 0xf
jbe 0x1005e258
mov edi, dword [edi]
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea esi, [ecx + 0x4c]
mov eax, dword [eax + 0x38]
mov ecx, dword [esi]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x1005e299
inc ecx
test eax, eax
je 0x1005e287
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x1005e28c
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100198b0
mov edx, dword [esi]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x30]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x2c]
inc dword [esi]
call fcn.10022100
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov esi, dword [0x1020f4d8]
mov dword [esp + 0x30], eax
call fcn.10013c30
lea eax, [esp + 0x30]
push eax
lea ecx, [esi + 0x1ab4]
call fcn.10019930
mov eax, dword [esi + 0x19b0]
mov ecx, dword [eax + 0x284]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x2c], ecx
lea esi, [ecx + 0x4c]
mov eax, dword [eax + 0x38]
mov ecx, dword [esi]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x1005e31e
inc ecx
test eax, eax
je 0x1005e30c
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x1005e311
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.100198b0
mov edx, dword [esi]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x30]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x2c]
inc dword [esi]
call fcn.10022100
mov ecx, dword [0x1020f4d8]
xorps xmm0, xmm0
movss xmm2, dword [ecx + 0x18c4]
test edi, edi
jne 0x1005e34f
xorps xmm3, xmm3
jmp 0x1005e38d
push ecx
push 0
push edi
push ecx
mov ecx, dword [ecx + 0x18c0]
lea eax, [esp + 0x68]
mov dword [esp], 0xbf800000
push eax
call fcn.100279e0
movss xmm0, dword [esp + 0x58]
addss xmm0, dword [0x10155bb8]
movss xmm2, dword [esp + 0x5c]
cvttss2si eax, xmm0
xorps xmm0, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movzx eax, byte [ebp + 0xb]
mov edx, dword [ebp + 0xc]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
test dl, 0x30
je 0x1005e3a8
mulss xmm1, dword [0x10155b48]
cvttss2si eax, xmm1
mov dword [esp + 0x1c], eax
test dl, 1
jne 0x1005e3b8
xorps xmm3, xmm3
test dl, 2
jne 0x1005e3c0
xorps xmm2, xmm2
movss xmm4, dword [0x10155b64]
movss xmm7, dword [esp + 0x10]
movss xmm6, dword [esp + 0x18]
movss xmm5, dword [0x10155e08]
mov esi, dword [esp + 0x20]
mulss xmm3, xmm4
mulss xmm2, xmm4
subss xmm7, xmm3
movss xmm3, dword [0x10155aa0]
subss xmm6, xmm2
movss xmm2, dword [0x10155bc0]
movss dword [esp + 0x10], xmm7
movss dword [esp + 0x58], xmm7
movss dword [esp + 0x18], xmm6
movss dword [esp + 0x5c], xmm6
test dl, 0x18
je 0x1005ea86
movzx eax, al
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
comiss xmm0, xmm1
movss dword [esp + 0x14], xmm1
ja 0x1005ea82
movaps xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movaps xmm0, xmm7
addss xmm0, xmm2
shl eax, 0x18
mov dword [esp + 0x24], eax
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x38], xmm0
movaps xmm0, xmm6
subss xmm0, xmm2
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x3c], xmm0
test eax, eax
je 0x1005e517
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e490
sub ecx, edx
lea eax, [ecx + edi]
mov dword [esp + 0x30], eax
cmp edi, eax
je 0x1005e517
push dword [esp + 0x3c]
mov ecx, dword [esi + 0x20]
push dword [esp + 0x3c]
push 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x48]
add edx, edx
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push dword [esp + 0x40]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x58]
push ecx
push dword [esp + 0x40]
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [eax + 8]
movups xmmword [esp + 0x64], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movss xmm6, dword [esp + 0x18]
movss xmm7, dword [esp + 0x10]
movaps xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movaps xmm0, xmm7
subss xmm0, xmm2
shl eax, 0x18
mov dword [esp + 0x38], eax
movss dword [esp + 0x30], xmm0
movss dword [esp + 0x40], xmm0
movaps xmm0, xmm6
addss xmm0, xmm2
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x44], xmm0
test eax, eax
je 0x1005e5e2
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e564
sub ecx, edx
lea eax, [edi + ecx]
mov dword [esp + 0x34], eax
cmp edi, eax
je 0x1005e5e2
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
push dword [esp + 0x44]
push 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x48]
add edx, edx
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push dword [esp + 0x44]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x54]
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [eax + 8]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movaps xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x30]
shl eax, 0x18
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x28]
mov dword [esp + 0x34], eax
movss dword [esp + 0x44], xmm0
test eax, eax
je 0x1005e69f
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e621
sub ecx, edx
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005e69f
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
push dword [esp + 0x44]
push 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x48]
add edx, edx
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [eax + 8]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movaps xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x2c]
shl eax, 0x18
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x24]
mov dword [esp + 0x34], eax
movss dword [esp + 0x44], xmm0
test eax, eax
je 0x1005e75e
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e6e0
sub ecx, edx
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005e75e
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
push dword [esp + 0x44]
push 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x48]
add edx, edx
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [eax + 8]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movaps xmm0, xmm1
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x10]
shl eax, 0x18
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x24]
mov dword [esp + 0x34], eax
movss dword [esp + 0x44], xmm0
test eax, eax
je 0x1005e81e
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e7a0
sub ecx, edx
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005e81e
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
push dword [esp + 0x44]
push 0
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 0x48]
add edx, edx
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [esi + 0x20]
push ecx
mov ecx, dword [eax + 8]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movaps xmm0, xmm1
mov edx, dword [esi + 0x20]
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x10]
shl eax, 0x18
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x28]
mov dword [esp + 0x34], eax
movss dword [esp + 0x44], xmm0
test eax, eax
je 0x1005e8e3
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e864
sub ecx, dword [esp + 0x38]
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005e8e3
push dword [esp + 0x44]
mov eax, dword [edx + 0x28]
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
mov edx, dword [edx + 0x40]
movss xmm2, dword [eax + 0xc]
add edx, edx
push 0
mov ecx, dword [ecx + 0x48]
push ecx
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [eax + 8]
push dword [esi + 0x20]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movss xmm6, dword [esp + 0x18]
movaps xmm0, xmm1
mov edx, dword [esi + 0x20]
minss xmm0, xmm2
movss dword [esp + 0x44], xmm6
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x2c]
shl eax, 0x18
mov dword [esp + 0x34], eax
movss dword [esp + 0x40], xmm0
test eax, eax
je 0x1005e9b5
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e930
sub ecx, dword [esp + 0x38]
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005e9b5
push dword [esp + 0x44]
mov eax, dword [edx + 0x28]
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
mov edx, dword [edx + 0x40]
movss xmm2, dword [eax + 0xc]
add edx, edx
push 0
mov ecx, dword [ecx + 0x48]
push ecx
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [eax + 8]
push dword [esi + 0x20]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm1, dword [esp + 0x14]
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movss xmm6, dword [esp + 0x18]
movss xmm0, dword [esp + 0x30]
minss xmm1, xmm2
mov edx, dword [esi + 0x20]
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x44], xmm6
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 0x18
mov dword [esp + 0x34], eax
test eax, eax
je 0x1005ea71
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005e9f2
sub ecx, dword [esp + 0x38]
lea eax, [edi + ecx]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005ea71
push dword [esp + 0x44]
mov eax, dword [edx + 0x28]
push dword [esp + 0x44]
mov ecx, dword [esi + 0x20]
mov edx, dword [edx + 0x40]
movss xmm2, dword [eax + 0xc]
add edx, edx
push 0
mov ecx, dword [ecx + 0x48]
push ecx
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [eax + 8]
push dword [esi + 0x20]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
movss xmm2, dword [0x10155bc0]
movss xmm4, dword [0x10155b64]
movss xmm5, dword [0x10155e08]
movss xmm6, dword [esp + 0x18]
mov edx, dword [ebp + 0xc]
movss xmm3, dword [0x10155aa0]
movss xmm7, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test dl, 0x24
je 0x1005eb44
mov edx, dword [esi + 0x20]
movzx eax, al
mov dword [esp + 0x30], edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
xorps xmm3, xmm3
comiss xmm3, xmm0
ja 0x1005eb47
minss xmm0, xmm2
addss xmm7, xmm2
addss xmm6, xmm2
mulss xmm0, xmm5
movss dword [esp + 0x40], xmm7
movss dword [esp + 0x44], xmm6
addss xmm0, xmm4
cvttss2si esi, xmm0
shl esi, 0x18
test esi, esi
je 0x1005eb47
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005eae4
sub ecx, dword [esp + 0x38]
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005eb47
push dword [esp + 0x44]
mov eax, dword [edx + 0x28]
push dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + 0x40]
movss xmm2, dword [eax + 0xc]
add edx, edx
push 0
mov ecx, dword [ecx + 0x48]
push ecx
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [eax + 8]
push esi
push dword [esp + 0x50]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
xorps xmm3, xmm3
mov eax, dword [esp + 0x20]
movss xmm5, dword [0x10155aa0]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp + 8]
movzx ecx, ah
movzx eax, al
mov dword [esp + 0x30], edx
movd xmm1, ecx
movzx ecx, byte [ebp + 0xa]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movd xmm0, ecx
movzx ecx, byte [ebp + 0xb]
cvtdq2ps xmm1, xmm1
movd xmm4, ecx
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm4, xmm4
mulss xmm2, xmm5
mulss xmm1, xmm5
comiss xmm3, xmm2
mulss xmm0, xmm5
mulss xmm4, xmm5
movss xmm5, dword [0x10155bc0]
jbe 0x1005eba9
movaps xmm2, xmm3
jmp 0x1005ebad
minss xmm2, xmm5
movss xmm7, dword [0x10155e08]
movss xmm6, dword [0x10155b64]
mulss xmm2, xmm7
addss xmm2, xmm6
cvttss2si ecx, xmm2
shl ecx, 0x10
comiss xmm3, xmm1
jbe 0x1005ebd6
movaps xmm1, xmm3
jmp 0x1005ebda
minss xmm1, xmm5
mulss xmm1, xmm7
addss xmm1, xmm6
cvttss2si eax, xmm1
shl eax, 8
or ecx, eax
comiss xmm3, xmm0
jbe 0x1005ebf5
movaps xmm0, xmm3
jmp 0x1005ebf9
minss xmm0, xmm5
mulss xmm0, xmm7
addss xmm0, xmm6
cvttss2si eax, xmm0
or ecx, eax
comiss xmm3, xmm4
ja 0x1005ec13
minss xmm4, xmm5
movaps xmm3, xmm4
mulss xmm3, xmm7
addss xmm3, xmm6
cvttss2si esi, xmm3
shl esi, 0x18
or esi, ecx
test esi, 0xff000000
je 0x1005ec95
mov ecx, edi
lea eax, [ecx + 1]
mov dword [esp + 0x38], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1005ec35
sub ecx, dword [esp + 0x38]
lea eax, [ecx + edi]
mov dword [esp + 0x38], eax
cmp edi, eax
je 0x1005ec95
push dword [esp + 0x5c]
mov eax, dword [edx + 0x28]
push dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + 0x40]
movss xmm2, dword [eax + 0xc]
add edx, edx
push 0
mov ecx, dword [ecx + 0x48]
push ecx
mov dword [esp], 0
push dword [esp + 0x48]
movups xmm0, xmmword [ecx + edx*8 - 0x10]
push edi
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [eax + 8]
push esi
push dword [esp + 0x50]
movups xmmword [esp + 0x84], xmm0
call fcn.10027b90
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x20]
dec dword [ecx + 0x4c]
call fcn.10022100
mov esi, dword [0x1020f4d8]
mov eax, dword [esi + 0x19b0]
mov ecx, dword [eax + 0x284]
dec dword [ecx + 0x4c]
call fcn.10022100
mov ecx, dword [esi + 0x1ab4]
sub ecx, 1
mov dword [esi + 0x1ab4], ecx
jne 0x1005ecf6
mov eax, dword [0x1020f4d8]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
jne 0x1005ed00
mov eax, dword [eax + 0x98]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax]
call fcn.10013c30
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 0x1abc]
mov ecx, dword [eax + ecx*4 - 4]
call fcn.10013c30
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10