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

Disassembly:
sub esp, 0x60
mov ecx, dword [0x103b6348]
xor edx, edx
inc edx
push edi
mov eax, dword [ecx + 0x3e48]
mov byte [eax + 0xa8], dl
mov edi, dword [ecx + 0x3e48]
mov dword [esp + 0x44], edi
cmp byte [edi + 0xab], 0
je 0x1009661b
xor al, al
jmp 0x10096e50
mov eax, dword [esp + 0x6c]
shr eax, 1
push esi
mov esi, dword [0x103b6348]
and al, dl
mov dword [esp + 0x54], esi
mov dword [esp + 0x4c], eax
jne 0x10096664
test dword [esp + 0x70], 0x400
jne 0x10096664
movss xmm0, dword [esi + 0x37d4]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [edi + 0x124]
minss xmm0, dword [esi + 0x37d8]
movss dword [esp + 0x2c], xmm0
jmp 0x10096678
mov eax, dword [esi + 0x37d4]
mov ecx, dword [esi + 0x37d8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x10096698
push eax
push dword [esp + 0x78]
call fcn.100465c4
pop ecx
pop ecx
mov dword [esp + 0x78], eax
push ecx
mov dword [esp], 0xbf800000
push 0
push eax
push dword [esp + 0x80]
lea eax, [esp + 0x40]
push eax
call fcn.1004139f
movss xmm0, dword [esi + 0x37d8]
add esp, 0x14
mov ecx, dword [esp + 0x58]
addss xmm0, xmm0
movss xmm4, dword [edi + 0x118]
xorps xmm2, xmm2
movss xmm5, dword [0x100c7ea0]
movss xmm7, dword [ecx + 4]
addss xmm0, dword [esi + 0x3bd0]
and dword [esp + 0x18], 0
test dword [esp + 0x70], 0x1000
minss xmm4, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm5
addss xmm0, dword [esp + 0x34]
maxss xmm4, xmm0
je 0x10096715
movss xmm1, dword [edi + 0x1ec]
jmp 0x1009671d
movss xmm1, dword [edi + 0xec]
cmp byte [esp + 0x4c], 0
movss xmm6, dword [0x100c7e9c]
movss dword [esp + 0x18], xmm1
movss xmm0, dword [edi + 0xf0]
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm4
movss xmm3, dword [edi + 0x1f4]
movss dword [esp + 0x20], xmm3
addss xmm0, dword [edi + 0xf0]
movss dword [esp + 0x24], xmm0
je 0x100967b1
movss xmm0, dword [edi + 0x40]
mulss xmm0, xmm6
subss xmm0, dword [0x100c7298]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [esp + 0x18], xmm1
movss xmm0, dword [edi + 0x40]
mulss xmm0, xmm6
movss xmm1, dword [ecx]
mulss xmm1, dword [0x100c7ea4]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm3
movss dword [esp + 0x20], xmm0
jmp 0x100967b9
movss xmm1, dword [ecx]
mulss xmm1, xmm5
movss xmm3, dword [esi + 0x3bd0]
movss xmm6, dword [esp + 0x30]
movaps xmm0, xmm3
comiss xmm6, xmm2
addss xmm0, xmm1
movaps xmm1, xmm7
maxss xmm1, dword [edi + 0x124]
movss dword [esp + 0x5c], xmm0
jbe 0x100967f0
movss xmm2, dword [ecx]
mulss xmm2, xmm5
addss xmm2, xmm6
addss xmm1, dword [edi + 0xf0]
addss xmm0, dword [edi + 0xec]
addss xmm3, xmm2
movss dword [esp + 0x44], xmm4
push ecx
lea eax, [esp + 0x44]
movss dword [esp], xmm7
push eax
movss dword [esp + 0x40], xmm0
movss dword [esp + 0x58], xmm3
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x48], xmm3
call fcn.1004b1f5
cmp byte [esp + 0x54], 0
lea esi, [esp + 0x20]
lea edi, [esp + 0x10]
movsd dword es:[edi], dword [esi]
pop ecx
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x54]
jne 0x10096877
test dword [esp + 0x70], 0x1800
jne 0x10096877
movss xmm0, dword [edi + 0x37e4]
movss xmm1, dword [esp + 0x50]
addss xmm0, xmm0
addss xmm1, dword [esp + 0x18]
addss xmm0, xmm1
movss dword [esp + 0x10], xmm0
mov eax, dword [esp + 0x70]
xor edx, edx
push dword [esp + 0x70]
mov esi, dword [esp + 0x70]
inc edx
shr eax, 8
and al, dl
push esi
mov dword [esp + 0x58], eax
call fcn.10096fbe
mov byte [esp + 0x6f], al
pop ecx
pop ecx
test al, al
je 0x100968d1
cmp byte [edi + 0x4804], 0
jne 0x100968d1
mov eax, dword [esp + 0x70]
and eax, 0x2008
cmp eax, 0x2000
jne 0x100968d1
mov edx, dword [esp + 0x48]
mov ecx, dword [edx + 0x178]
mov eax, dword [edx + 0x174]
bts ecx, eax
mov dword [edx + 0x178], ecx
push 0
push 0
lea eax, [esp + 0x10]
push esi
push eax
call fcn.1004af69
add esp, 0x10
lea esi, [esp + 0x18]
push 2
pop edx
or dword [edi + 0x46c4], edx
add edi, 0x46e8
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
test al, al
jne 0x1009691f
mov al, byte [esp + 0x67]
test al, al
je 0x10096e4f
test byte [esp + 0x70], 8
jne 0x10096e4f
mov edx, dword [esp + 0x6c]
push edx
jmp 0x10096e45
mov eax, dword [esp + 0x70]
movss xmm1, dword [esp + 0x38]
and eax, 4
subss xmm1, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x44], eax
neg eax
sbb eax, eax
movss xmm2, dword [esi + 0x37fc]
and eax, 0x1000
movss xmm3, dword [esi + 0xdb8]
movaps xmm0, xmm1
mov ecx, eax
subss xmm0, xmm2
or ecx, 0x200
cmp byte [esp + 0x50], 0
cmovne ecx, eax
comiss xmm3, xmm0
jb 0x1009699b
mov eax, dword [esp + 0x58]
movss xmm0, dword [eax]
mulss xmm0, dword [0x100c7ea0]
addss xmm0, dword [esi + 0x3bd0]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
jbe 0x1009699b
xor edx, edx
inc edx
mov al, dl
jmp 0x100969a0
xor edx, edx
xor al, al
inc edx
mov edi, dword [esp + 0x48]
mov byte [esp + 0x66], al
cmp edi, dword [esi + 0x3e4c]
jne 0x100969b4
test al, al
jne 0x100969be
or ecx, 0x10000
test al, al
je 0x100969c3
or ecx, 0x10
jmp 0x100969d5
test byte [esp + 0x70], 0x40
je 0x100969d2
or ecx, 0x120
jmp 0x100969d5
or ecx, 0x20
mov al, byte [esp + 0x70]
and al, dl
mov byte [esp + 0x63], al
lea eax, [esp + 0x64]
push ecx
push eax
lea eax, [esp + 0x6d]
push eax
push dword [esp + 0x78]
lea eax, [esp + 0x18]
push eax
call fcn.10084360
xor cl, cl
add esp, 0x14
cmp byte [esp + 0x50], cl
jne 0x10096af8
test al, al
je 0x10096a7b
mov eax, dword [esp + 0x6c]
cmp dword [esi + 0x49c0], eax
je 0x10096a6a
test byte [esp + 0x70], 0xc0
je 0x10096a26
cmp dword [esi + 0x47d4], eax
jne 0x10096a2d
xor edx, edx
inc edx
mov cl, dl
jmp 0x10096a30
xor edx, edx
inc edx
test byte [esp + 0x70], 0x80
je 0x10096a4f
cmp byte [esp + 0x66], 0
je 0x10096a4b
cmp byte [esi + 0x4807], 0
jne 0x10096a4b
mov al, dl
jmp 0x10096a4d
xor al, al
or cl, al
test byte [esp + 0x70], 0x40
je 0x10096a7b
push 2
pop eax
cmp word [esi + 0x3702], ax
mov al, byte [esp + 0x67]
jne 0x10096a7f
mov cl, dl
jmp 0x10096a7f
mov al, byte [esp + 0x67]
push 1
test al, al
movzx ecx, cl
pop edx
cmove ecx, edx
jmp 0x10096a7f
mov al, byte [esp + 0x67]
mov edx, dword [esp + 0x6c]
cmp dword [esi + 0x47cc], edx
jne 0x10096aa8
cmp dword [esi + 0x4830], 0
jne 0x10096aa8
test al, al
je 0x10096aa8
xor eax, eax
inc eax
mov byte [esp + 0x48], al
call fcn.1004c452
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x6c]
cmp dword [esi + 0x47cc], eax
jne 0x10096acd
xor eax, eax
inc eax
cmp dword [esi + 0x4830], eax
jne 0x10096acd
cmp byte [esp + 0x67], 0
jne 0x10096acd
call fcn.1004c452
jmp 0x10096ad1
test cl, cl
je 0x10096af8
mov al, byte [esp + 0x67]
xor ecx, ecx
inc ecx
xor al, cl
mov ecx, dword [edi + 0x188]
mov byte [esp + 0x67], al
movzx eax, al
push eax
push dword [esp + 0x70]
call fcn.10053027
or dword [esi + 0x46c4], 0x10
cmp dword [esp + 0x44], 0
je 0x10096b04
call fcn.1005307a
push ecx
mov dword [esp], 0x3f800000
push 0
call fcn.10046be9
cmp byte [esp + 0x54], 0
pop ecx
pop ecx
mov cl, byte [esp + 0x65]
mov dword [esp + 0x54], eax
je 0x10096ccc
cmp byte [esp + 0x64], 0
je 0x10096b38
test cl, cl
je 0x10096b38
push 0x1a
pop eax
jmp 0x10096b42
xor eax, eax
test cl, cl
setne al
add eax, 0x18
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.10046be9
movss xmm0, dword [esi + 0x37dc]
add esp, 4
xor ecx, ecx
inc ecx
movss dword [esp], xmm0
push ecx
push eax
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.100503fd
push 2
pop eax
push eax
push dword [esp + 0x8c]
lea eax, [esp + 0x3c]
push eax
call fcn.100508bc
movss xmm0, dword [esp + 0x60]
add esp, 0x28
test dword [esp + 0x70], 0x200
je 0x10096bf2
movss xmm1, dword [esp + 0x5c]
mulss xmm1, dword [0x100cb774]
push dword [esp + 0x54]
subss xmm0, xmm1
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esi + 0x3bd0]
mulss xmm0, dword [0x100c7e9c]
addss xmm0, dword [esp + 0x40]
movss dword [esp + 0x48], xmm0
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [edi + 0x260]
call fcn.100648e1
add esp, 0x10
jmp 0x10096c50
cmp byte [esp + 0x50], 0
subss xmm0, dword [esp + 0x5c]
jne 0x10096c4a
mov eax, dword [esp + 0x58]
push ecx
mov dword [esp], 0x3f800000
addss xmm0, dword [eax]
movzx eax, byte [esp + 0x6b]
lea eax, [eax*2 + 1]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x40]
push eax
push dword [esp + 0x5c]
movss dword [esp + 0x50], xmm0
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [edi + 0x260]
call fcn.10064672
add esp, 0x18
jmp 0x10096c50
movss dword [esp + 0x38], xmm0
test dword [esp + 0x70], 0x100000
je 0x10096c7a
movss xmm1, dword [esi + 0x37d4]
addss xmm1, dword [esi + 0x3bd0]
movss xmm0, dword [esp + 0x20]
subss xmm0, xmm1
movss dword [esp + 0x20], xmm0
cmp byte [esi + 0x5a84], 0
je 0x10096c91
mov eax, 0x100c9b48
push eax
push eax
call fcn.1004b9eb
pop ecx
pop ecx
and dword [esp + 0x28], 0
lea eax, [esp + 0x28]
and dword [esp + 0x2c], 0
push 0
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x84]
lea eax, [esp + 0x30]
push dword [esp + 0x84]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.10050b93
add esp, 0x1c
jmp 0x10096e32
test cl, cl
jne 0x10096cd6
cmp byte [esp + 0x63], cl
je 0x10096d20
cmp byte [esp + 0x64], 0
je 0x10096ce6
test cl, cl
je 0x10096ce6
push 0x1a
pop eax
jmp 0x10096cf0
xor eax, eax
test cl, cl
setne al
add eax, 0x18
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.10046be9
add esp, 4
and dword [esp], 0
push 0
push eax
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
call fcn.100503fd
add esp, 0x1c
push 2
pop eax
push eax
push dword [esp + 0x70]
lea eax, [esp + 0x20]
push eax
call fcn.100508bc
add esp, 0xc
test dword [esp + 0x70], 0x200
je 0x10096d95
movss xmm1, dword [esp + 0x5c]
mulss xmm1, dword [0x100c7e9c]
movss xmm0, dword [esp + 0x38]
push dword [esp + 0x54]
subss xmm0, xmm1
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esi + 0x3bd0]
mulss xmm0, dword [0x100c7e9c]
addss xmm0, dword [esp + 0x40]
movss dword [esp + 0x48], xmm0
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [edi + 0x260]
call fcn.100648e1
add esp, 0x10
jmp 0x10096e01
cmp byte [esp + 0x50], 0
jne 0x10096e01
movss xmm0, dword [esp + 0x38]
subss xmm0, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push ecx
mov dword [esp], 0x3f333333
addss xmm0, dword [eax]
movzx eax, byte [esp + 0x6b]
movss dword [esp + 0x44], xmm0
lea eax, [eax*2 + 1]
movss xmm0, dword [esi + 0x3bd0]
mulss xmm0, dword [0x100cb768]
push eax
push dword [esp + 0x5c]
addss xmm0, dword [esp + 0x48]
movss dword [esp + 0x50], xmm0
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [edi + 0x260]
call fcn.10064672
add esp, 0x18
cmp byte [esi + 0x5a84], 0
je 0x10096e18
push 0
push 0x100cafe0
call fcn.1004b9eb
pop ecx
pop ecx
push 0
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.10050af7
add esp, 0x14
mov al, byte [esp + 0x67]
test al, al
je 0x10096e4f
test byte [esp + 0x70], 8
jne 0x10096e4f
push dword [esp + 0x6c]
call fcn.1009719a
mov al, byte [esp + 0x6b]
pop ecx
pop esi
pop edi
add esp, 0x60
ret