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

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [0x4ca4e8]
mov al, dl
mov byte [esp + 7], al
mov byte [esp + 8], al
push ebp
mov eax, dword [ebx + 0x12bc]
push esi
mov esi, ecx
push edi
mov byte [eax + 0xbc], 1
mov ebp, dword [ebx + 0x12bc]
mov dword [esp + 0x34], esi
cmp byte [ebp + 0xbf], 0
jne 0x4520e4
push ecx
push esi
mov ecx, ebp
call fcn.0042e5f4
push ecx
mov dword [esp], 0xbf800000
lea ecx, [esp + 0x44]
mov edi, eax
mov edx, esi
push 1
push 0
mov dword [esp + 0x38], edi
call fcn.004283d8
mov esi, dword [esp + 0x90]
add esp, 0xc
xorps xmm1, xmm1
movss xmm0, dword [esi + 4]
ucomiss xmm0, xmm1
movss dword [esp + 0x20], xmm0
lahf
test ah, 0x44
jp 0x451a78
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x20], xmm0
movss xmm7, dword [esi]
ucomiss xmm7, xmm1
lahf
test ah, 0x44
jp 0x451a8b
movss xmm7, dword [esp + 0x40]
movss dword [esp + 0x3c], xmm0
lea ecx, [esp + 0x38]
movss xmm0, dword [ebp + 0x100]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [ebp + 0x104]
addss xmm0, dword [ebp + 0x138]
movss dword [esp + 0x38], xmm7
movss dword [esp + 0x28], xmm0
call fcn.00431811
mov ecx, dword [esp + 0x80]
mov edx, ecx
movss xmm2, dword [esp + 0x24]
shr edx, 1
and dl, 1
mov dword [esp + 0x30], edx
je 0x451af0
movss xmm5, dword [ebp + 0x214]
movss xmm1, dword [ebp + 0x21c]
jmp 0x451afb
movss xmm1, dword [ebp + 0x20c]
movaps xmm5, xmm2
movss xmm0, dword [esi]
ucomiss xmm0, dword [0x4b6348]
lahf
test ah, 0x44
jnp 0x451b14
test ecx, 0x1000000
je 0x451b22
movss xmm7, dword [esp + 0x40]
subss xmm1, xmm5
maxss xmm7, xmm1
movss xmm0, dword [esp + 0x28]
addss xmm7, xmm5
movss dword [esp + 0x50], xmm2
movaps xmm6, xmm0
movss dword [esp + 0x54], xmm0
movss dword [esp + 0x58], xmm5
movss dword [esp + 0x5c], xmm0
movss dword [esp + 0x48], xmm7
movss dword [esp + 0x60], xmm7
addss xmm6, dword [esp + 0x20]
movss dword [esp + 0x4c], xmm6
movss dword [esp + 0x64], xmm6
test ecx, 0x4000000
jne 0x451be8
test dl, dl
je 0x451b76
xorps xmm4, xmm4
jmp 0x451b7e
movss xmm4, dword [ebx + 0xbd0]
movss xmm3, dword [ebx + 0xbd4]
movaps xmm0, xmm4
mulss xmm0, dword [0x4b63bc]
movss xmm1, dword [esp + 0x28]
cvttss2si eax, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [0x4b63bc]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
subss xmm4, xmm2
subss xmm3, xmm0
subss xmm5, xmm2
subss xmm1, xmm0
addss xmm4, xmm7
addss xmm3, xmm6
movss dword [esp + 0x58], xmm5
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x60], xmm4
movss dword [esp + 0x64], xmm3
mov eax, ecx
shr eax, 3
and eax, 0xffffff01
movzx ecx, al
shl ecx, 0xa
test dl, dl
push ecx
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x5c]
push 0
mov edx, edi
je 0x451c68
movss xmm0, dword [ebp + 0x224]
mov eax, dword [ebp + 0x214]
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [ebp + 0x22c]
mov dword [ebp + 0x224], eax
mov eax, dword [ebp + 0x21c]
movss dword [esp + 0x28], xmm0
mov dword [ebp + 0x22c], eax
call fcn.00431631
movss xmm0, dword [esp + 0x2c]
pop ecx
pop ecx
movss dword [ebp + 0x224], xmm0
mov cl, al
movss xmm0, dword [esp + 0x20]
mov byte [esp + 0x1b], cl
movss dword [ebp + 0x22c], xmm0
jmp 0x451c75
call fcn.00431631
pop ecx
pop ecx
mov cl, al
mov byte [esp + 0x1b], al
mov eax, dword [ebx + 0x1c5c]
shr eax, 0x16
and eax, 0xffffff01
mov dword [esp + 0x24], eax
test cl, cl
jne 0x451ceb
test al, al
je 0x4520e4
cmp byte [ebx + 0x20fc], cl
je 0x4520e4
movss xmm0, dword [ebx + 0x210c]
comiss xmm0, dword [esp + 0x5c]
jbe 0x4520e4
movss xmm0, dword [esp + 0x64]
comiss xmm0, dword [ebx + 0x2104]
jbe 0x4520e4
movss xmm0, dword [ebx + 0x2108]
comiss xmm0, dword [esp + 0x58]
jbe 0x4520e4
movss xmm0, dword [esp + 0x60]
comiss xmm0, dword [ebx + 0x2100]
jbe 0x4520e4
mov eax, dword [ebx + 0x1c18]
shr eax, 0xa
and eax, 0xffffff01
cmp byte [esp + 0x28], 0
mov dword [esp + 0x38], eax
je 0x451d0f
test al, al
jne 0x451d0f
mov cl, 1
call fcn.0042dd17
cmp byte [esp + 0x30], 0
je 0x451d52
cmp dword [ebx + 0x2044], 0
je 0x451d26
call fcn.0044ba8f
jmp 0x451d34
cmp dword [ebp + 0x1a0], 0
je 0x451d34
call fcn.0044de00
or dword [ebx + 0x1c60], 0x200
lea esi, [ebp + 0x224]
lea edi, [ebx + 0x1c94]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x80]
xor eax, eax
mov esi, 0x100000
mov dword [esp + 0x20], eax
xor ecx, ecx
test esi, edx
je 0x451d75
mov eax, 0x20000
mov dword [esp + 0x20], eax
mov ecx, eax
test edx, 0x8000000
je 0x451d87
mov eax, ecx
or eax, esi
mov dword [esp + 0x20], eax
mov ecx, eax
test edx, 0x400000
je 0x451d9a
mov eax, ecx
or eax, 0x10
mov dword [esp + 0x20], eax
mov ecx, eax
test edx, 0x800000
je 0x451daf
mov eax, ecx
or eax, 0x80
mov dword [esp + 0x20], eax
mov ecx, eax
test dl, 4
je 0x451dbf
mov eax, ecx
or eax, 0x120
mov dword [esp + 0x20], eax
test dl, 0x10
jne 0x451dd0
test dword [ebx + 0x1c5c], 0x4000
je 0x451dd9
or eax, 0x1000
mov dword [esp + 0x20], eax
cmp byte [esp + 0x24], 0
mov dl, byte [esp + 0x13]
mov byte [esp + 0x1e], dl
je 0x451e05
lea eax, [esp + 0x20]
mov ecx, edi
push eax
lea edx, [esp + 0x18]
call fcn.00452b3d
mov dl, byte [esp + 0x18]
mov eax, dword [esp + 0x24]
pop ecx
mov byte [esp + 0x13], dl
push eax
lea eax, [esp + 0x23]
mov edx, edi
push eax
lea eax, [esp + 0x25]
push eax
lea ecx, [esp + 0x64]
call fcn.0044e9f8
mov cl, al
add esp, 0xc
cmp byte [esp + 0x24], 0
mov byte [esp + 0x12], cl
mov byte [esp + 0x1c], cl
je 0x451e4e
lea eax, [esp + 0x1c]
mov ecx, edi
push eax
lea edx, [esp + 0x18]
call fcn.00452cd4
mov al, byte [esp + 0x18]
pop ecx
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x13], al
jmp 0x451e7f
test dword [esp + 0x80], 0x200000
je 0x451e83
mov edx, dword [ebx + 0x1f4c]
test edx, edx
je 0x451e83
mov eax, dword [ebx + 0x1f50]
cmp eax, dword [ebx + 0x1c14]
jne 0x451e83
cmp edx, edi
jne 0x451e83
mov cl, 1
mov dl, cl
mov byte [esp + 0x13], dl
mov byte [esp + 0x12], cl
test cl, cl
jne 0x451ea2
cmp byte [esp + 0x1d], cl
je 0x451f49
test dword [esp + 0x80], 0x2000000
je 0x451f49
cmp byte [ebx + 0x1d91], 0
jne 0x451f3e
cmp dword [ebx + 0x1d98], ebp
jne 0x451f3e
mov edx, dword [ebp + 0x158]
cmp dword [ebx + 0x1da0], edx
jne 0x451f3e
movss xmm1, dword [ebp + 0x110]
lea eax, [esp + 0x68]
movss xmm0, dword [esp + 0x58]
mov ecx, edi
movss xmm2, dword [ebp + 0x114]
subss xmm0, xmm1
push eax
push dword [ebx + 0x1c14]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x64]
subss xmm0, xmm2
movss dword [esp + 0x74], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, xmm1
movss dword [esp + 0x78], xmm0
movss xmm0, dword [esp + 0x6c]
subss xmm0, xmm2
movss dword [esp + 0x7c], xmm0
call fcn.00433554
cmp byte [ebx + 0x49], 0
pop ecx
pop ecx
mov cl, byte [esp + 0x12]
je 0x451f3e
mov byte [ebx + 0x1d90], 0
test cl, cl
je 0x451f49
mov ecx, edi
call fcn.00426051
mov dl, byte [esp + 0x13]
cmp dl, byte [esp + 0x1e]
je 0x451f5a
or dword [ebx + 0x1c60], 8
cmp byte [esp + 0x1b], 0
je 0x452051
cmp byte [esp + 0x1d], 0
jne 0x451f84
test byte [esp + 0x80], 0x20
jne 0x451f84
xor al, al
xor ecx, ecx
test dl, dl
je 0x45202e
jmp 0x451f89
xor ecx, ecx
mov al, 1
inc ecx
test dl, dl
je 0x451fc1
test al, al
jne 0x451fc1
mov eax, dword [0x4ca4e8]
lea ecx, [esp + 0x68]
movups xmm0, xmmword [eax + 0xdf4]
movups xmm1, xmmword [eax + 0xe04]
subps xmm1, xmm0
mulps xmm1, xmmword [0x4b6750]
addps xmm1, xmm0
movups xmmword [esp + 0x68], xmm1
call fcn.00422e9f
jmp 0x45200f
cmp byte [esp + 0x1f], 0
je 0x451fd3
test al, al
je 0x451fd3
mov ecx, 0x290
jmp 0x451fd9
add ecx, 0x27
shl ecx, 4
mov eax, dword [0x4ca4e8]
lea edi, [esp + 0x68]
lea esi, [eax + 0xb84]
add esi, ecx
lea ecx, [esp + 0x68]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movss xmm0, dword [esp + 0x74]
mulss xmm0, dword [eax + 0xb84]
movss dword [esp + 0x74], xmm0
call fcn.00422ad9
mov edi, dword [esp + 0x2c]
push dword [esp + 0x64]
xorps xmm2, xmm2
xor dl, dl
push dword [esp + 0x64]
mov ecx, eax
push dword [esp + 0x64]
push dword [esp + 0x64]
call fcn.004239f4
add esp, 0x10
cmp dword [ebx + 0x1d94], edi
jne 0x452051
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x58]
movzx eax, al
mov edx, edi
lea eax, [eax*4 + 0xa]
push eax
call fcn.00423c79
pop ecx
cmp byte [esp + 0x30], 0
je 0x452076
cmp dword [ebx + 0x2044], 0
je 0x452068
call fcn.0044bae1
jmp 0x452076
cmp dword [ebp + 0x1a0], 0
je 0x452076
call fcn.0044de49
cmp byte [esp + 0x1b], 0
je 0x4520a3
lea eax, [esp + 0x58]
push eax
lea eax, [ebx + 0xc38]
push eax
lea eax, [esp + 0x48]
push eax
push ecx
push dword [esp + 0x44]
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x64]
call fcn.00423660
add esp, 0x14
cmp byte [esp + 0x12], 0
je 0x4520cb
test dword [ebp + 0xc], 0x4000000
je 0x4520cb
test byte [esp + 0x80], 1
jne 0x4520cb
test byte [ebx + 0x1c5c], 0x10
je 0x4520cb
call fcn.00432c3d
cmp byte [esp + 0x28], 0
je 0x4520de
cmp byte [esp + 0x38], 0
jne 0x4520de
call fcn.0042dd74
mov al, byte [esp + 0x12]
jmp 0x4520e6
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret