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

Disassembly:
sub esp, 0x74
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
push esi
mov esi, dword [0x101c18e4]
mov ebp, esi
push edi
mov byte [esp + 0x16], dl
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 0x1bac]
mov dword [esp + 0x1c], ebp
mov byte [eax + 0xac], 1
mov edi, dword [ebp + 0x1bac]
mov dword [esp + 0x38], edi
cmp byte [edi + 0xaf], 0
jne 0x100786e2
mov eax, ebx
and eax, 2
mov dword [esp + 0x28], eax
je 0x10078332
cmp dword [edi + 0x1a4], 0
je 0x10078332
call fcn.10069d00
mov esi, dword [0x101c18e4]
mov ecx, dword [edi + 0xe4]
xor edx, edx
mov eax, dword [edi + 0xec]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x24]
call fcn.1004d340
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [esi + 0x1be0], eax
jne 0x10078362
mov dword [esi + 0x1be4], eax
cmp dword [esi + 0x1c1c], eax
jne 0x10078371
mov byte [esi + 0x1c20], 1
mov eax, dword [esp + 0x20]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x10078396
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x10078396
cmp dl, 0x23
jne 0x10078390
cmp byte [ecx + 1], dl
je 0x10078396
inc ecx
cmp ecx, 0xffffffff
jb 0x10078380
movss xmm0, dword [esi + 0x1940]
xorps xmm7, xmm7
cmp eax, ecx
jne 0x100783aa
xorps xmm1, xmm1
jmp 0x100783f3
movss xmm3, dword [0x101b8584]
movaps xmm2, xmm0
push 0
push ecx
push eax
push ecx
mov ecx, dword [esi + 0x193c]
lea eax, [esp + 0x40]
mov dword [esp], 0xbf800000
push eax
call fcn.10066520
movss xmm0, dword [esp + 0x30]
xorps xmm7, xmm7
addss xmm0, dword [0x101b8350]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x34]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov esi, dword [esp + 0x8c]
movss dword [esp + 0x44], xmm0
movss dword [esp + 0x40], xmm1
movss xmm2, dword [esi + 4]
ucomiss xmm2, xmm7
movss dword [esp + 0x2c], xmm2
lahf
test ah, 0x44
jp 0x10078423
movaps xmm2, xmm0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esi]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x10078433
movaps xmm0, xmm1
movss xmm4, dword [edi + 0xf4]
lea ecx, [esp + 0x48]
addss xmm4, dword [edi + 0x128]
movss xmm3, dword [edi + 0xf0]
movaps xmm1, xmm3
movss dword [esp + 0x48], xmm0
addss xmm1, xmm0
movss dword [esp + 0x4c], xmm2
movss dword [esp + 0x30], xmm3
movaps xmm0, xmm4
movss dword [esp + 0x24], xmm4
addss xmm0, xmm2
movss dword [esp + 0x70], xmm3
movss dword [esp + 0x74], xmm4
movss dword [esp + 0x78], xmm1
xorps xmm1, xmm1
movss dword [esp + 0x7c], xmm0
call fcn.10059500
cmp dword [esp + 0x28], 0
movss xmm3, dword [edi + 0x5c]
je 0x100784bb
mov eax, dword [0x101c18e4]
mov eax, dword [eax + 0x1bac]
movss xmm0, dword [eax + 0x258]
subss xmm0, dword [eax + 0x14]
jmp 0x100784fc
mov ecx, dword [0x101c18e4]
mov eax, dword [ecx + 0x1bac]
cmp dword [eax + 0x1a4], 0
movss xmm1, dword [eax + 0x14]
movss xmm0, dword [eax + 0x258]
subss xmm0, xmm1
movss dword [esp + 0x28], xmm0
jne 0x100784f0
cmp dword [ecx + 0x1f18], 0
je 0x10078502
movss xmm0, dword [eax + 0x228]
subss xmm0, xmm1
movss dword [esp + 0x28], xmm0
addss xmm0, dword [edi + 0x14]
movss xmm1, dword [esi + 4]
movss xmm6, dword [esp + 0x30]
ucomiss xmm1, xmm7
subss xmm0, xmm3
lahf
subss xmm0, xmm6
maxss xmm0, dword [esp + 0x40]
test ah, 0x44
jp 0x1007852f
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [esi]
mov ecx, ebx
and ecx, 0x1000000
ucomiss xmm2, xmm7
lahf
test ah, 0x44
jnp 0x1007855b
test ecx, ecx
jne 0x1007855b
movss xmm5, dword [esp + 0x24]
movaps xmm4, xmm6
addss xmm4, xmm2
addss xmm5, xmm1
jmp 0x1007857d
movss xmm5, dword [esp + 0x24]
movaps xmm4, xmm6
ucomiss xmm2, xmm7
addss xmm4, xmm0
addss xmm5, xmm1
lahf
test ah, 0x44
jnp 0x10078579
test ecx, ecx
je 0x1007857d
addss xmm4, xmm3
movss xmm2, dword [ebp + 0x1570]
movss xmm3, dword [ebp + 0x1574]
movaps xmm0, xmm2
mulss xmm0, dword [0x101b8310]
mov ebp, ebx
push ecx
lea ecx, [esp + 0x64]
push 0
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x101b8310]
movd xmm1, eax
cvttss2si eax, xmm0
cvtdq2ps xmm1, xmm1
movd xmm0, eax
subss xmm6, xmm1
subss xmm2, xmm1
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x68], xmm6
addss xmm2, xmm4
movss xmm6, dword [esp + 0x2c]
subss xmm3, xmm0
subss xmm6, xmm0
movss dword [esp + 0x70], xmm2
addss xmm3, xmm5
movss dword [esp + 0x6c], xmm6
movss dword [esp + 0x74], xmm3
and ebp, 8
je 0x10078623
mov esi, dword [edi + 0x1bc]
mov eax, esi
mov edx, dword [esp + 0x20]
or eax, 0x14
mov dword [edi + 0x1bc], eax
call fcn.10059630
mov dword [edi + 0x1bc], esi
mov esi, dword [esp + 0x20]
jmp 0x1007862e
mov esi, dword [esp + 0x20]
mov edx, esi
call fcn.10059630
add esp, 8
test al, al
jne 0x100786ec
test bl, 2
je 0x100786e2
cmp dword [edi + 0x1a4], 0
je 0x100786e2
mov eax, dword [0x101c18e4]
mov esi, dword [eax + 0x1bac]
mov edx, dword [esi + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100786e2
movups xmm0, xmmword [edx + 0x3c]
mov eax, dword [esi + 0x294]
movss xmm4, dword [edx + 0x3c]
movss xmm3, dword [edx + 0x40]
movss xmm2, dword [edx + 0x44]
movss xmm1, dword [edx + 0x48]
movups xmmword [esi + 0x240], xmm0
movss dword [esp + 0x60], xmm4
movss dword [esp + 0x64], xmm3
movss dword [esp + 0x68], xmm2
movss dword [esp + 0x6c], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [esi + 0x294]
movups xmm0, xmmword [esp + 0x60]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movups xmmword [eax + ecx*8 - 0x10], xmm0
mov eax, dword [edx + 0xc]
lea ecx, [edx + 0x68]
inc eax
push eax
push dword [esi + 0x294]
call fcn.100649c0
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret
movzx eax, byte [esp + 0x16]
mov ecx, ebx
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x10
test ebx, 0x400000
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test ebx, 0x800000
cmove ecx, edx
mov edx, ecx
or edx, 0x120
test bl, 4
cmove edx, ecx
xor ecx, ecx
test ebp, ebp
mov ebp, ebx
cmove ecx, eax
mov eax, edx
or eax, 0x1000
mov dword [esp + 0x30], ecx
and ebp, 0x10
lea ecx, [esp + 0x60]
cmove eax, edx
mov edx, esi
push eax
lea eax, [esp + 0x1b]
push eax
lea eax, [esp + 0x1d]
push eax
call fcn.1006b510
mov esi, dword [0x101c18e4]
add esp, 0xc
mov byte [esp + 0x16], al
test al, al
mov al, byte [esp + 0x15]
mov edx, ebp
mov byte [esp + 0x15], al
jne 0x1007878f
mov ecx, ebp
test al, al
je 0x1007880b
test ebx, 0x4000000
je 0x1007880b
mov edx, ebx
and edx, 0x10
mov edi, dword [esp + 0x1c]
mov ecx, ebp
cmp byte [edi + 0x1d97], 0
mov edi, dword [esp + 0x38]
jne 0x100787f4
mov ebp, dword [esp + 0x1c]
cmp dword [ebp + 0x1d44], edi
jne 0x100787f4
mov eax, dword [ebp + 0x1d8c]
mov ecx, edx
cmp eax, dword [edi + 0x13c]
jne 0x100787f0
mov byte [ebp + 0x1d96], 1
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x13c]
mov ebp, dword [esp + 0x18]
mov dword [esi + 0x1d4c], eax
mov eax, dword [esi + 0x1d44]
mov dword [esi + 0x1d48], ebp
mov dword [eax + ecx*4 + 0x33c], ebp
mov ecx, edx
mov al, byte [esp + 0x15]
cmp byte [esp + 0x16], 0
je 0x1007880b
or dword [esi + 0x1c50], 4
mov word [esi + 0x1bf0], 0x101
test ecx, ecx
je 0x10078833
mov ecx, dword [esi + 0x1c48]
cmp dword [esi + 0x1bcc], ecx
jne 0x10078824
mov byte [esi + 0x1bd4], 1
cmp dword [esi + 0x1be0], ecx
jne 0x10078833
mov byte [esi + 0x1bed], 1
mov cl, byte [esp + 0x17]
test cl, cl
je 0x1007884b
test ebx, 0x2000000
je 0x1007884b
mov al, 1
mov byte [esp + 0x15], al
jmp 0x10078859
test al, al
jne 0x10078859
cmp byte [esp + 0x30], al
je 0x100789b8
test cl, cl
je 0x10078868
test al, al
je 0x10078868
mov ebp, 0x1a
jmp 0x1007887a
xor eax, eax
cmp byte [esp + 0x15], al
setne al
add eax, 0x18
mov dword [esp + 0x38], eax
mov ebp, eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
movss xmm1, dword [0x101b8358]
push 0
push ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], ecx
mov ecx, ebp
mov dword [esp + 0x44], edx
mov edx, dword [esi + 0x1bac]
mov dword [esp + 0x40], eax
mov dword [esp], 0
call fcn.1004df70
mov ecx, dword [edx + 0x294]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10063da0
mov eax, dword [0x101c18e4]
xorps xmm0, xmm0
movss xmm3, dword [0x101b8358]
movss xmm1, dword [eax + 0x1528]
mulss xmm1, dword [0x101b8294]
comiss xmm0, xmm1
jbe 0x100788f9
xorps xmm2, xmm2
jmp 0x10078900
movaps xmm2, xmm1
minss xmm2, xmm3
movss xmm4, dword [0x101b8520]
movss xmm5, dword [0x101b8310]
mulss xmm2, xmm4
addss xmm2, xmm5
cvttss2si ecx, xmm2
shl ecx, 0x18
comiss xmm0, xmm1
jbe 0x10078929
xorps xmm1, xmm1
jmp 0x1007892d
minss xmm1, xmm3
movss xmm2, dword [eax + 0x1528]
mulss xmm2, dword [0x101b8270]
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si edx, xmm1
shl edx, 0x18
comiss xmm0, xmm2
jbe 0x10078956
xorps xmm1, xmm1
jmp 0x1007895d
movaps xmm1, xmm2
minss xmm1, xmm3
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 0x18
comiss xmm0, xmm2
ja 0x10078978
minss xmm2, xmm3
movaps xmm0, xmm2
mulss xmm0, xmm4
push ecx
mov ecx, dword [edi + 0x294]
push edx
push eax
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x18
push eax
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.10063f10
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x60]
push 0xa
call fcn.1004ef70
mov esi, dword [0x101c18e4]
add esp, 4
test bl, 2
je 0x10078ab1
cmp dword [edi + 0x1a4], 0
je 0x10078ab1
mov ebp, dword [esi + 0x1bac]
mov edx, dword [ebp + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x10078a66
movups xmm0, xmmword [edx + 0x3c]
mov eax, dword [ebp + 0x294]
movss xmm4, dword [edx + 0x3c]
movss xmm3, dword [edx + 0x40]
movss xmm2, dword [edx + 0x44]
movss xmm1, dword [edx + 0x48]
movups xmmword [ebp + 0x240], xmm0
movss dword [esp + 0x48], xmm4
movss dword [esp + 0x4c], xmm3
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x54], xmm1
movss dword [eax + 0x60], xmm4
movss dword [eax + 0x64], xmm3
movss dword [eax + 0x68], xmm2
movss dword [eax + 0x6c], xmm1
mov eax, dword [ebp + 0x294]
movups xmm0, xmmword [esp + 0x48]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movups xmmword [eax + ecx*8 - 0x10], xmm0
mov eax, dword [edx + 0xc]
lea ecx, [edx + 0x68]
inc eax
push eax
push dword [ebp + 0x294]
call fcn.100649c0
mov esi, dword [0x101c18e4]
mov eax, dword [esi + 0x1bac]
cmp dword [eax + 0x1a4], 0
movss xmm0, dword [eax + 0x14]
movss xmm1, dword [eax + 0x258]
subss xmm1, xmm0
jne 0x10078a8f
cmp dword [esi + 0x1f18], 0
je 0x10078a9b
movss xmm1, dword [eax + 0x228]
subss xmm1, xmm0
subss xmm1, dword [esp + 0x28]
movss xmm0, dword [esp + 0x68]
subss xmm0, xmm1
movss dword [esp + 0x68], xmm0
test bl, 8
je 0x10078aee
movups xmm0, xmmword [esi + 0x15ec]
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
push eax
lea ecx, [esi + 0x1cd8]
movups xmmword [esp + 0x50], xmm0
call fcn.1005fca0
mov eax, dword [esp + 0x1c]
movups xmm0, xmmword [eax + 0x15fc]
movups xmmword [esi + 0x15ec], xmm0
jmp 0x10078af2
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x60]
add eax, 0x15c4
push ecx
push eax
lea eax, [esp + 0x48]
push eax
push ecx
push dword [esp + 0x30]
lea edx, [esp + 0x8c]
lea ecx, [esp + 0x84]
call fcn.1004e6a0
add esp, 0x14
test bl, 8
mov ebx, dword [0x101c18e4]
je 0x10078b50
mov eax, dword [ebx + 0x1cd8]
mov ecx, dword [ebx + 0x1ce0]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [ebx + eax*8 + 0x15ec], xmm0
dec dword [ebx + 0x1cd8]
cmp byte [esp + 0x16], 0
je 0x10078bf4
test dword [edi + 0x10], 0x4000000
je 0x10078bf4
test byte [esp + 0x88], 1
jne 0x10078bf4
test byte [edi + 0x1bc], 0x20
jne 0x10078bf4
mov ecx, dword [ebx + 0x1d2c]
sub ecx, 1
js 0x10078bf4
cmp ecx, dword [ebx + 0x1d20]
jge 0x10078bf4
mov eax, dword [ebx + 0x1d34]
lea edx, [ecx + ecx*8]
mov esi, dword [ebx + 0x1d28]
shl edx, 2
mov eax, dword [edx + eax]
cmp eax, dword [esi + edx]
jne 0x10078bf4
test ecx, ecx
jle 0x10078bdc
lea eax, [esi - 0x20]
add eax, edx
mov esi, dword [eax + 0x24]
mov edx, dword [eax]
test esi, esi
je 0x10078bdc
test dword [esi + 0x10], 0x10000000
je 0x10078bdc
test edx, edx
je 0x10078bd4
test dword [edx + 0x10], 0x8000000
jne 0x10078bdc
dec ecx
sub eax, 0x24
test ecx, ecx
jg 0x10078bb5
mov dl, 1
call fcn.1005b010
mov eax, dword [ebx + 0x1d44]
test eax, eax
je 0x10078bf4
mov byte [eax + 0x14c], 1
mov al, byte [esp + 0x16]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret