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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb0
push esi
push edi
mov edi, edx
mov dword [esp + 0x44], 1
mov edx, dword [ebp + 8]
mov esi, ecx
xorps xmm1, xmm1
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
mov eax, dword [esi + 0x1c]
movss xmm2, dword [edx]
comiss xmm2, xmm1
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x74], eax
jbe 0x10036170
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 + 0x10]
movd xmm0, eax
jmp 0x10036190
mov edx, dword [edi + 0x14]
mov eax, dword [edi + 4]
xorps xmm2, xmmword [0x1012fd30]
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 xmm3, dword [0x1012f360]
divss xmm2, xmm0
movzx ecx, byte [edx + 0x15]
shr eax, 0x1f
mov dword [esi + 0x20], ecx
movd xmm0, edi
cvtdq2pd xmm0, xmm0
movss dword [esp + 0x1c], xmm2
movaps xmm2, xmm3
addsd xmm0, qword [eax*8 + 0x1012fce0]
mov eax, ecx
shr eax, 0x1f
cvtpd2ps xmm0, xmm0
divss xmm2, xmm0
movd xmm0, ecx
movss dword [esp + 0x64], xmm2
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1012fce0]
mov eax, 1
cvtpd2ps xmm0, xmm0
divss xmm3, xmm0
movss dword [esp + 0x6c], xmm3
test edi, edi
jne 0x1003620f
xorps xmm2, xmm2
jmp 0x1003622c
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 + 0x38], xmm2
test ecx, ecx
je 0x1003624e
movd xmm0, ecx
sub eax, ecx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm0
divss xmm1, xmm0
xor ecx, ecx
movss dword [esp + 0x3c], xmm1
mov dword [esp + 0x40], ecx
cmp dword [edx + 0xc], ecx
jle 0x10036835
mov edi, dword [ebp + 0x10]
add edi, 8
mov dword [esp + 0x30], ecx
xor eax, eax
nop
cmp dword [edi + 4], 0
je 0x10036815
cmp word [edi - 4], 0
je 0x10036815
cmp word [edi - 2], 0
je 0x10036815
mov eax, dword [edx + 0x10]
add eax, dword [esp + 0x30]
mov edx, dword [edx + 8]
mov dword [esp + 0x58], eax
test edx, edx
jne 0x100362ac
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
add edx, ecx
jmp 0x100362af
mov edx, dword [edx + ecx*4]
mov ecx, dword [esp + 0xc]
call fcn.10031250
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
movzx eax, word [esi + 0x14]
add word [edi], ax
add word [edi + 2], ax
sub word [edi - 4], ax
sub word [edi - 2], ax
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, esi
mov esi, dword [esp + 8]
shl eax, 8
add edx, eax
mov eax, dword [ecx + 0x20]
cmp esi, edx
jge 0x10036314
lea edx, [eax + esi*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 0x10036334
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 + 0x10]
add cx, ax
movzx eax, cx
cwde
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
mov edx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x6c]
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 + 0x1012fce0]
mov eax, dword [esi + 0x1c]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
mulss xmm3, dword [esp + 0x34]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x1012fce0]
cvtpd2ps xmm2, xmm0
mulss xmm2, dword [esp + 0x34]
call fcn.10033bf0
mov eax, dword [esi + 0x10]
movzx ecx, word [edi + 2]
imul ecx, eax
mov dword [esp + 0x60], 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 + 0x64], ecx
movzx ecx, word [edi - 4]
movd xmm0, eax
sub ecx, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
inc ecx
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 0x20]
sub edx, ecx
inc edx
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x20]
addsd xmm0, qword [eax*8 + 0x1012fce0]
lea eax, [esp + 0x44]
push eax
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x38]
movss dword [esp + 0x44], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x1012fce0]
mov ecx, dword [esp + 0x28]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x38]
movss dword [esp + 0x40], xmm0
call fcn.10033ae0
mov edx, dword [esp + 0x24]
add esp, 0x1c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x3c], 0
je 0x100364cb
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], 1
xorps xmm0, xmm0
mov dword [esp + 0x8c], 0
push ecx
mov ecx, eax
mov dword [esp + 0xb4], 0
movups xmmword [esp + 0x94], xmm0
mov dword [esp + 0xb8], 0
movups xmmword [esp + 0xa4], xmm0
call fcn.10032510
xor ecx, ecx
add esp, 4
test eax, eax
cmovne ecx, dword [esp + 0xa0]
xor edx, edx
test eax, eax
cmovne edx, dword [esp + 0xac]
jmp 0x1003654c
mov ecx, eax
call fcn.100315e0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jns 0x100364fd
movss xmm2, dword [esp + 0x28]
movss xmm3, dword [esp + 0x24]
mov dword [esp + 0x34], 0
mov dword [esp + 0x14], 0
jmp 0x100365ce
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 + 0x14], eax
mov eax, dword [esp + 0x18]
movzx ecx, byte [esi + eax + 8]
mov eax, 0x100
mov esi, dword [esp + 0x10]
movsx ecx, cx
cwde
imul ecx, eax
add dx, cx
mov ecx, dword [esp + 0x14]
movsx edx, dx
movss xmm2, dword [esp + 0x28]
xorps xmm4, xmm4
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm2
addss xmm1, xmm4
comiss xmm1, xmm4
cvttss2si ecx, xmm1
jae 0x1003657e
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1003657e
dec ecx
movss xmm3, dword [esp + 0x24]
xorps xmm1, xmm1
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x14], eax
mulss xmm0, xmm3
subss xmm1, xmm0
comiss xmm1, xmm4
cvttss2si ecx, xmm1
jae 0x100365bf
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100365bf
dec ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
test ecx, ecx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
je 0x100366d5
test eax, eax
je 0x100366d5
minss xmm3, xmm2
mov edx, dword [esp + 0x20]
movss xmm2, dword [0x1012f310]
lea eax, [esp + 0x18]
push ecx
push eax
lea eax, [esp + 0x10]
mov dword [esp + 0x20], 0
divss xmm2, xmm3
push eax
mov dword [esp + 0x14], 0
call fcn.100357e0
add esp, 0xc
mov dword [esp + 0x20], eax
test eax, eax
je 0x100366d1
movss xmm0, dword [esp + 0x24]
lea ecx, [esp + 0x78]
sub esp, 8
mov edx, eax
push dword [esp + 0x3c]
push dword [esp + 0x20]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [esp], xmm0
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.10034ec0
mov ecx, dword [esp + 0x30]
add esp, 0x28
test ecx, ecx
je 0x100366ad
mov eax, dword [0x10139e2c]
test eax, eax
je 0x100366ad
dec dword [eax + 0x370]
push ecx
call fcn.100afc40
mov eax, dword [0x10139e2c]
add esp, 4
test eax, eax
je 0x100366c5
dec dword [eax + 0x370]
push dword [esp + 0x20]
call fcn.100afc40
add esp, 4
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x100366e8
mov eax, dword [0x10139e2c]
test eax, eax
je 0x100366e8
dec dword [eax + 0x370]
push ecx
call fcn.100afc40
mov eax, dword [esi + 0x1c]
add esp, 4
cmp eax, 1
jbe 0x10036722
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 + 0x18]
push eax
movzx eax, word [edi]
add ecx, eax
add ecx, dword [esi + 0x24]
call fcn.10035c20
add esp, 0xc
mov eax, dword [esi + 0x20]
cmp eax, 1
jbe 0x10036753
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 + 0x1c]
add ecx, dword [eax + 0x24]
call fcn.10035e70
add esp, 0xc
mov esi, dword [esp + 0x58]
movzx eax, word [edi]
movd xmm0, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
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, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
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 + 0x64]
addss xmm0, dword [esp + 0x38]
movss dword [esi + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x3c]
movss dword [esi + 0xc], xmm0
movzx eax, word [edi - 4]
add eax, ecx
mov ecx, dword [esp + 0x40]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x64]
addss xmm0, dword [esp + 0x38]
movss dword [esi + 0x14], xmm0
movzx eax, word [edi - 2]
add eax, edx
mov edx, dword [ebp + 8]
movd xmm0, eax
mov eax, dword [esp + 0x30]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x6c]
addss xmm0, dword [esp + 0x3c]
movss dword [esi + 0x18], xmm0
mov esi, dword [esp + 0x10]
jmp 0x1003681d
mov dword [esp + 0x44], 0
inc ecx
add eax, 0x1c
add edi, 0x10
mov dword [esp + 0x40], ecx
mov dword [esp + 0x30], eax
cmp ecx, dword [edx + 0xc]
jl 0x10036270
mov eax, dword [esp + 0x70]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x44]
pop edi
pop esi
mov esp, ebp
pop ebp
ret