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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
cmp dword [ebp + 0xc], 0
mov eax, 1
push esi
mov esi, ecx
mov dword [esp + 0x48], eax
push edi
mov edi, edx
mov dword [esp + 0x18], esi
mov dword [esp + 0xc], edi
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x2c], 0
jle 0x1002c1f4
mov ecx, dword [ebp + 8]
xorps xmm4, xmm4
movss xmm3, dword [0x100afe7c]
add ecx, 8
movss xmm5, dword [0x100afebc]
mov dword [esp + 0x38], ecx
movss xmm2, dword [ecx - 8]
comiss xmm2, xmm4
jbe 0x1002bab2
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 4]
movzx edx, byte [eax + edi + 7]
movzx ecx, byte [eax + edi + 6]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
mov ecx, dword [esp + 0xc]
movsx esi, dx
mov eax, dword [ecx + 0x1c]
movzx edx, byte [eax + edi + 5]
movzx ecx, byte [eax + edi + 4]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
movsx eax, dx
sub eax, esi
mov esi, dword [esp + 0x18]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
jmp 0x1002bad9
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 4]
movzx ecx, byte [edx + eax + 0x12]
movzx eax, byte [edx + eax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
xorps xmm2, xmmword [0x100b05c0]
mov ecx, dword [esp + 0x38]
movaps xmm1, xmm5
movss dword [esp + 0x28], xmm2
movzx edi, byte [ecx + 0xc]
mov eax, edi
mov dword [esi + 0x1c], edi
movzx edx, byte [ecx + 0xd]
shr eax, 0x1f
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mov dword [esi + 0x20], edx
addsd xmm0, qword [eax*8 + 0x100b0550]
mov eax, edx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movd xmm0, edx
movss dword [esp + 0x6c], xmm1
movaps xmm1, xmm5
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100b0550]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esp + 0x74], xmm1
test edi, edi
jne 0x1002bb4b
movss dword [esp + 0x44], xmm4
jmp 0x1002bb76
movd xmm0, edi
mov eax, 1
cvtdq2ps xmm0, xmm0
sub eax, edi
divss xmm3, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm3, xmm0
movss dword [esp + 0x44], xmm3
movss xmm3, dword [0x100afe7c]
test edx, edx
jne 0x1002bb82
movss dword [esp + 0x48], xmm4
jmp 0x1002bba8
movd xmm0, edx
movaps xmm1, xmm3
cvtdq2ps xmm0, xmm0
mov eax, 1
sub eax, edx
divss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
movss dword [esp + 0x48], xmm1
xor edx, edx
mov dword [esp + 0x30], edx
cmp dword [ecx + 4], edx
jle 0x1002c1cb
mov eax, dword [esp + 0x2c]
mov edi, dword [ebp + 0x10]
shl eax, 4
add edi, 8
mov dword [esp + 0x34], edx
add edi, eax
nop word [eax + eax]
cmp dword [edi + 4], 0
je 0x1002c1a1
movzx eax, word [edi - 4]
mov dword [esp + 0x14], eax
test ax, ax
je 0x1002c1a1
movzx eax, word [edi - 2]
mov dword [esp + 0x1c], eax
test ax, ax
je 0x1002c1a1
mov eax, dword [ecx + 8]
add eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [ecx]
test eax, eax
jne 0x1002bc16
mov edx, dword [ecx - 4]
add edx, dword [esp + 0x30]
jmp 0x1002bc19
mov edx, dword [eax + edx*4]
mov ecx, dword [esp + 0xc]
call fcn.10026530
mov ecx, dword [esp + 0x14]
mov dword [esp + 8], eax
movzx eax, word [esi + 0x14]
add word [edi], ax
sub ecx, eax
add word [edi + 2], ax
mov word [edi - 4], cx
mov ecx, dword [esp + 0x1c]
sub ecx, eax
mov word [edi - 2], cx
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x14], edx
movzx esi, byte [eax + edx + 0x23]
movzx eax, byte [eax + edx + 0x22]
mov edx, dword [esp + 8]
shl eax, 8
mov dword [esp + 0x10], esi
add dword [esp + 0x10], eax
mov eax, dword [ecx + 0x20]
cmp edx, dword [esp + 0x10]
jge 0x1002bc90
lea edx, [eax + edx*4]
mov eax, 0x100
add edx, dword [ecx + 4]
cwde
movzx ecx, byte [edx]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edx + 1]
jmp 0x1002bcb4
mov edx, dword [esp + 0x10]
lea edx, [eax + edx*4]
mov eax, dword [ecx + 4]
movzx ecx, byte [edx + eax - 4]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
mov eax, dword [esp + 0x14]
movzx eax, byte [edx + eax - 3]
mov esi, dword [esp + 0x18]
add cx, ax
movzx eax, cx
movaps xmm3, xmm4
cwde
mov dword [esp + 0x64], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x54]
mov edx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x74]
push eax
mov eax, dword [esi + 0x20]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100b0550]
mov eax, dword [esi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm1, xmm2
addsd xmm0, qword [eax*8 + 0x100b0550]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm2
movaps xmm2, xmm4
call fcn.10028d80
mov eax, dword [esi + 0x10]
movzx ecx, word [edi + 2]
imul ecx, eax
mov dword [esp + 0x50], eax
movzx eax, word [edi]
movzx edx, word [edi - 2]
add ecx, eax
mov eax, dword [esi + 0x1c]
add ecx, dword [esi + 0x24]
mov dword [esp + 0x54], ecx
movzx ecx, word [edi - 4]
movd xmm0, eax
sub ecx, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
inc ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [esi + 0x20]
sub edx, ecx
inc edx
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 8]
addsd xmm0, qword [eax*8 + 0x100b0550]
lea eax, [esp + 0x40]
push eax
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x28], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x100b0550]
mov ecx, dword [esp + 0x10]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x14], xmm0
call fcn.10028c90
mov edx, dword [esp + 8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
je 0x1002be36
lea ecx, [esp + 0x90]
mov dword [esp + 0x90], 1
xorps xmm0, xmm0
mov dword [esp + 0x94], 0
push ecx
mov ecx, eax
mov dword [esp + 0xbc], 0
movups xmmword [esp + 0x9c], xmm0
mov dword [esp + 0xc0], 0
movups xmmword [esp + 0xac], xmm0
call fcn.100276e0
xor ecx, ecx
test eax, eax
cmovne ecx, dword [esp + 0xa8]
mov dword [esp + 8], ecx
xor ecx, ecx
test eax, eax
cmovne ecx, dword [esp + 0xb4]
jmp 0x1002beb3
mov ecx, eax
call fcn.10026850
mov edx, eax
mov dword [esp + 0x14], edx
test edx, edx
jns 0x1002be68
movss xmm5, dword [esp + 0x24]
movss xmm6, dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x1c], 0
jmp 0x1002bf75
mov eax, dword [esp + 0xc]
mov esi, dword [eax + 4]
mov eax, 0x100
cwde
movzx ecx, byte [esi + edx + 2]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edx + 3]
movzx edx, byte [esi + edx + 9]
add cx, ax
movsx eax, cx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
movzx ecx, byte [esi + eax + 8]
mov eax, 0x100
mov esi, dword [esp + 0x18]
movsx ecx, cx
cwde
imul ecx, eax
add dx, cx
movsx ecx, dx
movss xmm5, dword [esp + 0x24]
xorps xmm4, xmm4
cvtsi2ss xmm4, dword [esp + 8]
neg ecx
movss xmm3, dword [0x100afff0]
movss xmm1, dword [0x100affe0]
mulss xmm4, xmm5
movss xmm6, dword [esp + 0x10]
movss xmm7, dword [0x100afebc]
andps xmm3, xmm4
movaps xmm0, xmm4
xorps xmm0, xmm3
movaps xmm2, xmm4
cmpltss xmm0, xmm1
andps xmm1, xmm0
orps xmm1, xmm3
addss xmm2, xmm1
subss xmm2, xmm1
movss xmm1, dword [0x100affe0]
movaps xmm0, xmm2
subss xmm0, xmm4
xorps xmm4, xmm4
cvtsi2ss xmm4, ecx
cmpnless xmm0, xmm3
movss xmm3, dword [0x100afff0]
mulss xmm4, xmm6
andps xmm0, xmm7
andps xmm3, xmm4
subss xmm2, xmm0
movaps xmm0, xmm4
xorps xmm0, xmm3
cmpltss xmm0, xmm1
cvttss2si eax, xmm2
andps xmm1, xmm0
movaps xmm2, xmm4
orps xmm1, xmm3
mov dword [esp + 0x1c], eax
addss xmm2, xmm1
subss xmm2, xmm1
movaps xmm0, xmm2
subss xmm0, xmm4
cmpnless xmm0, xmm3
andps xmm0, xmm7
subss xmm2, xmm0
cvttss2si eax, xmm2
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
test ecx, ecx
je 0x1002c05f
test eax, eax
je 0x1002c05f
movss xmm0, dword [0x100afe6c]
minss xmm6, xmm5
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x44]
push eax
divss xmm0, xmm6
lea eax, [esp + 0x10]
mov dword [esp + 0x1c], 0
push eax
mov dword [esp + 0x14], 0
call fcn.1002aeb0
mov dword [esp + 0x20], eax
test eax, eax
je 0x1002c05f
movss xmm1, dword [esp + 0x10]
xorps xmm2, xmm2
movss xmm0, dword [esp + 0x24]
xorps xmm3, xmm3
push ecx
push 1
push dword [esp + 0x44]
mov edx, eax
lea ecx, [esp + 0x8c]
push dword [esp + 0x28]
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.1002a6e0
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x1002c03b
mov eax, dword [0x100bc128]
test eax, eax
je 0x1002c03b
dec dword [eax + 0x370]
push ecx
call fcn.1007998a
mov eax, dword [0x100bc128]
add esp, 4
test eax, eax
je 0x1002c053
dec dword [eax + 0x370]
push dword [esp + 0x20]
call fcn.1007998a
add esp, 4
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x1002c076
mov eax, dword [0x100bc128]
test eax, eax
je 0x1002c076
dec dword [eax + 0x370]
push ecx
call fcn.1007998a
mov eax, dword [esi + 0x1c]
add esp, 4
cmp eax, 1
jbe 0x1002c0ad
mov esi, dword [esi + 0x10]
movzx ecx, word [edi + 2]
movzx edx, word [edi - 4]
push eax
movzx eax, word [edi - 2]
imul ecx, esi
push esi
mov esi, dword [esp + 0x20]
push eax
movzx eax, word [edi]
add ecx, eax
add ecx, dword [esi + 0x24]
call fcn.1002b560
mov eax, dword [esi + 0x20]
cmp eax, 1
jbe 0x1002c0db
mov esi, dword [esi + 0x10]
movzx ecx, word [edi + 2]
movzx edx, word [edi - 4]
push eax
movzx eax, word [edi - 2]
imul ecx, esi
push esi
push eax
movzx eax, word [edi]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x24]
call fcn.1002b7b0
mov esi, dword [esp + 0x60]
xorps xmm4, xmm4
movzx eax, word [edi]
movd xmm0, dword [esp + 0x64]
movss xmm2, dword [esp + 0x28]
mov ecx, dword [esp + 0x68]
cvtdq2ps xmm0, xmm0
mov word [esi], ax
movzx eax, word [edi + 2]
mov word [esi + 2], ax
movzx eax, word [edi]
add ax, word [edi - 4]
mulss xmm0, xmm2
mov edx, dword [esp + 0x70]
mov word [esi + 4], ax
movzx eax, word [edi + 2]
add ax, word [edi - 2]
movss dword [esi + 0x10], xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov word [esi + 6], ax
mulss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x44]
movss dword [esi + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x74]
addss xmm0, dword [esp + 0x48]
movss dword [esi + 0xc], xmm0
movzx eax, word [edi - 4]
add eax, ecx
mov ecx, dword [esp + 0x38]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x44]
movss dword [esi + 0x14], xmm0
movzx eax, word [edi - 2]
add eax, edx
mov edx, dword [esp + 0x30]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x74]
addss xmm0, dword [esp + 0x48]
movss dword [esi + 0x18], xmm0
mov esi, dword [esp + 0x18]
jmp 0x1002c1a9
mov dword [esp + 0x4c], 0
inc dword [esp + 0x2c]
inc edx
add dword [esp + 0x34], 0x1c
add edi, 0x10
mov dword [esp + 0x30], edx
cmp edx, dword [ecx + 4]
jl 0x1002bbd0
movss xmm5, dword [0x100afebc]
movss xmm3, dword [0x100afe7c]
add ecx, 0x18
sub dword [ebp + 0xc], 1
mov edi, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
jne 0x1002ba50
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
pop edi
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], edx
pop esi
mov esp, ebp
pop ebp
ret 0xc