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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
push esi
mov esi, ecx
mov dword [esp + 0x48], 1
push edi
xorps xmm3, xmm3
mov dword [esp + 0x20], esi
mov edi, edx
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], edi
movss xmm1, dword [eax]
comiss xmm1, xmm3
jbe 0x10032d10
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 + 0x1c]
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 + 0x20]
movd xmm0, eax
jmp 0x10032d30
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 4]
xorps xmm1, xmmword [0x100b9d40]
movzx ecx, byte [edx + eax + 0x12]
movzx eax, byte [edx + eax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
mov edx, dword [ebp + 8]
cvtdq2ps xmm0, xmm0
movzx edi, byte [edx + 0x14]
mov eax, edi
mov dword [esi + 0x1c], edi
movss xmm4, dword [0x100b9a58]
movzx ecx, byte [edx + 0x15]
movaps xmm2, xmm4
divss xmm1, xmm0
shr eax, 0x1f
mov dword [esi + 0x20], ecx
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movss dword [esp + 0x34], xmm1
addsd xmm0, qword [eax*8 + 0x100b9cd0]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
divss xmm2, xmm0
movd xmm0, ecx
movss dword [esp + 0x6c], xmm2
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100b9cd0]
mov eax, 1
cvtpd2ps xmm0, xmm0
divss xmm4, xmm0
movss dword [esp + 0x74], xmm4
test edi, edi
jne 0x10032daf
xorps xmm2, xmm2
jmp 0x10032dcc
movd xmm0, edi
sub eax, edi
cvtdq2ps xmm0, xmm0
movd xmm2, eax
mov eax, 1
cvtdq2ps xmm2, xmm2
addss xmm0, xmm0
divss xmm2, xmm0
movss dword [esp + 0x40], xmm2
test ecx, ecx
jne 0x10032ddb
xorps xmm2, xmm2
jmp 0x10032df3
movd xmm0, ecx
sub eax, ecx
cvtdq2ps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm0, xmm0
divss xmm2, xmm0
xor ecx, ecx
movss dword [esp + 0x44], xmm2
mov dword [esp + 0x48], ecx
cmp dword [edx + 0xc], ecx
jle 0x100333fe
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x38], ecx
add edi, 8
cmp dword [edi + 4], 0
je 0x100333e0
movzx eax, word [edi - 4]
mov dword [esp + 0x10], eax
test ax, ax
je 0x100333e0
movzx eax, word [edi - 2]
mov dword [esp + 0x24], eax
test ax, ax
je 0x100333e0
mov eax, dword [edx + 0x10]
add eax, dword [esp + 0x38]
mov dword [esp + 0x60], eax
mov eax, dword [edx + 8]
test eax, eax
jne 0x10032e57
mov edx, dword [edx + 4]
add edx, ecx
jmp 0x10032e5a
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c]
call fcn.1002d400
mov ecx, dword [esp + 0x10]
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 + 0x24]
sub ecx, eax
mov word [edi - 2], cx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x10], edx
movzx esi, byte [eax + edx + 0x23]
movzx eax, byte [eax + edx + 0x22]
mov edx, dword [esp + 8]
shl eax, 8
mov dword [esp + 0xc], esi
add dword [esp + 0xc], eax
mov eax, dword [ecx + 0x20]
cmp edx, dword [esp + 0xc]
jge 0x10032ed1
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 0x10032ef5
mov edx, dword [esp + 0xc]
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 + 0x10]
movzx eax, byte [edx + eax - 3]
mov esi, dword [esp + 0x20]
add cx, ax
movzx eax, cx
cwde
mov dword [esp + 0x64], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x54]
mov edx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x78]
mov ecx, dword [esp + 0x24]
push eax
lea eax, [esp + 0x74]
push eax
mov eax, dword [esi + 0x20]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov dword [esp + 4], 0
mov dword [esp], 0
addsd xmm0, qword [eax*8 + 0x100b9cd0]
mov eax, dword [esi + 0x1c]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulss xmm3, xmm1
addsd xmm0, qword [eax*8 + 0x100b9cd0]
cvtpd2ps xmm2, xmm0
mulss xmm2, xmm1
call fcn.1002fc90
mov eax, dword [esi + 0x10]
movzx ecx, word [edi + 2]
imul ecx, eax
mov dword [esp + 0x68], 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 + 0x6c], ecx
movzx ecx, word [edi - 4]
movd xmm0, eax
sub ecx, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
inc ecx
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 0x20]
sub edx, ecx
inc edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x20]
addsd xmm0, qword [eax*8 + 0x100b9cd0]
lea eax, [esp + 0x48]
push eax
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x50]
movss dword [esp + 0x48], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x100b9cd0]
mov ecx, dword [esp + 0x38]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x50]
movss dword [esp + 0x28], xmm0
call fcn.1002fba0
mov edx, dword [esp + 0x24]
add esp, 0x1c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x3c], 0
je 0x10033089
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.1002e5a0
xor ecx, ecx
add esp, 4
test eax, eax
cmovne ecx, dword [esp + 0xa8]
xor edx, edx
test eax, eax
cmovne edx, dword [esp + 0xb4]
mov dword [esp + 8], edx
jmp 0x10033102
mov ecx, eax
call fcn.1002d720
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
jns 0x100330af
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], 0
jmp 0x10033188
mov eax, dword [esp + 0x1c]
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 + 0x24], eax
mov eax, dword [esp + 0x10]
movzx ecx, byte [esi + eax + 8]
mov eax, 0x100
mov esi, dword [esp + 0x20]
cwde
movsx ecx, cx
imul ecx, eax
add dx, cx
mov ecx, dword [esp + 0x24]
movsx eax, dx
mov dword [esp + 8], eax
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm0, ecx
sub esp, 8
mulss xmm0, dword [esp + 0x34]
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.10079fc0
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [esp + 0x10]
cvtpd2ps xmm0, xmm0
mulss xmm1, dword [esp + 0x14]
cvttss2si eax, xmm0
xorps xmm0, xmm0
subss xmm0, xmm1
mov dword [esp + 0x2c], eax
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.10079fc0
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
add esp, 8
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
test ecx, ecx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
je 0x100332a0
test eax, eax
je 0x100332a0
movss xmm0, dword [esp + 0xc]
lea eax, [esp + 0x10]
minss xmm0, dword [esp + 0x2c]
movss xmm2, dword [0x100b9a0c]
mov edx, dword [esp + 0x28]
push ecx
push eax
divss xmm2, xmm0
lea eax, [esp + 0x10]
mov dword [esp + 0x18], 0
push eax
mov dword [esp + 0x14], 0
call fcn.10032360
add esp, 0xc
mov dword [esp + 0x28], eax
test eax, eax
je 0x1003329c
movss xmm0, dword [esp + 0xc]
lea ecx, [esp + 0x80]
sub esp, 8
mov edx, eax
push dword [esp + 0x44]
push dword [esp + 0x30]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp], xmm0
push dword [esp + 0x30]
push dword [esp + 0x2c]
call fcn.10031a90
mov ecx, dword [esp + 0x30]
add esp, 0x28
test ecx, ecx
je 0x10033278
mov eax, dword [0x100c6d88]
test eax, eax
je 0x10033278
dec dword [eax + 0x36c]
push ecx
call fcn.1005ad82
mov eax, dword [0x100c6d88]
add esp, 4
test eax, eax
je 0x10033290
dec dword [eax + 0x36c]
push dword [esp + 0x28]
call fcn.1005ad82
add esp, 4
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x100332b3
mov eax, dword [0x100c6d88]
test eax, eax
je 0x100332b3
dec dword [eax + 0x36c]
push ecx
call fcn.1005ad82
mov eax, dword [esi + 0x1c]
add esp, 4
cmp eax, 1
jbe 0x100332ed
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 + 0x28]
push eax
movzx eax, word [edi]
add ecx, eax
add ecx, dword [esi + 0x24]
call fcn.100327f0
add esp, 0xc
mov eax, dword [esi + 0x20]
cmp eax, 1
jbe 0x1003331e
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 + 0x2c]
add ecx, dword [eax + 0x24]
call fcn.10032a40
add esp, 0xc
mov esi, dword [esp + 0x60]
movzx eax, word [edi]
movd xmm0, dword [esp + 0x64]
movss xmm1, dword [esp + 0x34]
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, xmm1
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 + 0x40]
movss dword [esi + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x74]
addss xmm0, dword [esp + 0x44]
movss dword [esi + 0xc], xmm0
movzx eax, word [edi - 4]
add eax, ecx
mov ecx, dword [esp + 0x48]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x40]
movss dword [esi + 0x14], xmm0
movzx eax, word [edi - 2]
add eax, edx
mov edx, dword [ebp + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x74]
addss xmm0, dword [esp + 0x44]
movss dword [esi + 0x18], xmm0
mov esi, dword [esp + 0x20]
jmp 0x100333e8
mov dword [esp + 0x4c], 0
add dword [esp + 0x38], 0x1c
inc ecx
add edi, 0x10
mov dword [esp + 0x48], ecx
cmp ecx, dword [edx + 0xc]
jl 0x10032e12
mov eax, dword [esp + 0x78]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x7c]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x4c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret