Function at 0x100cd120
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 [0x1024b4a8]
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 0x100cd532
mov eax, ebx
and eax, 2
mov dword [esp + 0x28], eax
je 0x100cd182
cmp dword [edi + 0x1a4], 0
je 0x100cd182
call fcn.100beaf0
mov esi, dword [0x1024b4a8]
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.100a21a0
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [esi + 0x1be0], eax
jne 0x100cd1b2
mov dword [esi + 0x1be4], eax
cmp dword [esi + 0x1c1c], eax
jne 0x100cd1c1
mov byte [esi + 0x1c20], 1
mov eax, dword [esp + 0x20]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x100cd1e6
nop dword [eax]
mov dl, byte [ecx]
test dl, dl
je 0x100cd1e6
cmp dl, 0x23
jne 0x100cd1e0
cmp byte [ecx + 1], dl
je 0x100cd1e6
inc ecx
cmp ecx, 0xffffffff
jb 0x100cd1d0
movss xmm0, dword [esi + 0x1940]
xorps xmm7, xmm7
cmp eax, ecx
jne 0x100cd1fa
xorps xmm1, xmm1
jmp 0x100cd243
movss xmm3, dword [0x102408ec]
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.100bb310
movss xmm0, dword [esp + 0x30]
xorps xmm7, xmm7
addss xmm0, dword [0x10240660]
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 0x100cd273
movaps xmm2, xmm0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esi]
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jp 0x100cd283
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.100ae340
cmp dword [esp + 0x28], 0
movss xmm3, dword [edi + 0x5c]
je 0x100cd30b
mov eax, dword [0x1024b4a8]
mov eax, dword [eax + 0x1bac]
movss xmm0, dword [eax + 0x258]
subss xmm0, dword [eax + 0x14]
jmp 0x100cd34c
mov ecx, dword [0x1024b4a8]
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 0x100cd340
cmp dword [ecx + 0x1f18], 0
je 0x100cd352
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 0x100cd37f
movss xmm1, dword [esp + 0x2c]
movss xmm2, dword [esi]
mov ecx, ebx
and ecx, 0x1000000
ucomiss xmm2, xmm7
lahf
test ah, 0x44
jnp 0x100cd3ab
test ecx, ecx
jne 0x100cd3ab
movss xmm5, dword [esp + 0x24]
movaps xmm4, xmm6
addss xmm4, xmm2
addss xmm5, xmm1
jmp 0x100cd3cd
movss xmm5, dword [esp + 0x24]
movaps xmm4, xmm6
ucomiss xmm2, xmm7
addss xmm4, xmm0
addss xmm5, xmm1
lahf
test ah, 0x44
jnp 0x100cd3c9
test ecx, ecx
je 0x100cd3cd
addss xmm4, xmm3
movss xmm2, dword [ebp + 0x1570]
movss xmm3, dword [ebp + 0x1574]
movaps xmm0, xmm2
mulss xmm0, dword [0x10240604]
mov ebp, ebx
push ecx
lea ecx, [esp + 0x64]
push 0
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x10240604]
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 0x100cd473
mov esi, dword [edi + 0x1bc]
mov eax, esi
mov edx, dword [esp + 0x20]
or eax, 0x14
mov dword [edi + 0x1bc], eax
call fcn.100ae470
mov dword [edi + 0x1bc], esi
mov esi, dword [esp + 0x20]
jmp 0x100cd47e
mov esi, dword [esp + 0x20]
mov edx, esi
call fcn.100ae470
add esp, 8
test al, al
jne 0x100cd53c
test bl, 2
je 0x100cd532
cmp dword [edi + 0x1a4], 0
je 0x100cd532
mov eax, dword [0x1024b4a8]
mov esi, dword [eax + 0x1bac]
mov edx, dword [esi + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100cd532
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.100b97b0
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.100c0300
mov esi, dword [0x1024b4a8]
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 0x100cd5df
mov ecx, ebp
test al, al
je 0x100cd65b
test ebx, 0x4000000
je 0x100cd65b
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 0x100cd644
mov ebp, dword [esp + 0x1c]
cmp dword [ebp + 0x1d44], edi
jne 0x100cd644
mov eax, dword [ebp + 0x1d8c]
mov ecx, edx
cmp eax, dword [edi + 0x13c]
jne 0x100cd640
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 0x100cd65b
or dword [esi + 0x1c50], 4
mov word [esi + 0x1bf0], 0x101
test ecx, ecx
je 0x100cd683
mov ecx, dword [esi + 0x1c48]
cmp dword [esi + 0x1bcc], ecx
jne 0x100cd674
mov byte [esi + 0x1bd4], 1
cmp dword [esi + 0x1be0], ecx
jne 0x100cd683
mov byte [esi + 0x1bed], 1
mov cl, byte [esp + 0x17]
test cl, cl
je 0x100cd69b
test ebx, 0x2000000
je 0x100cd69b
mov al, 1
mov byte [esp + 0x15], al
jmp 0x100cd6a9
test al, al
jne 0x100cd6a9
cmp byte [esp + 0x30], al
je 0x100cd808
test cl, cl
je 0x100cd6b8
test al, al
je 0x100cd6b8
mov ebp, 0x1a
jmp 0x100cd6ca
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 [0x10240668]
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.100a2dd0
mov ecx, dword [edx + 0x294]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.100b8c80
mov eax, dword [0x1024b4a8]
xorps xmm0, xmm0
movss xmm3, dword [0x10240668]
movss xmm1, dword [eax + 0x1528]
mulss xmm1, dword [0x1024058c]
comiss xmm0, xmm1
jbe 0x100cd749
xorps xmm2, xmm2
jmp 0x100cd750
movaps xmm2, xmm1
minss xmm2, xmm3
movss xmm4, dword [0x10240880]
movss xmm5, dword [0x10240604]
mulss xmm2, xmm4
addss xmm2, xmm5
cvttss2si ecx, xmm2
shl ecx, 0x18
comiss xmm0, xmm1
jbe 0x100cd779
xorps xmm1, xmm1
jmp 0x100cd77d
minss xmm1, xmm3
movss xmm2, dword [eax + 0x1528]
mulss xmm2, dword [0x10240568]
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si edx, xmm1
shl edx, 0x18
comiss xmm0, xmm2
jbe 0x100cd7a6
xorps xmm1, xmm1
jmp 0x100cd7ad
movaps xmm1, xmm2
minss xmm1, xmm3
mulss xmm1, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
shl eax, 0x18
comiss xmm0, xmm2
ja 0x100cd7c8
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.100b8df0
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x60]
push 0xa
call fcn.100a3dd0
mov esi, dword [0x1024b4a8]
add esp, 4
test bl, 2
je 0x100cd901
cmp dword [edi + 0x1a4], 0
je 0x100cd901
mov ebp, dword [esi + 0x1bac]
mov edx, dword [ebp + 0x1a4]
cmp dword [edx + 0x10], 1
je 0x100cd8b6
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.100b97b0
mov esi, dword [0x1024b4a8]
mov eax, dword [esi + 0x1bac]
cmp dword [eax + 0x1a4], 0
movss xmm0, dword [eax + 0x14]
movss xmm1, dword [eax + 0x258]
subss xmm1, xmm0
jne 0x100cd8df
cmp dword [esi + 0x1f18], 0
je 0x100cd8eb
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 0x100cd93e
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.100b4ae0
mov eax, dword [esp + 0x1c]
movups xmm0, xmmword [eax + 0x15fc]
movups xmmword [esi + 0x15ec], xmm0
jmp 0x100cd942
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.100a3500
add esp, 0x14
test bl, 8
mov ebx, dword [0x1024b4a8]
je 0x100cd9a0
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 0x100cda44
test dword [edi + 0x10], 0x4000000
je 0x100cda44
test byte [esp + 0x88], 1
jne 0x100cda44
test byte [edi + 0x1bc], 0x20
jne 0x100cda44
mov ecx, dword [ebx + 0x1d2c]
sub ecx, 1
js 0x100cda44
cmp ecx, dword [ebx + 0x1d20]
jge 0x100cda44
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 0x100cda44
test ecx, ecx
jle 0x100cda2c
lea eax, [esi - 0x20]
add eax, edx
mov esi, dword [eax + 0x24]
mov edx, dword [eax]
test esi, esi
je 0x100cda2c
test dword [esi + 0x10], 0x10000000
je 0x100cda2c
test edx, edx
je 0x100cda24
test dword [edx + 0x10], 0x8000000
jne 0x100cda2c
dec ecx
sub eax, 0x24
test ecx, ecx
jg 0x100cda05
mov dl, 1
call fcn.100afe50
mov eax, dword [ebx + 0x1d44]
test eax, eax
je 0x100cda44
mov byte [eax + 0x14c], 1
mov al, byte [esp + 0x16]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret