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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x1009f040]
xor eax, esp
mov dword [esp + 0x94], eax
push esi
mov esi, dword [0x100a3d98]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x1b9c]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], ecx
mov byte [eax + 0x8c], 1
mov eax, dword [esi + 0x1b9c]
mov dword [esp + 0x28], eax
cmp byte [eax + 0x8f], 0
je 0x10077b3a
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10086e3f
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x2c], edx
shr dword [esp + 0x2c], 1
and byte [esp + 0x2c], 1
jne 0x10077b71
test edx, 0x400
jne 0x10077b71
movss xmm1, dword [esi + 0x1550]
movss xmm0, dword [eax + 0x108]
minss xmm0, dword [esi + 0x1554]
movss dword [esp + 0x34], xmm1
jmp 0x10077b87
movss xmm0, dword [esi + 0x1550]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esi + 0x1554]
movss dword [esp + 0x38], xmm0
test edi, edi
jne 0x10077bb2
mov edi, ecx
cmp ecx, 0xffffffff
jae 0x10077bb2
mov cl, byte [edi]
test cl, cl
je 0x10077bae
cmp cl, 0x23
jne 0x10077ba8
cmp byte [edi + 1], cl
je 0x10077bae
inc edi
cmp edi, 0xffffffff
jb 0x10077b98
mov ecx, dword [esp + 0x44]
movss xmm1, dword [esi + 0x1930]
xorps xmm2, xmm2
cmp ecx, edi
jne 0x10077bc6
xorps xmm3, xmm3
jmp 0x10077c13
movss xmm3, dword [0x1009c7a8]
lea eax, [esp + 0x50]
push 0
push edi
push ecx
push ecx
mov ecx, dword [esi + 0x192c]
movaps xmm2, xmm1
mov dword [esp], 0xbf800000
push eax
call fcn.10057f60
movss xmm0, dword [esp + 0x50]
xorps xmm2, xmm2
addss xmm0, dword [0x1009c604]
movss xmm1, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
movss xmm0, dword [esi + 0x1554]
movss xmm7, dword [esi + 0x1930]
addss xmm0, xmm0
mov ecx, dword [esp + 0x28]
movss xmm5, dword [esp + 0x38]
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x58], xmm3
movss xmm4, dword [ecx + 0xfc]
addss xmm0, xmm7
minss xmm4, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [0x1009c678]
addss xmm0, xmm1
maxss xmm4, xmm0
test edx, 0x1000
je 0x10077c72
movss xmm6, dword [ecx + 0x210]
jmp 0x10077c7a
movss xmm6, dword [ecx + 0xd0]
cmp byte [esp + 0x2c], 0
movss xmm0, dword [ecx + 0xd4]
movss xmm1, dword [ecx + 0x218]
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x64], xmm0
addss xmm0, xmm4
movss dword [esp + 0x60], xmm6
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x68], xmm1
movss dword [esp + 0x6c], xmm0
je 0x10077d13
movss xmm1, dword [ecx + 0x3c]
mulss xmm1, dword [0x1009c5c4]
movaps xmm0, xmm1
subss xmm0, dword [0x1009c60c]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm1
subss xmm6, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x60], xmm6
addss xmm0, dword [esp + 0x38]
movss dword [esp + 0x38], xmm0
movss dword [esp + 0x68], xmm0
movss xmm0, dword [esp + 0x34]
mulss xmm0, dword [0x1009c69c]
jmp 0x10077d21
movss xmm0, dword [esp + 0x34]
mulss xmm0, dword [0x1009c678]
comiss xmm3, xmm2
movaps xmm1, xmm7
addss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movaps xmm1, xmm5
maxss xmm1, dword [ecx + 0x108]
jbe 0x10077d50
movss xmm2, dword [esp + 0x34]
mulss xmm2, dword [0x1009c678]
addss xmm2, xmm3
movss xmm0, dword [esp + 0x30]
addss xmm7, xmm2
addss xmm0, dword [ecx + 0xd0]
lea ecx, [esp + 0x50]
movss dword [esp + 0x54], xmm4
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x50]
addss xmm0, xmm1
movss dword [esp + 0x50], xmm7
movaps xmm1, xmm5
movss dword [esp + 0x4c], xmm0
call fcn.10010420
cmp byte [esp + 0x2c], 0
movaps xmm0, xmmword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
movaps xmmword [esp + 0x80], xmm0
jne 0x10077dcd
test ecx, 0x1800
jne 0x10077dcd
movss xmm0, dword [esi + 0x1560]
addss xmm7, xmm6
addss xmm0, xmm0
addss xmm0, xmm7
movss dword [esp + 0x88], xmm0
mov eax, ecx
shr eax, 8
and eax, 0xffffff01
mov dword [esp + 0x40], eax
test ecx, 0x100
je 0x10077df2
mov byte [esp + 0x18], 1
mov byte [esp + 0x17], 1
jmp 0x10077ed9
mov eax, dword [0x100a3d98]
mov dword [esp + 0x78], eax
test byte [eax + 0x1c80], 2
mov edx, dword [eax + 0x1b9c]
mov dword [esp + 0x50], edx
mov edx, dword [edx + 0x194]
je 0x10077e77
test byte [eax + 0x1c8c], 1
mov ecx, edx
je 0x10077e3c
mov al, byte [eax + 0x1c90]
mov dword [esp + 0x18], eax
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.10004aa0
mov ecx, dword [esp + 0x18]
jmp 0x10077e94
push 0xffffffffffffffff
push dword [esp + 0x24]
call fcn.100049d0
cmp eax, 0xffffffff
jne 0x10077e8b
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x50]
mov al, byte [eax + 0x1c90]
mov ecx, dword [ecx + 0x194]
mov dword [esp + 0x18], eax
movzx eax, al
push eax
push dword [esp + 0x24]
call fcn.10004aa0
mov ecx, dword [esp + 0x18]
jmp 0x10077e94
mov eax, ecx
mov ecx, edx
shr eax, 5
and eax, 1
push eax
push dword [esp + 0x24]
call fcn.100049d0
test eax, eax
setne cl
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x78]
cmp byte [edx + 0x2ee4], 0
je 0x10077ecd
test byte [esp + 0x1c], 0x10
jne 0x10077ecd
mov eax, dword [esp + 0x50]
movzx ecx, cl
mov eax, dword [eax + 0x180]
sub eax, dword [edx + 0x2f0c]
cmp eax, dword [edx + 0x2f10]
mov eax, 1
cmovl ecx, eax
mov dword [esp + 0x18], ecx
mov byte [esp + 0x17], cl
test cl, cl
je 0x10077f09
mov ecx, dword [esp + 0x1c]
cmp byte [esi + 0x1d50], 0
jne 0x10077f09
mov eax, ecx
and eax, 0x2008
cmp eax, 0x2000
jne 0x10077f09
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x184]
mov eax, dword [edx + 0x180]
bts ecx, eax
mov dword [edx + 0x184], ecx
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x80]
push 0
push 0
call fcn.10010550
mov ecx, dword [esp + 0x30]
add esp, 8
movaps xmm0, xmmword [esp + 0x60]
or dword [ecx + 0x120], 2
movups xmmword [ecx + 0x134], xmm0
test al, al
jne 0x10077f73
mov eax, dword [esp + 0x18]
test al, al
je 0x100785de
test byte [esp + 0x1c], 8
jne 0x100785de
mov ecx, dword [esp + 0x20]
call fcn.10078600
mov eax, dword [esp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.10086e3f
mov esp, ebp
pop ebp
ret
movss xmm1, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov eax, edx
subss xmm1, dword [esp + 0x30]
movss xmm2, dword [esi + 0x1578]
and eax, 4
movss xmm3, dword [esi + 0xe4]
shl eax, 0xa
mov ecx, eax
movaps xmm0, xmm1
or ecx, 0x200
cmp byte [esp + 0x40], 0
subss xmm0, xmm2
cmovne ecx, eax
comiss xmm3, xmm0
jb 0x10077fdf
movss xmm0, dword [esp + 0x34]
mulss xmm0, dword [0x1009c678]
mov byte [esp + 0x16], 1
addss xmm0, dword [esi + 0x1930]
addss xmm0, xmm1
addss xmm0, xmm2
comiss xmm0, xmm3
ja 0x10077fe4
mov byte [esp + 0x16], 0
mov eax, dword [esp + 0x28]
cmp eax, dword [esi + 0x1ba0]
mov al, byte [esp + 0x16]
jne 0x10077ff8
test al, al
jne 0x10078002
or ecx, 0x10000
test al, al
je 0x10078007
or ecx, 0x10
jmp 0x10078017
test dl, 0x40
je 0x10078014
or ecx, 0x120
jmp 0x10078017
or ecx, 0x20
push ecx
lea eax, [esp + 0x2a]
and dl, 1
push eax
lea eax, [esp + 0x2d]
mov byte [esp + 0x2f], dl
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x88]
push eax
call fcn.10065350
xor dl, dl
add esp, 0xc
cmp byte [esp + 0x40], dl
jne 0x10078187
test al, al
je 0x100780ae
mov ecx, dword [esp + 0x20]
cmp dword [esi + 0x1eb4], ecx
je 0x1007809b
mov eax, dword [esp + 0x1c]
test al, 0xc0
je 0x10078068
cmp dword [esi + 0x1d0c], ecx
jne 0x1007806a
mov dl, 1
test al, al
jns 0x10078086
cmp byte [esp + 0x16], 0
je 0x10078082
cmp byte [esi + 0x1d53], 0
jne 0x10078082
mov cl, 1
jmp 0x10078084
xor cl, cl
or dl, cl
test al, 0x40
je 0x100780ae
cmp byte [esi + 0x3dd], 0
mov ecx, dword [esp + 0x18]
je 0x100780b2
mov dl, 1
jmp 0x100780b2
mov ecx, dword [esp + 0x18]
mov eax, 1
test cl, cl
movzx edx, dl
cmove edx, eax
jmp 0x100780b2
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x1d04], eax
jne 0x1007810b
cmp byte [esi + 0x1d6c], 0
je 0x1007810b
cmp dword [esi + 0x1d7c], 0
jne 0x1007810b
test cl, cl
je 0x1007810b
mov eax, dword [0x100a3d98]
mov dl, 1
mov byte [eax + 0x1d6c], 0
cmp byte [eax + 0x1d6c], 0
jne 0x100780f9
cmp byte [eax + 0x1d55], 0
mov byte [esp + 0x16], 0
je 0x100780fd
mov byte [esp + 0x16], dl
mov cl, byte [esp + 0x16]
mov byte [eax + 0x1d54], cl
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
cmp dword [esi + 0x1d04], eax
mov eax, dword [0x100a3d98]
jne 0x10078158
cmp byte [esi + 0x1d6c], 0
je 0x10078158
cmp dword [esi + 0x1d7c], 1
jne 0x10078158
test cl, cl
jne 0x10078158
mov byte [eax + 0x1d6c], cl
test cl, cl
jne 0x1007814e
cmp byte [eax + 0x1d55], cl
jne 0x1007814e
xor dl, dl
mov byte [eax + 0x1d54], dl
jmp 0x1007815c
mov dl, 1
mov byte [eax + 0x1d54], dl
jmp 0x1007815c
test dl, dl
je 0x10078187
test cl, cl
sete al
mov byte [esp + 0x17], al
movzx eax, al
push eax
mov eax, dword [esp + 0x2c]
push dword [esp + 0x24]
mov ecx, dword [eax + 0x194]
call fcn.10004aa0
mov ecx, dword [esp + 0x28]
or dword [ecx + 0x120], 0x10
test byte [esp + 0x1c], 4
je 0x100781be
mov ecx, dword [0x100a3d98]
mov eax, dword [ecx + 0x1b9c]
mov eax, dword [eax + 0x11c]
cmp dword [ecx + 0x1bc0], eax
jne 0x100781af
mov byte [ecx + 0x1bc8], 1
cmp dword [ecx + 0x1bd4], eax
jne 0x100781be
mov byte [ecx + 0x1be1], 1
movss xmm7, dword [0x1009c60c]
xor ecx, ecx
movaps xmm1, xmm7
call fcn.10005330
cmp byte [esp + 0x2c], 0
mov edx, eax
mov dword [esp + 0x18], edx
je 0x10078405
cmp byte [esp + 0x26], 0
mov al, byte [esp + 0x25]
je 0x100781f7
test al, al
je 0x100781f7
mov ecx, 0x1a
jmp 0x10078201
xor ecx, ecx
test al, al
setne cl
add ecx, 0x18
push dword [esp + 0x6c]
movaps xmm1, xmm7
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.10005330
movss xmm2, dword [esi + 0x1558]
mov dl, 1
mov ecx, eax
call fcn.10006240
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x70]
push 2
call fcn.100065a0
mov eax, dword [esp + 0x30]
add esp, 0x14
test eax, 0x200
je 0x100782b1
movss xmm0, dword [esp + 0x30]
mulss xmm0, dword [0x1009c5cc]
mov eax, dword [esp + 0x28]
movss xmm1, dword [esp + 0x48]
push 8
push dword [esp + 0x1c]
mov ecx, dword [eax + 0x284]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mulss xmm0, dword [0x1009c5c4]
mov eax, dword [ecx + 0x2c]
movss dword [esp + 0x58], xmm1
addss xmm0, dword [esp + 0x54]
movss xmm2, dword [eax + 0xc]
lea eax, [esp + 0x58]
mulss xmm2, dword [0x1009c5a4]
push eax
movss dword [esp + 0x60], xmm0
call fcn.10054360
mov eax, dword [esp + 0x1c]
jmp 0x1007831f
cmp byte [esp + 0x40], 0
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x30]
jne 0x10078319
addss xmm0, dword [esp + 0x34]
movss xmm3, dword [0x1009c60c]
xor eax, eax
cmp byte [esp + 0x17], al
mov edx, dword [esp + 0x18]
setne al
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x54], xmm0
push dword [esp + 0x54]
lea eax, [eax*2 + 1]
push dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x284]
call fcn.10058820
mov eax, dword [esp + 0x28]
add esp, 0xc
jmp 0x1007831f
movss dword [esp + 0x48], xmm0
test eax, 0x100000
je 0x10078346
movss xmm0, dword [esi + 0x1930]
addss xmm0, dword [esi + 0x1550]
movss xmm1, dword [esp + 0x38]
subss xmm1, xmm0
movss dword [esp + 0x68], xmm1
cmp byte [esi + 0x2ee4], 0
mov ecx, dword [0x100a3d98]
mov dword [esp + 0x50], ecx
je 0x1007836d
mov dword [ecx + 0x2efc], 0x1008a768
mov dword [ecx + 0x2f00], 0x1008a768
mov edx, dword [esp + 0x44]
or eax, 0xffffffff
test edi, edi
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov esi, edx
cmove edi, eax
cmp edx, edi
jae 0x100783a9
nop
mov cl, byte [esi]
test cl, cl
je 0x100783a5
cmp cl, 0x23
jne 0x100783a0
cmp byte [esi + 1], cl
je 0x100783a5
inc esi
cmp esi, edi
jb 0x10078390
mov ecx, dword [esp + 0x50]
mov eax, esi
sub eax, edx
je 0x100785c2
mov ecx, dword [ecx + 0x1b9c]
lea eax, [esp + 0x78]
push 0
push eax
lea eax, [esp + 0x60]
mov ecx, dword [ecx + 0x284]
push eax
push esi
push edx
lea eax, [esp + 0x7c]
push eax
lea edx, [esp + 0x60]
call fcn.100058b0
mov eax, dword [esp + 0x68]
add esp, 0x18
cmp byte [eax + 0x2ee4], 0
je 0x100785c2
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x48]
push esi
call fcn.10015a60
add esp, 4
jmp 0x100785c2
mov cl, byte [esp + 0x25]
test cl, cl
jne 0x10078417
cmp byte [esp + 0x27], cl
je 0x100784ad
cmp byte [esp + 0x26], 0
je 0x1007842c
test cl, cl
je 0x1007842c
mov dword [esp + 0x50], 0x1a
jmp 0x1007843a
xor eax, eax
test cl, cl
setne al
add eax, 0x18
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
movaps xmm1, xmm7
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x78], eax
mov eax, dword [0x100a3d98]
push 0
push ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x84], edx
mov edx, dword [eax + 0x1b9c]
mov dword [esp], 0
call fcn.10005330
mov ecx, dword [edx + 0x284]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x88]
push eax
call fcn.10053d20
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x60]
push 2
call fcn.100065a0
mov edx, dword [esp + 0x1c]
add esp, 4
test dword [esp + 0x1c], 0x200
je 0x1007851a
movss xmm0, dword [esp + 0x30]
mulss xmm0, dword [0x1009c5c4]
mov eax, dword [esp + 0x28]
movss xmm1, dword [esp + 0x48]
push 8
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1930]
mov ecx, dword [eax + 0x284]
mulss xmm0, dword [0x1009c5c4]
push edx
mov eax, dword [ecx + 0x2c]
addss xmm0, dword [esp + 0x54]
movss dword [esp + 0x60], xmm1
movss xmm2, dword [eax + 0xc]
lea eax, [esp + 0x60]
mulss xmm2, dword [0x1009c5a4]
push eax
movss dword [esp + 0x68], xmm0
call fcn.10054360
jmp 0x10078588
cmp byte [esp + 0x40], 0
jne 0x10078588
movss xmm0, dword [esi + 0x1930]
xor eax, eax
movss xmm1, dword [esp + 0x48]
mulss xmm0, dword [0x1009c598]
cmp byte [esp + 0x17], al
subss xmm1, dword [esp + 0x30]
movss xmm3, dword [0x1009c5d8]
setne al
addss xmm0, dword [esp + 0x4c]
addss xmm1, dword [esp + 0x34]
lea eax, [eax*2 + 1]
movss dword [esp + 0x5c], xmm0
push dword [esp + 0x5c]
movss dword [esp + 0x5c], xmm1
push dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x284]
call fcn.10058820
add esp, 0xc
cmp byte [esi + 0x2ee4], 0
je 0x100785aa
mov eax, dword [0x100a3d98]
mov dword [eax + 0x2efc], 0x1008b2ec
mov dword [eax + 0x2f00], 0
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, edi
push dword [esp + 0x4c]
push 0
call fcn.10005780
add esp, 0xc
mov al, byte [esp + 0x17]
test al, al
je 0x100785de
test byte [esp + 0x1c], 8
jne 0x100785de
mov ecx, dword [esp + 0x20]
call fcn.10078600
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
xor ecx, esp
call fcn.10086e3f
mov esp, ebp
pop ebp
ret