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

Disassembly:
sub esp, 0x88
push ebx
push ebp
call fcn.0044bf50
mov ebx, eax
call fcn.0044bf50
mov ebp, eax
mov edx, dword [ebp + 0x9af0]
mov eax, dword [0x705898]
mov ecx, dword [eax + 0x3c4]
add ebp, 0x14f0
cmp edx, 3
mov dword [esp + 0x38], ebp
je 0x4573f0
push esi
mov esi, ecx
shl esi, 4
add esi, ecx
mov eax, ecx
shl eax, 5
add esi, esi
add eax, 0x8e89b0
and eax, 0xfffffff
add esi, esi
sub esi, ecx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x860c]
mov ecx, dword [ebx + eax*4 + 0xfe00]
mov eax, dword [ebx + eax*4 + 0xfe10]
shl esi, 8
add esi, ebp
test edx, edx
push edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jne 0x457005
mov ecx, dword [ebp + 0x8604]
push 0x10
push ecx
push 0x1a0
push edx
call fcn.00449ca0
mov edx, dword [ebp + 0x8604]
push 0x10
push edx
push 0
push 0x80
mov edi, eax
call fcn.00449ca0
add esp, 0x20
mov dword [esp + 0x10], eax
jmp 0x45700f
xor edi, edi
mov dword [esp + 0x10], 0x80
push 0x10
push 0x40
push 0x80
mov eax, 0x1a0
sub eax, edi
push eax
push 0x32
push 0x108
add edi, 0xe0
lea ecx, [esi + 0x10]
push edi
push ecx
call fcn.00522050
mov eax, dword [esp + 0x34]
mov edx, eax
shl edx, 4
sub edx, eax
shl edx, 5
lea edi, [edx + ebx]
lea eax, [edi + 0xaf28]
push 0
push eax
mov dword [esp + 0x54], eax
call fcn.005282d0
mov dword [esi + 0x7b8], eax
mov al, byte [esp + 0x38]
mov byte [esi + 0x7cb], al
lea eax, [edi + 0xbe28]
push 0
push eax
mov dword [esi + 0x7bc], edx
mov dword [esp + 0x60], eax
call fcn.005282d0
mov cl, byte [esp + 0x40]
mov dword [esi + 0x84c], edx
mov edx, dword [esp + 0x48]
mov dword [esi + 0x848], eax
mov byte [esi + 0x85b], cl
mov eax, dword [ebx + 0xfde8]
push edx
push eax
call fcn.0044bf60
push 0x40
push 0xd4
push 0x32
push 0x144
push 0x19c
push 0x10
push 0xc
mov ebx, eax
call fcn.004b06e0
add esp, 0x54
push ebx
push 1
push 0x60
lea ecx, [esi + 0x880]
push 1
push ecx
call fcn.004b0490
add esp, 0x14
lea eax, [esi + 0x8eb]
mov ecx, 0x60
jmp 0x4570f0
mov dl, byte [esp + 0x10]
mov byte [eax], dl
add eax, 0x90
sub ecx, 1
jne 0x4570f0
add edi, 0xb6a8
push 0
push edi
mov dword [esp + 0x3c], edi
call fcn.005282d0
movss xmm0, dword [ebp + 0x8610]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [ebp + 0x8614]
movss dword [esp + 0x54], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x58], xmm0
movss dword [esp + 0x5c], xmm0
movss xmm1, dword [ebp + 0x8618]
movss dword [esp + 0x60], xmm1
movss xmm1, dword [ebp + 0x861c]
movss dword [esp + 0x64], xmm1
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x6c], xmm0
movss xmm1, dword [ebp + 0x8620]
movss dword [esp + 0x70], xmm1
movss xmm1, dword [ebp + 0x8624]
movss dword [esp + 0x74], xmm1
movss xmm1, dword [0x64f694]
add esp, 8
mov dword [esp + 0x3c], edx
movss dword [esp + 0x78], xmm1
movss xmm1, dword [0x64f690]
xor edx, edx
mov dword [esp + 0x38], eax
movss dword [esp + 0x70], xmm0
movss dword [esp + 0x74], xmm0
movss dword [esp + 0x7c], xmm1
movss dword [esp + 0x80], xmm0
movss dword [esp + 0x84], xmm0
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], 0x20
lea edi, [esi + 0x3ef8]
jmp 0x4571e0
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [edi - 0x20], eax
mov eax, edx
mov dword [edi - 0x1c], ecx
sub eax, dword [ebp + 0x8608]
xor ebx, ebx
add eax, 0x19
test eax, eax
setle bl
sub ebx, 1
and ebx, eax
cmp ebx, 0x18
jl 0x45723a
xor ecx, ecx
cmp edx, 7
setne cl
mov dword [esp + 0x20], 0x134
mov dword [esp + 0x10], 0x148
mov ebp, 0x60
mov ebx, 0x40
sub ecx, 1
and ecx, 0x80
jmp 0x4572b8
push ecx
cvtsi2ss xmm0, ebx
mulss xmm0, dword [0x64f68c]
movss dword [esp], xmm0
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x90]
push eax
call fcn.00449c10
cvttss2si ecx, dword [esp + 0x94]
cvttss2si edx, dword [esp + 0x98]
mov dword [esp + 0x2c], ecx
lea ecx, [ebx + ebx*2]
mov dword [esp + 0x1c], edx
shl ecx, 5
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ebp, edx
shl ebx, 6
shr ebp, 0x1f
add ebp, edx
mov eax, 0x2aaaaaab
imul ebx
mov eax, dword [esp + 0x28]
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cdq
and edx, 7
add eax, edx
mov ecx, eax
sar ecx, 3
add esp, 0xc
add ecx, 0x20
mov edx, dword [0x705898]
mov eax, dword [esp + 0x10]
sub eax, ebx
cvtsi2ss xmm0, eax
mulss xmm0, dword [edx + 0x3b8]
cvttss2si eax, xmm0
and eax, 0xffff
or eax, 0x320000
cdq
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x24], ebx
mov ebx, eax
mov eax, edx
mov edx, dword [esp + 0x20]
sub edx, ebp
mov dword [esp + 0x28], eax
cvtsi2ss xmm0, edx
mov edx, dword [0x705898]
mulss xmm0, dword [edx + 0x3b4]
cvttss2si eax, xmm0
and eax, 0xffff
cdq
or ebx, eax
mov eax, dword [esp + 0x28]
or eax, edx
mov edx, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x24]
add eax, edx
cvtsi2ss xmm0, eax
mov dword [edi], ebx
mov eax, dword [0x705898]
mulss xmm0, dword [eax + 0x3b8]
cvttss2si eax, xmm0
and eax, 0xffff
or eax, 0x320000
cdq
shld edx, eax, 0x10
shl eax, 0x10
mov ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], ebp
mov ebp, edx
mov edx, dword [esp + 0x18]
add edx, eax
cvtsi2ss xmm0, edx
mov edx, dword [0x705898]
mulss xmm0, dword [edx + 0x3b4]
cvttss2si eax, xmm0
and eax, 0xffff
cdq
or ebx, eax
mov eax, dword [esp + 0x1c]
or ebp, edx
mov edx, dword [esp + 0x14]
add eax, 0x20
mov dword [edi + 0x10], ebx
mov dword [edi + 0x14], ebp
mov byte [edi - 0xd], cl
add edx, 1
add edi, 0x90
cmp eax, 0x120
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
jl 0x4571dc
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
push eax
push edi
call fcn.00528260
mov ecx, dword [esp + 0x34]
push ecx
push edi
call fcn.00528260
mov edx, dword [esp + 0x40]
push edx
push edi
call fcn.00528260
push 0
push 0
push 0
push 0x430
push esi
push edi
call fcn.00550200
add esp, 0x30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x88
ret