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

Disassembly:
mov ecx, dword [0x53151c]
sub esp, 0x54
mov eax, dword [ecx + 0x19b0]
push ebx
push ebp
push esi
mov byte [eax + 0x7c], 1
push edi
mov edi, dword [ecx + 0x19b0]
cmp byte [edi + 0x7f], 0
jne 0x456ebc
mov ebp, dword [esp + 0x70]
mov ebx, dword [0x53151c]
and ebp, 2
je 0x456c64
cmp dword [edi + 0x1c0], 0
je 0x456c64
call fcn.00455930
push 0
push dword [esp + 0x6c]
mov ecx, edi
call fcn.00420b80
push ecx
mov dword [esp], 0xbf800000
mov esi, eax
push 1
push 0
push dword [esp + 0x74]
lea eax, [esp + 0x3c]
mov dword [esp + 0x24], esi
push eax
call fcn.0041d6d0
mov ecx, dword [esp + 0x88]
add esp, 0x14
xorps xmm0, xmm0
movss xmm3, dword [ecx + 4]
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x456cb2
movss xmm3, dword [esp + 0x30]
movss xmm2, dword [ecx]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x456cc5
movss xmm2, dword [esp + 0x2c]
movss dword [esp + 0x34], xmm2
lea eax, [esp + 0x34]
movss dword [esp + 0x38], xmm3
movss xmm5, dword [edi + 0xf8]
addss xmm5, dword [edi + 0xcc]
movss xmm4, dword [edi + 0xc8]
movaps xmm1, xmm4
movss dword [esp + 0x20], xmm4
addss xmm1, xmm2
movss dword [esp + 0x54], xmm4
push ecx
movaps xmm0, xmm5
mov dword [esp], 0
addss xmm0, xmm3
movss dword [esp + 0x1c], xmm5
push eax
movss dword [esp + 0x60], xmm5
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x68], xmm0
call fcn.00423ad0
movss xmm0, dword [edi + 0x34]
add esp, 8
movss dword [esp + 0x1c], xmm0
test ebp, ebp
je 0x456d4b
lea eax, [esp + 0x24]
push eax
call fcn.004217e0
jmp 0x456d55
lea eax, [esp + 0x3c]
push eax
call fcn.004208e0
movss xmm1, dword [eax]
add esp, 4
movss xmm0, dword [edi + 0xc]
movss xmm4, dword [esp + 0x1c]
addss xmm0, xmm1
movss xmm6, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [esp + 0x2c]
subss xmm0, xmm4
movss xmm3, dword [ecx + 4]
subss xmm0, xmm6
maxss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jp 0x456da4
movss xmm3, dword [esp + 0x38]
movss xmm2, dword [ecx]
mov ecx, dword [esp + 0x70]
mov edx, ecx
and edx, 0x800000
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x456dc4
test edx, edx
jne 0x456dc4
movaps xmm1, xmm2
movss xmm7, dword [esp + 0x18]
movaps xmm5, xmm6
ucomiss xmm2, xmm0
addss xmm5, xmm1
addss xmm7, xmm3
lahf
movss dword [esp + 0x4c], xmm5
test ah, 0x44
jnp 0x456de8
test edx, edx
je 0x456df2
addss xmm5, xmm4
movss dword [esp + 0x4c], xmm5
movss xmm3, dword [ebx + 0x1558]
movss xmm4, dword [ebx + 0x155c]
movaps xmm0, xmm3
mulss xmm0, dword [0x48fc20]
push 0
movss xmm1, dword [esp + 0x1c]
cvttss2si eax, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [0x48fc20]
movd xmm2, eax
cvttss2si eax, xmm0
cvtdq2ps xmm2, xmm2
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
and eax, 8
mov dword [esp + 0x1c], eax
subss xmm3, xmm2
subss xmm4, xmm0
subss xmm6, xmm2
subss xmm1, xmm0
addss xmm3, xmm5
addss xmm4, xmm7
movss dword [esp + 0x48], xmm6
movss dword [esp + 0x4c], xmm1
movss dword [esp + 0x50], xmm3
movss dword [esp + 0x54], xmm4
je 0x456e98
mov esi, dword [edi + 0x16c]
mov eax, esi
push dword [esp + 0x18]
or eax, 0x14
mov dword [edi + 0x16c], eax
lea eax, [esp + 0x4c]
push eax
call fcn.00423720
mov dword [edi + 0x16c], esi
jmp 0x456ea3
lea eax, [esp + 0x48]
push esi
push eax
call fcn.00423720
add esp, 0xc
test al, al
jne 0x456ec6
test ebp, ebp
je 0x456ebc
cmp dword [edi + 0x1c0], 0
je 0x456ebc
call fcn.004555b0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x54
ret
mov eax, dword [esp + 0x70]
mov ecx, eax
mov esi, dword [esp + 0x70]
shr ecx, 9
and ecx, 0x800
mov edx, ecx
or edx, 4
and eax, 0x200000
mov eax, esi
cmove edx, ecx
mov ecx, edx
or ecx, 8
and eax, 0x400000
mov eax, esi
cmove ecx, edx
mov edx, ecx
or edx, 0x100
cmp dword [esp + 0x18], 0
cmove edx, ecx
mov ecx, edx
or ecx, 0x12
and al, 4
movzx eax, byte [esp + 0x6c]
cmove ecx, edx
mov edx, esi
and edx, 0x10
cmp dword [esp + 0x18], 0
mov dword [esp + 0x1c], edx
mov edx, 0
cmove edx, eax
mov eax, ecx
or eax, 0x40
mov dword [esp + 0x20], edx
cmp dword [esp + 0x1c], 0
cmove eax, ecx
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x1a]
push eax
push dword [esp + 0x20]
lea eax, [esp + 0x54]
push eax
call fcn.00448e40
mov cl, al
add esp, 0x14
mov byte [esp + 0x11], cl
test cl, cl
mov cl, byte [esp + 0x12]
mov byte [esp + 0x12], cl
jne 0x456f77
test cl, cl
je 0x456fc2
test esi, 0x2000000
je 0x456fc2
cmp byte [ebx + 0x1b33], 0
jne 0x456faf
cmp dword [ebx + 0x1ad0], edi
jne 0x456faf
mov eax, dword [ebx + 0x1b28]
cmp eax, dword [edi + 0x130]
jne 0x456faf
mov byte [ebx + 0x1b32], 1
push dword [edi + 0x130]
push dword [esp + 0x18]
call fcn.0042db50
add esp, 8
cmp byte [esp + 0x11], 0
je 0x456fc2
push dword [esp + 0x14]
call fcn.00424500
add esp, 4
cmp dword [esp + 0x1c], 0
je 0x456fce
call fcn.0042d960
mov al, byte [esp + 0x13]
test al, al
je 0x456fe2
test esi, 0x1000000
je 0x456fe2
mov cl, 1
jmp 0x456ff0
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x456ff0
cmp byte [esp + 0x20], cl
je 0x45704c
test al, al
je 0x456fff
test cl, cl
je 0x456fff
mov eax, 0x1a
jmp 0x457009
xor eax, eax
test cl, cl
setne al
add eax, 0x18
push ecx
mov dword [esp], 0x3f800000
push eax
call fcn.004207e0
add esp, 4
mov dword [esp], 0
push 0
push eax
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call fcn.0042ad10
push 0xa
push dword [esp + 0x34]
lea eax, [esp + 0x68]
push eax
call fcn.0042afc0
add esp, 0x28
test ebp, ebp
je 0x457085
cmp dword [edi + 0x1c0], 0
je 0x457085
call fcn.004555b0
lea eax, [esp + 0x3c]
push eax
call fcn.004208e0
movss xmm0, dword [esp + 0x50]
add esp, 4
movss xmm1, dword [eax]
subss xmm1, dword [esp + 0x24]
subss xmm0, xmm1
movss dword [esp + 0x4c], xmm0
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x45709e
lea eax, [ebx + 0x15d0]
push eax
push 0
call fcn.0042a3f0
add esp, 8
lea eax, [esp + 0x44]
push eax
lea eax, [ebx + 0x159c]
push eax
lea eax, [esp + 0x34]
push eax
push 0
push dword [esp + 0x78]
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.0042b330
add esp, 0x1c
test ebp, ebp
je 0x4570d5
push 1
call fcn.00429d30
add esp, 4
mov bl, byte [esp + 0x11]
test bl, bl
je 0x4570fb
test dword [edi + 8], 0x4000000
je 0x4570fb
test byte [esp + 0x70], 1
jne 0x4570fb
test byte [edi + 0x16c], 0x20
jne 0x4570fb
call fcn.0041e120
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x54
ret