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

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x2c]
xorps xmm0, xmm0
movss xmm1, dword [0x649444]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
lea eax, [ecx*8]
sub eax, ecx
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x38]
xor ebx, ebx
shl esi, 4
add esi, dword [0x69647c]
mov dword [esp + 0x1c], edx
movss dword [esi + 0x4c], xmm1
movss dword [esi + 0x50], xmm1
movss xmm1, dword [0x649918]
mov byte [esi + 0x1be], cl
mov dword [esi + 0x1ac], eax
movss dword [esi + 0x48], xmm0
movss dword [esi + 0x6c], xmm1
movss xmm1, dword [0x64de68]
movss dword [esi + 0x70], xmm0
movss dword [esi + 0x74], xmm0
movss dword [esi + 0x78], xmm0
movss dword [esi + 0x7c], xmm0
mov byte [esi + 0x1bf], 0xff
mov byte [esi + 0x1a6], 0x40
mov word [esi + 0x42], 0x1ff
mov byte [esi + 0x1a0], bl
mov byte [esi + 0x1a3], bl
mov word [esi + 0x1a4], bx
mov ecx, dword [esi + 0x90]
mov edx, dword [esi + 0x94]
mov eax, ecx
mov dword [esi + 0x1dc], eax
lea eax, [esi + 0x80]
mov dword [esi + 0x1e4], ecx
push eax
movss dword [esi + 0x54], xmm0
movss dword [esi + 0x1d8], xmm0
movss xmm0, dword [0x64de64]
mov ecx, edx
push ebx
mov word [esi + 0x1b4], bx
mov word [esi + 0x1b6], bx
mov word [esi + 0x1b8], bx
mov word [esi + 0x1ba], bx
mov byte [esi + 0x1a7], bl
mov word [esi + 0x1a8], bx
movss dword [esi + 0x1d4], xmm1
mov dword [esi + 0x1e8], edx
mov dword [esi + 0x1e0], ecx
mov dword [esi + 0x1d0], ebx
mov dword [esi + 0x1b0], ebx
movss dword [esi + 0x3c], xmm0
mov dword [esp + 0x44], eax
call fcn.004ca180
movss xmm0, dword [0x649444]
mov edx, dword [esp + 0x44]
movss dword [edx], xmm0
movss dword [esi + 0x84], xmm0
movss dword [esi + 0x88], xmm0
movss dword [esi + 0x8c], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [0x64de60]
lea eax, [esi + 0x120]
lea ecx, [esi + 0x160]
add esp, 8
mov dword [esi + 0x110], eax
mov dword [esi + 0x114], ecx
cmp dword [0x8488f4], ebx
movss dword [esp + 0x14], xmm0
je 0x4167ea
xorps xmm0, xmm0
movaps xmm1, xmm0
jmp 0x41681c
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], eax
call fcn.00458de0
fstp dword [esp + 0x40]
movss xmm1, dword [esp + 0x40]
xorps xmm0, xmm0
add esp, 4
mov ecx, dword [esp + 0x1c]
movss dword [esp + 0x14], xmm1
mov eax, dword [esp + 0x14]
lea edx, [esi + 0xa0]
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ecx
mov edx, esi
mov dword [edx], edi
mov dword [edx + 4], eax
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ecx
movss xmm1, dword [esi + 4]
subss xmm1, dword [0x64de60]
movss dword [esi + 4], xmm1
mov ecx, esi
mov edx, dword [ecx]
lea eax, [esi + 0x10]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 8], edx
mov edx, dword [esi + 0xa4]
mov dword [eax + 0xc], ecx
lea eax, [esi + 0x21c]
push eax
mov dword [esi + 0x30], edx
movss dword [esi + 0x90], xmm0
movss dword [esi + 0x98], xmm0
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
call fcn.004b3b50
add esp, 4
lea eax, [esi + 0x1c0]
mov ecx, 4
mov edi, edi
mov word [eax], bx
mov word [eax + 2], bx
add eax, 4
sub ecx, 1
jne 0x4168b0
mov ebp, dword [esp + 0x38]
push ebp
call fcn.005292c0
lea ecx, [eax + eax*4]
movzx ecx, byte [ecx*4 + 0x69cf71]
add esp, 4
sub ecx, 5
mov dword [esp + 0x38], eax
je 0x416955
sub ecx, 1
je 0x416941
sub ecx, 1
je 0x41692d
push eax
call fcn.00454f20
add esp, 4
mov edi, eax
call fcn.00630957
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
fmul dword [0x64de5c]
call fcn.006311dc
cmp al, bl
mov byte [esi + 0x1a0], al
je 0x41691f
sub al, 0x7b
mov byte [esi + 0x1a0], al
push ebp
call fcn.00529280
mov byte [esi + 0x1a2], al
jmp 0x41696c
mov edi, 0x8ae2b8
mov byte [esi + 0x1a0], bl
mov byte [esi + 0x1a2], 0x3e
jmp 0x416973
mov edi, 0x8ae298
mov byte [esi + 0x1a0], bl
mov byte [esi + 0x1a2], 0x3d
jmp 0x416973
add eax, 0xffffffbe
push eax
call fcn.004aae50
mov edi, eax
mov byte [esi + 0x1a0], bl
mov byte [esi + 0x1a2], bl
mov eax, dword [esp + 0x3c]
add esp, 4
mov byte [esi + 0x1a1], al
mov edx, dword [edi]
mov dword [esi + 0x64], edx
mov eax, dword [edi + 4]
mov dword [esi + 0x68], eax
movzx ax, byte [esi + 0x1a0]
mov word [esi + 0x40], ax
movsx eax, ax
mov ecx, eax
shl ecx, 4
add ecx, edx
movzx edx, byte [esi + 0x1be]
push edx
push eax
mov dword [esi + 0x5c], ecx
call fcn.00630957
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x64de58]
cvttss2si eax, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x64de54]
push ecx
movss dword [esp], xmm0
call fcn.00417990
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret