Function at 0x4a1420
Capabilities:
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c39ae
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x398
mov eax, dword [0x6287a8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2bc], esi
inc dword [esi + 0x208]
xorps xmm1, xmm1
movss xmm0, dword [0x62ba64]
mulss xmm0, dword [0x5d574c]
comiss xmm1, xmm0
movss dword [ebp - 0x2f8], xmm0
movss dword [0x62ba64], xmm0
jbe 0x4a14ac
xorps xmm0, xmm0
mov dword [0x62ba64], 0
movss dword [ebp - 0x2f8], xmm0
mulss xmm0, dword [0x5d0bb8]
cvtps2pd xmm0, xmm0
call fcn.00594c30
movss xmm1, dword [ebp - 0x2f8]
mov eax, dword [esi + 8]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
mulsd xmm0, qword [0x5d5758]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x2f8], xmm0
movq xmm0, qword [eax + 0x114]
movq qword [0x62ba88], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x62ba90], eax
cmp dword [esi + 0x20c], 0xffffffff
je 0x4a1558
mov ecx, dword [esi + 0x18]
call fcn.0044e020
test eax, eax
je 0x4a1558
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 0x20c]
jne 0x4a154c
cmp dword [0x62ba74], 0
jne 0x4a154c
movq xmm0, qword [eax + 0x114]
movq qword [0x62ba88], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x62ba90], eax
mov ecx, dword [esi + 0x18]
call fcn.0044e090
mov ecx, dword [esi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a1512
mov ecx, esi
call fcn.004abbb0
mov eax, dword [0x62b2d8]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x20]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0xa8]
mov eax, dword [0x62b2d8]
push 1
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0x118]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xdc], 0x3f800000
mov dword [ebp - 0xf0], 0x3f800000
mov dword [ebp - 0x104], 0x3f800000
mov dword [ebp - 0x118], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
movss xmm0, dword [ebp - 0x2f8]
lea eax, [ebp - 0x168]
addss xmm0, dword [esi + 0x1f0]
push ecx
movss dword [esp], xmm0
push eax
call fcn.0040292d
movss xmm0, dword [esi + 0x1f8]
lea eax, [ebp - 0x250]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00402891
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x168]
push eax
push eax
call fcn.00401d4e
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x118]
push eax
push eax
call fcn.00401d4e
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0x118]
push edx
push 2
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov eax, dword [0x62ba68]
cmp eax, 1
je 0x4a172e
cmp eax, 3
je 0x4a1783
cmp eax, 2
je 0x4a1783
mov eax, dword [0x62b2d8]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
cmp dword [0x62ba68], 4
mov eax, dword [0x62b2d8]
mov ecx, dword [eax + 0x2a3d8]
jne 0x4a1728
mov eax, dword [esi + 0x164]
mov eax, dword [eax + 0x130]
push eax
push ecx
jmp 0x4a1760
xor eax, eax
push eax
push ecx
jmp 0x4a1760
cmp dword [esi + 0x284], 0
je 0x4a1783
mov eax, dword [0x62b2d8]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [esi + 0x150]
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + 0xa8]
call fcn.0045e6a0
mov eax, dword [0x62b2d8]
push 1
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x62b2d8]
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x62b2d8]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x6e0]
push eax
push 0
push ecx
mov edx, dword [ecx]
call dword [edx + 0xb0]
cmp dword [esi + 0x60c], 0
jle 0x4a1986
mov eax, 0xfffffa15
lea edx, [esi + 0x5f8]
sub eax, esi
mov dword [ebp - 0x2a4], edx
mov dword [ebp - 0x2ac], eax
lea ecx, [esi + 0x5ac]
mov eax, 0xfffffa13
mov dword [ebp - 0x2d4], ecx
sub eax, esi
lea edi, [esi + 0x5ed]
mov dword [ebp - 0x304], eax
nop word [eax + eax]
cmp dword [0x62ba68], 2
jne 0x4a1986
test byte [0x621818], 2
je 0x4a1986
movss xmm0, dword [0x5d14b0]
ucomiss xmm0, dword [ecx + 4]
lahf
test ah, 0x44
jnp 0x4a195f
sub esp, 0xc
lea eax, [ebp - 0x1d0]
mov dword [esp + 8], 0x40000000
mov dword [esp + 4], 0
mov dword [esp], 0xc0800000
push 1
push eax
call fcn.00453d40
mov eax, dword [ebp - 0x2d4]
lea edx, [ebp - 0x1d0]
mov esi, dword [ebp - 0x2ac]
add esp, 0x14
mov dword [ebp - 0x180], 0x3f800000
add esi, edi
mov dword [ebp - 0x178], 0x3f000000
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x2a4]
movq qword [ebp - 0x19c], xmm0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0
movss xmm0, dword [eax]
movzx eax, byte [edi - 5]
movss dword [ebp - 0x184], xmm0
mov dword [ebp - 0x1a4], 0
push edx
movd xmm0, eax
movzx eax, byte [edi]
cvtdq2ps xmm0, xmm0
push esi
movss dword [ebp - 0x1cc], xmm0
movd xmm0, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1c8], xmm0
movd xmm0, eax
mov eax, dword [0x62b2d8]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1c4], xmm0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov eax, dword [0x62b2d8]
push 1
push esi
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov esi, dword [ebp - 0x2bc]
mov ecx, dword [ebp - 0x2d4]
mov edx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x304]
inc edi
add edx, 4
add ecx, 0xc
add eax, edi
mov dword [ebp - 0x2a4], edx
mov dword [ebp - 0x2d4], ecx
cmp eax, dword [esi + 0x60c]
jl 0x4a1820
xor edi, edi
nop dword [eax + eax]
cmp dword [0x62ba68], 2
jne 0x4a19a2
test byte [0x621818], 2
jne 0x4a19bc
mov eax, dword [0x62b2d8]
push 0
mov ecx, dword [eax + 0x2a3d8]
lea eax, [edi + 2]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0xb8]
inc edi
cmp edi, 5
jl 0x4a1990
xor eax, eax
cmp dword [esi + 0x60c], eax
jle 0x4a19e4
lea ecx, [esi + 0x5b0]
mov dword [ecx], 0x447a0000
inc eax
add ecx, 0xc
cmp eax, dword [esi + 0x60c]
jl 0x4a19d2
movss xmm0, dword [ebp - 0x2f8]
lea eax, [ebp - 0x168]
addss xmm0, dword [esi + 0x1f0]
push ecx
movss dword [esp], xmm0
push eax
call fcn.0040292d
movss xmm0, dword [0x5d0074]
mov eax, dword [esi + 0x28c]
movss xmm1, dword [0x5d3e50]
movss dword [ebp - 0x2a4], xmm0
cmp eax, 1
jne 0x4a1a36
movaps xmm0, xmm1
movss dword [ebp - 0x2a4], xmm0
jmp 0x4a1a46
cmp eax, 2
jne 0x4a1a46
movaps xmm0, xmm1
movss dword [ebp - 0x2a4], xmm1
sub esp, 0xc
lea eax, [ebp - 0x290]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call fcn.004027ee
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x168]
push eax
push eax
call fcn.00401d4e
mov eax, dword [esi + 0x28c]
movss xmm1, dword [0x5d5780]
cmp eax, 1
jne 0x4a1a9b
movss xmm1, dword [0x5d1b7c]
jmp 0x4a1aa8
cmp eax, 2
jne 0x4a1aa8
movss xmm1, dword [0x5d0bb8]
movss xmm2, dword [0x5d0084]
lea eax, [ebp - 0xd8]
movss xmm0, dword [esi + 0x200]
sub esp, 0xc
addss xmm1, dword [0x62ba8c]
mulss xmm0, xmm2
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x1fc]
mulss xmm1, xmm2
mulss xmm0, xmm2
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push eax
call fcn.004027ee
movss xmm0, dword [esi + 0x1f0]
cvtps2pd xmm0, xmm0
call fcn.00594c30
movss xmm2, dword [ebp - 0x2a4]
cvtps2pd xmm1, xmm2
mulsd xmm0, xmm1
movss xmm1, dword [ebp - 0xa8]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x2f8], xmm0
movss xmm0, dword [esi + 0x1f0]
cvtps2pd xmm0, xmm0
call fcn.00594a70
movss xmm2, dword [ebp - 0x2a4]
cvtps2pd xmm1, xmm2
mov eax, dword [esi + 0x28c]
mulsd xmm0, xmm1
movss xmm1, dword [ebp - 0xa0]
cvtps2pd xmm1, xmm1
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x304], xmm0
movss xmm0, dword [esi + 0x1f8]
cmp eax, 1
jne 0x4a1b85
movss xmm0, dword [0x5d57c4]
jmp 0x4a1b92
cmp eax, 2
jne 0x4a1b92
movss xmm0, dword [0x5d57c0]
push ecx
lea eax, [ebp - 0x250]
movss dword [esp], xmm0
push eax
call fcn.00402891
push ecx
lea eax, [ebp - 0x210]
mov dword [esp], 0x40490fdb
push eax
call fcn.0040292d
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0x168]
push eax
push eax
call fcn.00401d4e
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x210]
push eax
push eax
call fcn.00401d4e
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0xd8]
push eax
push eax
call fcn.00401d4e
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0xd8]
push edx
push 2
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
movss xmm0, dword [ebp - 0x304]
sub esp, 0xc
movss xmm1, dword [ebp - 0x2f8]
mov eax, esp
xorps xmm0, xmmword [0x5d0bc0]
xorps xmm1, xmmword [0x5d0bc0]
movss dword [ebp - 0x314], xmm0
mov ecx, dword [ebp - 0x314]
movss dword [ebp - 0x2ac], xmm0
movss xmm0, dword [0x62ba8c]
movups xmmword [ebp - 0x380], xmm1
unpcklps xmm1, xmm0
movq qword [eax], xmm1
mov dword [eax + 8], ecx
lea ecx, [esi + 0x430]
movss dword [ebp - 0x2a8], xmm0
movups xmmword [ebp - 0x2a0], xmm1
call fcn.0046c3d0
movss xmm0, dword [ebp - 0x2ac]
sub esp, 0x10
movups xmm1, xmmword [ebp - 0x380]
mov ecx, esp
movss dword [ebp - 0x354], xmm0
movss xmm0, dword [esi + 0x1f0]
xorps xmm0, xmmword [0x5d0bc0]
mov eax, dword [ebp - 0x354]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x2a8]
unpcklps xmm1, xmm0
movq qword [ecx], xmm1
mov dword [ecx + 8], eax
call fcn.00462aa0
add esp, 0x10
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0x118]
mov dword [ebp - 0xdc], 0x3f800000
mov dword [ebp - 0xf0], 0x3f800000
mov dword [ebp - 0x104], 0x3f800000
mov dword [ebp - 0x118], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
cmp dword [esi + 0x20c], 0xffffffff
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x164]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2d4], eax
je 0x4a1e09
mov ecx, dword [esi + 0x18]
call fcn.0044e020
test eax, eax
je 0x4a1e03
nop
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 0x20c]
jne 0x4a1df7
cmp dword [0x62ba74], 0
jne 0x4a1df7
mov ecx, dword [eax + 0x164]
mov edi, dword [eax + 0x168]
mov dword [ebp - 0x2f4], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x2d4], edi
call fcn.0044e090
mov ecx, dword [esi + 0x18]
call fcn.0044e0d0
test eax, eax
jne 0x4a1dc0
mov edx, dword [ebp - 0x2f4]
mov ecx, dword [0x62ba68]
mov edi, 0x60e2b4
test ecx, ecx
jne 0x4a1f82
cmp dword [esi + 0x2a0], 1
jge 0x4a1f82
mov eax, edx
sub eax, dword [edi - 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x4a1f6d
mov eax, dword [ebp - 0x2d4]
sub eax, dword [edi]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x4a1f6d
push dword [edi - 4]
mov ecx, dword [esi + 0x154]
call fcn.004faef0
push dword [edi]
mov ecx, dword [esi + 0x154]
fstp dword [ebp - 0x2ac]
call fcn.004fb000
fstp dword [ebp - 0x2a8]
call fcn.00565b3a
movss xmm1, dword [ebp - 0x2ac]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm1, xmm0
movss dword [ebp - 0x2ac], xmm1
movss dword [ebp - 0x310], xmm1
call fcn.00565b3a
movss xmm1, dword [ebp - 0x2a8]
sub esp, 8
mov ecx, esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x2ac]
movss dword [esp + 4], xmm1
movss dword [ebp - 0x308], xmm1
movss dword [esp], xmm0
call fcn.004aab50
mov eax, dword [ebp - 0x308]
sub esp, 0xc
mov ecx, esp
fstp dword [ebp - 0x30c]
movq xmm0, qword [ebp - 0x310]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba24]
call fcn.00519760
call fcn.00565b3a
mov ecx, dword [0x62ba24]
sub esp, 0x10
test al, 1
mov eax, esp
push 1
je 0x4a1f58
movups xmm0, xmmword [0x610ae8]
jmp 0x4a1f5f
movups xmm0, xmmword [0x610ad8]
movups xmmword [eax], xmm0
call fcn.00519380
mov ecx, dword [0x62ba68]
mov edx, dword [ebp - 0x2f4]
add edi, 0x50
cmp edi, 0x60ea34
jl 0x4a1e14
cmp dword [esi + 0x28c], 0
jne 0x4a22f0
test byte [0x621818], 1
je 0x4a22f0
cmp ecx, 1
je 0x4a2259
cmp ecx, 3
je 0x4a2259
cmp ecx, 2
je 0x4a2259
cmp ecx, 4
jne 0x4a214c
mov eax, dword [esi + 0x2a0]
cmp eax, 6
ja case.0x4a1fcf.0
jmp dword [eax*4 + 0x4a57f4]
mov eax, dword [0x62b2d8]
push 1
push 0x1c
mov dword [ebp - 0x2c8], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2a4], 0x428c0000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0xff6e738f
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0xff000000
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2c8]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2a4]
jmp 0x4a22da
mov dword [ebp - 0x2c8], 0x41a00000
mov dword [ebp - 0x2a4], 0x425c0000
mov eax, dword [0x62b2d8]
push 1
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push 0xff9696be
mov eax, dword [0x62b2d8]
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2c8]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2a4]
jmp 0x4a22da
mov dword [ebp - 0x2c8], 0x41f00000
mov dword [ebp - 0x2a4], 0x428c0000
jmp 0x4a208b
mov eax, dword [0x62b2d8]
push 1
push 0x1c
mov dword [ebp - 0x2c8], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2a4], 0x428c0000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push 0xff5a93f1
jmp 0x4a20a8
mov eax, dword [0x62b2d8]
push 1
push 0x1c
mov dword [ebp - 0x2ac], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2a8], 0x42c80000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
movss xmm1, dword [esi + 0x748]
addss xmm1, dword [0x5d16d8]
divss xmm1, dword [0x5d0db8]
movaps xmm0, xmm1
mulss xmm0, dword [0x5d57b0]
cvttss2si eax, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x5d57b8]
mov dword [ebp - 0x2a4], eax
mulss xmm0, dword [0x5d57b4]
mov eax, dword [0x62b2d8]
cvttss2si ecx, xmm1
mov esi, dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x2a4]
or eax, 0xffffff00
shl eax, 8
mov edi, dword [esi]
cvttss2si edx, xmm0
mov dword [ebp - 0x2a4], eax
movzx eax, dl
mov edx, dword [ebp - 0x2a4]
or edx, eax
movzx eax, cl
shl edx, 8
or edx, eax
push edx
push 0x22
push esi
call dword [edi + 0xc8]
mov eax, dword [0x62b2d8]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2ac]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2a8]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov esi, dword [ebp - 0x2bc]
jmp 0x4a22f0
mov eax, dword [0x62b2d8]
push 1
push 0x1c
mov dword [ebp - 0x2ac], 0x41a00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2a8], 0x42340000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0xff00001e
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2ac]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2a8]
mov eax, dword [0x62b2d8]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 3
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62ba68]
cmp eax, 1
je 0x4a23a0
cmp eax, 3
je 0x4a23a0
push dword [ebp - 0x2d4]
push dword [ebp - 0x2f4]
cmp eax, 4
jne 0x4a2340
mov ecx, dword [esi + 0x164]
call fcn.00526450
jmp 0x4a23cf
cmp eax, 2
jne 0x4a2355
mov ecx, dword [esi + 0x168]
call fcn.00510f20
jmp 0x4a23cf
mov eax, dword [esi + 0x154]
movups xmm0, xmmword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x314]
movq qword [eax + 0x188], xmm0
mov dword [eax + 0x190], ecx
mov ecx, dword [esi + 0x154]
mov eax, dword [esi + 0x1f0]
mov dword [ecx + 0x194], eax
mov ecx, dword [esi + 0x154]
call fcn.004f8500
mov ecx, dword [esi + 0x154]
call fcn.004f8850
jmp 0x4a23cf
mov eax, dword [0x62b2d8]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2d4]
mov ecx, dword [esi + 0x160]
push dword [ebp - 0x2f4]
call fcn.004eefc0
mov ecx, dword [esi + 0x15c]
call fcn.004e6f20
mov eax, dword [0x62b2d8]
push 2
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x62ba68]
cmp eax, 1
je 0x4a2433
cmp eax, 3
je 0x4a2433
cmp eax, 4
je 0x4a242c
cmp eax, 2
je 0x4a242c
mov ecx, esi
call fcn.004a6030
jmp 0x4a2433
mov ecx, esi
call fcn.004a6130
lea ecx, [ebp - 0x370]
call fcn.0044db60
movss xmm0, dword [esi + 0x1f0]
sub esp, 8
cvtps2pd xmm0, xmm0
mov dword [ebp - 4], 0
movsd qword [esp], xmm0
call fcn.0044d4d0
mov ecx, dword [esi + 0x18]
add esp, 8
fstp dword [esi + 0x1f0]
call fcn.0044e020
mov edi, eax
mov dword [ebp - 0x2ac], edi
test edi, edi
je 0x4a448c
mov dword [ebp - 0x2d8], 0xa
nop dword [eax + eax]
movss xmm0, dword [ebp - 0x2f8]
addss xmm0, dword [edi + 0x114]
movss xmm1, dword [ebp - 0x304]
addss xmm1, dword [edi + 0x11c]
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x2a8], xmm1
movsd qword [ebp - 0x2e8], xmm0
fld qword [ebp - 0x2e8]
movsd qword [ebp - 0x2d0], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x5d0bc0]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x2b8], xmm0
fld qword [ebp - 0x2b8]
call fcn.00592a20
fstp qword [ebp - 0x2b8]
movsd xmm0, qword [ebp - 0x2b8]
sub esp, 8
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0044d4d0
fstp dword [ebp - 0x2a4]
movss xmm0, dword [ebp - 0x2a4]
subss xmm0, dword [esi + 0x1f0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0044d470
movsd xmm3, qword [0x5d5870]
add esp, 8
movsd xmm1, qword [0x5d5770]
fstp dword [ebp - 0x2a4]
movss xmm0, dword [ebp - 0x2a4]
cvtps2pd xmm0, xmm0
andps xmm0, xmm3
comisd xmm1, xmm0
ja 0x4a25c5
movsd xmm2, qword [ebp - 0x2d0]
movsd xmm4, qword [0x5d5788]
andps xmm2, xmm3
comisd xmm4, xmm2
movss xmm1, dword [ebp - 0x2a8]
cvtps2pd xmm1, xmm1
jbe 0x4a2594
movaps xmm0, xmm1
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x4a25c5
movsd xmm0, qword [0x5d5790]
comisd xmm2, xmm0
jae 0x4a25ba
andps xmm1, xmm3
comisd xmm1, xmm0
jae 0x4a25ba
mov dword [edi + 0x1a8], 0
jmp 0x4a446e
inc dword [edi + 0x1a8]
jmp 0x4a446e
movss xmm0, dword [edi + 0x11c]
lea eax, [edi + 0x108]
sub esp, 0x10
mov dword [ebp - 0x2a8], eax
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
cmp dword [edi + 0x178], 0xffffffff
jle 0x4a32e5
mov eax, dword [edi + 0x194]
lea edx, [eax + 0x108]
test eax, eax
je 0x4a265d
mov eax, dword [edx]
mov dword [ebp - 0x2e4], eax
test eax, eax
je 0x4a265d
mov eax, dword [0x62b2d8]
push dword [ebp - 0x2e4]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
jmp 0x4a2686
mov eax, dword [0x62b2d8]
push dword [edx]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
inc dword [0x62ba80]
mov eax, dword [edi + 0x178]
mov dword [0x62ba84], eax
mov eax, dword [0x62b2d8]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 1
push 4
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [edi + 0x19c]
test eax, eax
je 0x4a27e7
cmp eax, 1
jne 0x4a277f
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x4a277f
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x62b2d8]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045a720
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x128]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x4a2761
mov dword [edi + 0x19c], 0
mov ecx, dword [esi + 0x128]
cdq
idiv dword [ecx + 0x160]
add ecx, 0x150
push edx
call fcn.0044df00
jmp 0x4a29e0
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x4a2a22
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x62b2d8]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045a720
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x12c]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x4a27df
mov dword [edi + 0x19c], 0
mov ecx, dword [esi + 0x12c]
jmp 0x4a2767
cmp dword [edi + 0x198], 0
je 0x4a294d
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2a4], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x4a2a22
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
mov esi, eax
mov eax, 0x66666667
imul edi
sar esi, 1
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x2a4]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x62b2d8]
mov esi, edx
push esi
mov dword [ebp - 0x2e4], esi
push dword [eax + 0x2a3d8]
call fcn.0045a720
push esi
mov esi, dword [ebp - 0x2bc]
mov ecx, dword [esi + 0x124]
add ecx, 0x150
call fcn.0044df00
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
movss dword [esp], xmm0
push eax
call fcn.004a6020
mov eax, dword [ebp - 0x2e4]
cmp eax, 1
je 0x4a28d0
cmp eax, 8
jne 0x4a2a22
cmp dword [edi + 0x220], eax
je 0x4a2a22
call fcn.00565b3a
mov esi, eax
and esi, reloc.WS2_32.dll_closesocket
jns 0x4a28f0
dec esi
or esi, 0xfffffffc
inc esi
mov eax, dword [ebp - 0x2e4]
sub esp, 0x10
movq xmm0, qword [edi + 0x114]
mov ecx, esp
mov dword [edi + 0x220], eax
mov eax, dword [edi + 0x11c]
mov dword [esp + 0xc], 0x42480000
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x2bc]
mov ecx, dword [ecx + esi*4 + 0x4dc]
call fcn.00462850
mov eax, dword [ebp - 0x2bc]
mov ecx, dword [eax + esi*4 + 0x4dc]
call fcn.00462730
mov esi, dword [ebp - 0x2bc]
jmp 0x4a2a22
mov ecx, dword [esi + 0x120]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x4a2a22
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*4]
mov eax, dword [edi + 0x190]
cdq
add esi, esi
and edx, 3
add eax, edx
sar eax, 2
sub eax, esi
add eax, edi
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x62b2d8]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045a720
mov eax, dword [ebp - 0x2bc]
mov ecx, dword [eax + 0x120]
mov eax, dword [edi + 0x190]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, esi
add eax, edi
cdq
idiv dword [ecx + 0x160]
add ecx, 0x150
push edx
call fcn.0044df00
mov esi, dword [ebp - 0x2bc]
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
movss dword [esp], xmm0
push eax
call fcn.004a6020
cmp dword [edi + 0x254], 0xffffffff
jle 0x4a2c79
mov eax, dword [edi + 0x258]
inc eax
mov dword [edi + 0x258], eax
cmp eax, 0x1e
jle 0x4a2a4b
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x4a2c79
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x39c], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x5d0048]
mov dword [ebp - 0x2b4], eax
jb 0x4a2a90
mov dword [ebp - 0x2a4], 0xff
jmp 0x4a2abf
comiss xmm1, xmm0
jb 0x4a2aa1
mov dword [ebp - 0x2a4], 0
jmp 0x4a2abf
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2a4], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x5d0048]
jb 0x4a2adc
mov dword [ebp - 0x2c8], 0xff
jmp 0x4a2b08
comiss xmm1, xmm0
jb 0x4a2aed
mov dword [ebp - 0x2c8], 0
jmp 0x4a2b08
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2c8], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x5d0048]
jb 0x4a2b28
mov dword [ebp - 0x2e4], 0xff
jmp 0x4a2b57
comiss xmm1, xmm0
jb 0x4a2b39
mov dword [ebp - 0x2e4], 0
jmp 0x4a2b57
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2e4], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x5d0048]
jb 0x4a2b6f
mov eax, 0xff
jmp 0x4a2b8d
comiss xmm1, xmm0
jb 0x4a2b78
xor eax, eax
jmp 0x4a2b8d
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2a4]
shl eax, 8
or eax, dword [ebp - 0x2c8]
shl eax, 8
or dword [ebp - 0x2e4], eax
call fcn.00565b3a
mov ecx, dword [ebp - 0x2b4]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0db8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm0, dword [ebp - 0x398]
movss dword [ebp - 0x398], xmm0
movq xmm0, qword [ebp - 0x39c]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba48]
call fcn.0051bae0
mov edx, dword [ebp - 0x2e4]
sub esp, 0x10
movss xmm1, dword [0x5d5728]
mov eax, edx
shr eax, 0x10
mov ecx, esp
movzx eax, al
push 5
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ecx], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ecx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 0xc], xmm0
mov ecx, dword [0x62ba48]
call fcn.0051b580
cmp dword [edi + 0x26c], 0
je 0x4a2e42
mov eax, dword [edi + 0x19c]
cmp eax, 1
jne 0x4a2cca
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a2d08
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2b4]
push edx
call fcn.0044df00
jmp 0x4a2dce
cmp eax, 2
jne 0x4a2d08
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a2d08
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2b4]
push edx
call fcn.0044df00
jmp 0x4a2dce
cmp dword [edi + 0x198], 0
je 0x4a2d64
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2e4], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a2d64
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
mov esi, eax
mov eax, 0x66666667
imul edi
sar esi, 1
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x2e4]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2b4]
jmp 0x4a2dbc
mov eax, dword [esi + 0x120]
mov dword [ebp - 0x2e4], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a2e2a
mov eax, dword [edi + 0x190]
cdq
and edx, 3
lea esi, [edx + eax]
mov eax, 0x66666667
imul edi
sar esi, 2
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x2e4]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2b4]
push edx
add ecx, 0x150
call fcn.0044df00
mov esi, dword [ebp - 0x2bc]
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
push eax
call fcn.004ac280
lea eax, [edi + 0x274]
test eax, eax
je 0x4a2e2a
push edi
mov ecx, esi
call fcn.004a5810
mov eax, dword [0x62b2d8]
mov ecx, dword [edi + 0x26c]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
mov dword [ebp - 0x2b4], 0
lea esi, [edi + 0x338]
mov edi, dword [ebp - 0x2b4]
cmp dword [esi], 0
je 0x4a2e6b
push edi
push dword [ebp - 0x2a8]
mov ecx, esi
call fcn.004aebc0
inc edi
add esi, 0xd0
cmp edi, 2
jl 0x4a2e58
mov edi, dword [ebp - 0x2ac]
mov eax, dword [ebp - 0x2f4]
mov esi, dword [ebp - 0x2bc]
sub eax, dword [edi + 0x164]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4a446e
mov eax, dword [ebp - 0x2d4]
sub eax, dword [edi + 0x168]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4a446e
or ecx, 0xffffffff
mov dword [ebp - 0x2a4], ecx
cmp edi, dword [esi + 0x10]
jne 0x4a2ee7
mov eax, 0x2aaaaaab
imul dword [esi + 0x208]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
mov eax, 0xff50ff50
cmovne ecx, eax
mov dword [ebp - 0x2a4], ecx
movss xmm2, dword [0x5d0084]
movss dword [ebp - 0x2e4], xmm2
cmp edi, dword [esi + 8]
jne 0x4a2f2f
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [0x5d0048]
movss dword [ebp - 0x2e4], xmm1
jb 0x4a2f2f
movss dword [ebp - 0x2e4], xmm2
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3a8], ecx
mov byte [ebp - 4], 1
test ecx, ecx
je 0x4a2fba
movss xmm0, dword [ebp - 0x2e4]
lea eax, [edi + 0x1b0]
push 0
push dword [ebp - 0x2a4]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [edi + 0x11c]
push eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
addss xmm0, dword [0x5d0048]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x5d0070]
subss xmm0, dword [esi + 0x1f0]
movss dword [esp], xmm0
call fcn.00468060
jmp 0x4a2fbc
xor eax, eax
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0
call fcn.0044de70
cmp byte [edi + 0x1d0], 0
lea eax, [edi + 0x1d0]
je 0x4a3118
push str.Administrator
push eax
call fcn.0044d360
add esp, 8
test eax, eax
je 0x4a301e
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3a4], ecx
mov byte [ebp - 4], 2
test ecx, ecx
je 0x4a30fc
push 1
push 0xff64ff64
jmp 0x4a309c
lea eax, [edi + 0x1d0]
push str.Moderator
push eax
call fcn.0044d360
add esp, 8
test eax, eax
jne 0x4a3078
lea eax, [edi + 0x1d0]
push str.Trial_Moderator
push eax
call fcn.0044d360
add esp, 8
test eax, eax
jne 0x4a3078
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3a0], ecx
mov byte [ebp - 4], 4
test ecx, ecx
je 0x4a30fc
push 1
push 0xff00bfff
jmp 0x4a309c
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x38c], ecx
mov byte [ebp - 4], 3
test ecx, ecx
je 0x4a30fc
push 1
push 0xffffff00
movss xmm0, dword [edi + 0x11c]
lea eax, [edi + 0x1d0]
push ecx
mov dword [esp], 0xbf800000
push eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
addss xmm0, dword [0x5d3db4]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x5d0070]
subss xmm0, dword [esi + 0x1f0]
movss dword [esp], xmm0
call fcn.00468060
jmp 0x4a30fe
xor eax, eax
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0
mov dword [eax + 0x118], 0x41a00000
call fcn.0044de70
xor eax, eax
mov dword [ebp - 0x2e4], eax
cmp edi, dword [esi + 0x10]
jne 0x4a446e
imul ecx, eax, 0xd0
mov dword [ebp - 0x2ac], ecx
cmp dword [ecx + edi + 0x338], 0
je 0x4a32d0
movss xmm0, dword [0x5d5760]
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0xbe4ccccd
cmp eax, 1
jne 0x4a3176
movss xmm0, dword [0x5d57c8]
mov eax, dword [ebp - 0x2a8]
subss xmm0, dword [eax]
movss dword [ebp - 0x2b4], xmm0
cvtps2pd xmm0, xmm0
call fcn.00594a70
movss xmm1, dword [edi + 0x11c]
sub esp, 8
mulsd xmm0, qword [0x5d5768]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss dword [esp + 4], xmm1
movss xmm1, dword [edi + 0x118]
addss xmm1, dword [0x5d3da8]
movss dword [esp], xmm1
movss xmm1, dword [ebp - 0x2b4]
cvtps2pd xmm0, xmm1
call fcn.00594c30
movss xmm1, dword [edi + 0x114]
sub esp, 8
mulsd xmm0, qword [0x5d5768]
mov ecx, esi
mov eax, dword [ebp - 0x2a8]
cvtps2pd xmm1, xmm1
addsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [esp + 4], xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
lea eax, [esi + 0x1b0]
push eax
lea eax, [ebp - 0x124]
push eax
lea eax, [ebp - 0x29c]
push eax
call fcn.00401603
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x384], ecx
mov byte [ebp - 4], 5
test ecx, ecx
je 0x4a32b8
mov eax, dword [ebp - 0x2ac]
movss xmm0, dword [ebp - 0x294]
add eax, 0x340
push 0
push 0xffffffffffffffff
push ecx
mov dword [esp], 0xbf800000
add eax, edi
push eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x298]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x29c]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x5d0070]
subss xmm0, dword [esi + 0x1f0]
movss dword [esp], xmm0
call fcn.00468060
jmp 0x4a32ba
xor eax, eax
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0
call fcn.0044de70
mov eax, dword [ebp - 0x2e4]
inc eax
mov dword [ebp - 0x2e4], eax
cmp eax, 2
jl 0x4a3120
jmp 0x4a446e
mov eax, dword [edi + 0x160]
cmp eax, 1
jne 0x4a3ab3
mov eax, dword [0x62b2d8]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [edi + 0x180]
cmp eax, 0x16
jg 0x4a3320
cmp eax, 8
jle 0x4a3320
push 2
jmp 0x4a3322
push 1
mov eax, dword [0x62b2d8]
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov ecx, dword [edi + 0x324]
mov eax, dword [edi + 0x180]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2a8], eax
test ecx, ecx
jne 0x4a3379
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x184]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x62ba98]
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2a8], eax
mov edx, dword [edi + 0x328]
lea eax, [eax + eax*2]
add eax, eax
mov dword [ebp - 0x2e4], edx
mov dword [ebp - 0x2a4], eax
test edx, edx
jne 0x4a33b9
mov eax, dword [edi + 0x184]
add eax, dword [ebp - 0x2a4]
mov edx, dword [eax*4 + 0x62bdc8]
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x2e4], edx
mov dword [ebp - 0x2a4], eax
mov eax, dword [edi + 0x32c]
mov dword [ebp - 0x2c8], eax
test eax, eax
jne 0x4a33e2
mov eax, dword [edi + 0x184]
add eax, dword [ebp - 0x2a4]
mov eax, dword [eax*4 + 0x62c0f8]
mov dword [ebp - 0x2c8], eax
cmp dword [ebp - 0x2a8], 0x1b
jne 0x4a33f8
cmp dword [edi + 0x1ac], 0
jne 0x4a36b8
cmp dword [edi + 0x1a4], 0
je 0x4a3438
cmp dword [edi + 0x190], 0x14
jle 0x4a3438
test byte [edi + 0x190], 1
je 0x4a36b8
test ecx, ecx
je 0x4a36a0
mov eax, dword [ecx + 0x160]
test eax, eax
jle 0x4a36a0
cdq
sub eax, edx
sar eax, 1
push eax
jmp 0x4a368e
cmp dword [edi + 0x19c], 0
je 0x4a34db
test eax, eax
je 0x4a347a
mov ecx, dword [eax + 0x160]
test ecx, ecx
jle 0x4a347a
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv ecx
mov eax, dword [0x62b2d8]
mov ecx, dword [ebp - 0x2c8]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045a720
jmp 0x4a3492
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
mov eax, dword [edi + 0x180]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x184]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x62c0f8]
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x4a36b8
mov dword [edi + 0x19c], 0
mov dword [edi + 0x190], 0
jmp 0x4a36b8
cmp dword [edi + 0x1a0], 0
je 0x4a35ea
test edx, edx
je 0x4a358a
cmp dword [edx + 0x160], 0
lea eax, [edx + 0x160]
mov dword [ebp - 0x2b4], eax
jle 0x4a358a
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movd xmm0, dword [edi + 0x190]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [edi + 0x108]
divss xmm0, dword [0x5d0bb8]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [edi + 0x190]
mov ecx, dword [ebp - 0x2b4]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ecx]
mov eax, dword [0x62b2d8]
mov ecx, dword [ebp - 0x2e4]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045a720
jmp 0x4a35a2
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
mov eax, dword [edi + 0x180]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x184]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x62bdc8]
mov eax, 0x2aaaaaab
imul dword [edi + 0x190]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [ecx + 0x160]
jl 0x4a36b8
mov dword [edi + 0x1a0], 0
jmp 0x4a36b8
cmp dword [edi + 0x198], 0
je 0x4a3643
test edx, edx
je 0x4a36a0
mov eax, dword [edx + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a36a0
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x190]
cdq
add ecx, ecx
sub eax, edx
sar eax, 1
sub eax, ecx
mov ecx, dword [ebp - 0x2e4]
add eax, edi
cdq
idiv dword [ebp - 0x2b4]
jmp 0x4a368d
test ecx, ecx
je 0x4a36a0
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2b4], eax
test eax, eax
jle 0x4a36a0
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x190]
cdq
add ecx, ecx
and edx, 3
add eax, edx
sar eax, 2
sub eax, ecx
mov ecx, dword [ebp - 0x2ac]
add eax, edi
cdq
idiv dword [ebp - 0x2b4]
push edx
mov eax, dword [0x62b2d8]
push dword [eax + 0x2a3d8]
call fcn.0045a720
jmp 0x4a36b8
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
cmp dword [edi + 0x180], 0x1b
jne 0x4a3851
cmp dword [edi + 0x1ac], 0
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x338], xmm0
mov dword [ebp - 0x2a8], eax
jne 0x4a3779
call fcn.00565b3a
mov ecx, dword [ebp - 0x2a8]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d16d8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm0, dword [ebp - 0x334]
movss dword [ebp - 0x334], xmm0
movq xmm0, qword [ebp - 0x338]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba28]
call fcn.00519760
sub esp, 0x10
mov eax, esp
push 5
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0x3f800000
mov dword [eax + 0xc], 0x3f800000
mov ecx, dword [0x62ba28]
call fcn.00519380
jmp 0x4a3851
call fcn.00565b3a
mov ecx, dword [ebp - 0x2a8]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d3da8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm0, dword [ebp - 0x334]
movss dword [ebp - 0x334], xmm0
movq xmm0, qword [ebp - 0x338]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba24]
call fcn.00519760
sub esp, 0x10
mov eax, esp
push 5
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0x3f800000
mov dword [eax + 0xc], 0x3f800000
mov ecx, dword [0x62ba24]
call fcn.00519380
movq xmm0, qword [ebp - 0x338]
sub esp, 0xc
mov ecx, dword [ebp - 0x2a8]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba48]
call fcn.0051bae0
sub esp, 0x10
mov eax, esp
push 5
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0x3f800000
mov dword [eax + 0xc], 0x3f800000
mov ecx, dword [0x62ba48]
call fcn.0051b580
cmp dword [edi + 0x254], 0xffffffff
jle 0x4a431f
mov eax, dword [edi + 0x258]
inc eax
mov dword [edi + 0x258], eax
cmp eax, 0x1e
jle 0x4a387a
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x4a431f
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x37c], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x5d0048]
mov dword [ebp - 0x2b4], eax
jb 0x4a38bf
mov dword [ebp - 0x2a8], 0xff
jmp 0x4a38ee
comiss xmm1, xmm0
jb 0x4a38d0
mov dword [ebp - 0x2a8], 0
jmp 0x4a38ee
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2a8], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x5d0048]
jb 0x4a390b
mov dword [ebp - 0x2e4], 0xff
jmp 0x4a3937
comiss xmm1, xmm0
jb 0x4a391c
mov dword [ebp - 0x2e4], 0
jmp 0x4a3937
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2e4], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x5d0048]
jb 0x4a3957
mov dword [ebp - 0x2a4], 0xff
jmp 0x4a3986
comiss xmm1, xmm0
jb 0x4a3968
mov dword [ebp - 0x2a4], 0
jmp 0x4a3986
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
mov dword [ebp - 0x2a4], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x5d0048]
jb 0x4a399e
mov eax, 0xff
jmp 0x4a39bc
comiss xmm1, xmm0
jb 0x4a39a7
xor eax, eax
jmp 0x4a39bc
mulss xmm0, dword [0x5d0fc0]
addss xmm0, dword [0x5d0bb4]
call fcn.005565b0
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2a8]
shl eax, 8
or eax, dword [ebp - 0x2e4]
shl eax, 8
or eax, dword [ebp - 0x2a4]
mov dword [ebp - 0x2ac], eax
call fcn.00565b3a
mov ecx, dword [ebp - 0x2b4]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0db8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm0, dword [ebp - 0x378]
movss dword [ebp - 0x378], xmm0
movq xmm0, qword [ebp - 0x37c]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba48]
call fcn.0051bae0
mov edx, dword [ebp - 0x2ac]
sub esp, 0x10
movss xmm1, dword [0x5d5728]
mov eax, edx
shr eax, 0x10
mov ecx, esp
movzx eax, al
push 5
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ecx], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ecx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 0xc], xmm0
mov ecx, dword [0x62ba48]
call fcn.0051b580
jmp 0x4a431f
cmp eax, 0xe
je 0x4a431f
cmp eax, 6
jne 0x4a3ade
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xb0]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 0xc
jne 0x4a3b00
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x118]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 0xd
jne 0x4a3b14
mov ecx, dword [edi + 0x17c]
mov ecx, dword [esi + ecx*4 + 0xe8]
jmp 0x4a3b1f
cmp eax, 0x14
jne 0x4a3b4e
mov ecx, dword [esi + 0x10c]
mov eax, dword [0x62b2d8]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
movss xmm0, dword [edi + 0x108]
addss xmm0, dword [0x5d5730]
movss dword [edi + 0x108], xmm0
jmp 0x4a431f
cmp eax, 5
jne 0x4a3b70
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xd4]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 7
jne 0x4a3bc7
mov cl, byte [edi + 0x18c]
cmp cl, 0xff
jne 0x4a3b9d
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0xe4]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp cl, 5
jae 0x4a431f
mov eax, dword [0x62b2d8]
movzx ecx, cl
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xb4]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 0x12
jne 0x4a3bf3
mov dword [edi + 0x108], 0
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x110]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 0x13
jne 0x4a3c15
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x114]
push 0
push dword [eax + 0x2a3d8]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 0xa
jne 0x4a3c60
movq xmm0, qword [edi + 0x114]
sub esp, 0xc
mov eax, dword [edi + 0x11c]
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba38]
call fcn.00519760
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba38]
sub esp, 0x10
mov eax, esp
push 1
movups xmmword [eax], xmm0
call fcn.00519380
jmp 0x4a431f
cmp eax, 0x11
jne 0x4a41b5
mov eax, dword [edi + 0x238]
movss xmm1, dword [0x5d0048]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5cf230]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x5d0bb8]
comiss xmm1, xmm0
movss dword [ebp - 0x2c8], xmm0
jbe 0x4a3cd4
call fcn.00565b3a
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [esi + 0x208]
mov ecx, edx
cdq
idiv dword [ebp - 0x2d8]
cmp ecx, edx
jge 0x4a3cd4
movss xmm0, dword [0x5d0048]
movss dword [ebp - 0x2c8], xmm0
mov eax, dword [edi + 0x234]
test eax, eax
jne 0x4a3cf1
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
jmp 0x4a3d8c
cmp eax, 1
jne 0x4a3dcb
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x344], xmm0
mov dword [ebp - 0x33c], eax
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x344]
movss dword [ebp - 0x344], xmm0
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x33c]
movss dword [ebp - 0x33c], xmm0
movq xmm0, qword [ebp - 0x344]
mov eax, dword [ebp - 0x33c]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba38]
call fcn.00519760
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba38]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.00519380
jmp 0x4a431f
cmp eax, 2
jne 0x4a3e6b
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x35c], xmm0
call fcn.00565b3a
mov ecx, dword [0x62ba48]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0db8]
divss xmm0, dword [0x5d3e8c]
addss xmm0, dword [0x5d0044]
addss xmm0, dword [ebp - 0x358]
movss dword [ebp - 0x358], xmm0
movq xmm0, qword [ebp - 0x35c]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.0051bae0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba48]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.0051b580
mov esi, dword [ebp - 0x2bc]
jmp 0x4a431f
cmp eax, 3
jne 0x4a3f45
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x32c], xmm0
mov dword [ebp - 0x324], eax
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x32c]
movss dword [ebp - 0x32c], xmm0
call fcn.00565b3a
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x324]
movss dword [ebp - 0x324], xmm0
movq xmm0, qword [ebp - 0x32c]
mov eax, dword [ebp - 0x324]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba24]
call fcn.00519760
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba24]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.00519380
jmp 0x4a431f
cmp eax, 4
jne 0x4a4040
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x350], xmm0
movss xmm0, dword [ebp - 0x34c]
addss xmm0, dword [0x5d3dc4]
mov dword [ebp - 0x348], eax
movss dword [ebp - 0x2b4], xmm0
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x350]
movaps xmmword [ebp - 0x2f0], xmm0
call fcn.00565b3a
movss xmm1, dword [ebp - 0x2b4]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x348]
movss dword [ebp - 0x348], xmm0
movaps xmm0, xmmword [ebp - 0x2f0]
mov eax, dword [ebp - 0x348]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba2c]
call fcn.00519760
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba2c]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.00519380
jmp 0x4a431f
cmp eax, 5
jne 0x4a40ba
movq xmm0, qword [edi + 0x114]
sub esp, 0xc
mov ecx, dword [edi + 0x11c]
mov eax, esp
movq qword [ebp - 0x31c], xmm0
movss xmm0, dword [ebp - 0x318]
addss xmm0, dword [0x5d3da0]
movss dword [ebp - 0x318], xmm0
movq xmm0, qword [ebp - 0x31c]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba30]
call fcn.00519760
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba30]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.00519380
jmp 0x4a431f
cmp eax, 6
jne 0x4a431f
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x310], xmm0
movss xmm0, dword [ebp - 0x30c]
addss xmm0, dword [0x5d3da4]
mov dword [ebp - 0x308], eax
movss dword [ebp - 0x2b4], xmm0
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x310]
movups xmmword [ebp - 0x2f0], xmm0
call fcn.00565b3a
movss xmm1, dword [ebp - 0x2b4]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x308]
movss dword [ebp - 0x308], xmm0
movups xmm0, xmmword [ebp - 0x2f0]
mov eax, dword [ebp - 0x308]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba3c]
call fcn.0051a8e0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x62ba3c]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c8]
push eax
call fcn.0051a4d0
jmp 0x4a431f
cmp eax, 8
jne 0x4a41df
mov eax, dword [0x62b2d8]
movzx ecx, byte [edi + 0x18e]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xcc]
call fcn.0045e6a0
jmp 0x4a431f
cmp eax, 3
jne 0x4a41ec
push dword [esi + 0x140]
jmp 0x4a424b
cmp eax, 4
jne 0x4a41f9
push dword [esi + 0x144]
jmp 0x4a424b
cmp eax, 0x10
jne 0x4a4245
mov eax, dword [esi + 0x220]
test eax, eax
jle 0x4a4217
mov ecx, dword [esi + 0x138]
dec eax
mov dword [esi + 0x220], eax
jmp 0x4a421d
mov ecx, dword [esi + 0x134]
mov eax, dword [edi + 0x190]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdq
idiv dword [ecx + 0x160]
mov eax, dword [0x62b2d8]
push edx
mov eax, dword [eax + 0x2a3d8]
push eax
jmp 0x4a431a
push dword [esi + 0x13c]
mov eax, dword [0x62b2d8]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x62b2d8]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x62b2d8]
push 1
push 4
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [esi + 0x130]
mov ecx, dword [eax + 0x160]
mov eax, 0x55555556
imul dword [edi + 0x190]
add ecx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
idiv ecx
xor eax, eax
add edx, 0xfffffffb
cmovns eax, edx
cmp eax, 7
jle 0x4a4308
add eax, 0xfffffffb
mov ecx, 7
cmp eax, 7
cmovl eax, ecx
mov ecx, dword [esi + 0x130]
push eax
mov eax, dword [0x62b2d8]
push dword [eax + 0x2a3d8]
call fcn.0045a720
mov eax, dword [ebp - 0x2f4]
cmp eax, dword [edi + 0x164]
jne 0x4a446e
mov eax, dword [ebp - 0x2d4]
cmp eax, dword [edi + 0x168]
jne 0x4a446e
or ecx, 0xffffffff
mov dword [ebp - 0x2a8], ecx
cmp edi, dword [esi + 0x10]
jne 0x4a4373
mov eax, 0x2aaaaaab
imul dword [esi + 0x208]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
je 0x4a4373
mov dword [ebp - 0x2a8], 0xff50ff50
jmp 0x4a4396
mov eax, dword [esi + 0x20c]
cmp eax, dword [edi + 0x17c]
jne 0x4a4396
cmp dword [0x62ba74], 0
mov eax, 0xffff0050
cmove ecx, eax
mov dword [ebp - 0x2a8], ecx
cmp dword [edi + 0x218], 0
movss xmm0, dword [0x5d0084]
movss dword [ebp - 0x2ac], xmm0
jle 0x4a43d1
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x2ac], xmm1
push 0x12c
call fcn.0055644a
mov ecx, eax
add esp, 4
mov dword [ebp - 0x2fc], ecx
mov byte [ebp - 4], 6
test ecx, ecx
je 0x4a445c
movss xmm0, dword [ebp - 0x2ac]
lea eax, [edi + 0x1b0]
push 0
push dword [ebp - 0x2a8]
push ecx
movss dword [esp], xmm0
movss xmm0, dword [edi + 0x11c]
push eax
sub esp, 0x10
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
addss xmm0, dword [0x5d0048]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x5d0070]
subss xmm0, dword [esi + 0x1f0]
movss dword [esp], xmm0
call fcn.00468060
jmp 0x4a445e
xor eax, eax
push eax
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 0
call fcn.0044de70
inc dword [edi + 0x190]
mov ecx, dword [esi + 0x18]
call fcn.0044e0d0
mov edi, eax
mov dword [ebp - 0x2ac], eax
test edi, edi
jne 0x4a2490
mov ecx, dword [0x62ba50]
call fcn.004f4c30
cmp dword [0x62ba80], 0x64
jle 0x4a44d4
mov ecx, dword [0x62b3f8]
lea edx, [ebp - 0x300]
mov eax, dword [0x62ba84]
push 0
push 0
mov dword [0x62ba80], 0
mov byte [ebp - 0x300], 0x2f
mov dword [ebp - 0x2ff], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
mov eax, dword [0x62ba68]
cmp eax, 1
je 0x4a5000
cmp eax, 3
je 0x4a5000
mov eax, dword [0x62b2d8]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov ecx, dword [esi + 0x1c]
call fcn.0044e020
mov edi, eax
test edi, edi
je 0x4a4fad
movss xmm3, dword [0x5d5860]
mov dword [ebp - 0x2a4], 0xff
nop
movss xmm2, dword [edi + 0x114]
movss xmm4, dword [0x5d3e5c]
movaps xmm0, xmm2
subss xmm0, dword [0x62ba88]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x4a4f89
movss xmm1, dword [edi + 0x11c]
movaps xmm0, xmm1
subss xmm0, dword [0x62ba90]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x4a4f89
addss xmm2, dword [ebp - 0x2f8]
addss xmm1, dword [ebp - 0x304]
cvtps2pd xmm0, xmm2
movss dword [ebp - 0x2b4], xmm1
movsd qword [ebp - 0x388], xmm0
fld qword [ebp - 0x388]
movsd qword [ebp - 0x390], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x5d0bc0]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x300], xmm0
fld qword [ebp - 0x300]
call fcn.00592a20
fstp qword [ebp - 0x300]
movsd xmm0, qword [ebp - 0x300]
sub esp, 8
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0044d4d0
fstp dword [ebp - 0x2d8]
movss xmm0, dword [ebp - 0x2d8]
subss xmm0, dword [esi + 0x1f0]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.0044d470
movsd xmm1, qword [0x5d5870]
add esp, 8
movsd xmm2, qword [0x5d5770]
fstp dword [ebp - 0x2d8]
fld dword [ebp - 0x2d8]
fstp qword [ebp - 0x300]
movsd xmm0, qword [ebp - 0x300]
andps xmm0, xmm1
comisd xmm2, xmm0
ja 0x4a46b8
movsd xmm0, qword [ebp - 0x390]
movsd xmm2, qword [0x5d5788]
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x4a4ecc
movss xmm0, dword [ebp - 0x2b4]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x4a4ecc
mov eax, dword [0x62ba68]
mov ecx, edi
cmp eax, 4
je 0x4a4af9
cmp eax, 2
je 0x4a4832
call fcn.0044c8d0
cmp eax, 0x10
jbe 0x4a47c4
mov eax, dword [0x60f48c]
mov ecx, dword [edi + 0x17c]
mov dword [ebp - 0x2a8], ecx
test eax, eax
je 0x4a4ecc
cmp eax, 1
je 0x4a4704
cmp eax, 2
jne 0x4a4718
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2a8], ecx
xor edx, edx
mov dword [ebp - 0x2ac], edx
test ecx, ecx
jle 0x4a4ecc
xor ecx, ecx
mov dword [ebp - 0x2e4], ecx
mov eax, dword [edi + 0x174]
sub esp, 0x10
movss xmm0, dword [ecx + eax + 8]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ecx + eax + 4]
movss dword [esp + 8], xmm0
movss xmm0, dword [ecx + eax]
mov ecx, esi
movss dword [esp + 4], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x5d3e50]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, edi
push 0
push dword [eax + 0x2a3d8]
call fcn.0044c8d0
mov ecx, dword [eax*4 + 0x62cad0]
call fcn.0045e6a0
mov edx, dword [ebp - 0x2ac]
mov ecx, dword [ebp - 0x2e4]
inc edx
add ecx, 0xc
mov dword [ebp - 0x2ac], edx
mov dword [ebp - 0x2e4], ecx
cmp edx, dword [ebp - 0x2a8]
jl 0x4a4730
jmp 0x4a4ecc
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, edi
push 0
push dword [eax + 0x2a3d8]
call fcn.0044c8d0
mov ecx, dword [eax*4 + 0x62cad0]
call fcn.0045e6a0
jmp 0x4a4ecc
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x31c], xmm0
mov dword [ebp - 0x2d8], eax
call fcn.0044c8d0
cmp eax, 6
jne 0x4a48c8
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.0045e6a0
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
cmp eax, 7
jne 0x4a4944
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.0045e6a0
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
cmp eax, 0xc
jne 0x4a49c8
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
subss xmm0, dword [0x5d0048]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d0]
call fcn.0045e6a0
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
test eax, eax
jne 0x4a4ecc
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d4]
call fcn.0045e6a0
call fcn.00565b3a
and eax, reloc.WS2_32.dll_closesocket
jns 0x4a4a51
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x4a4ecc
test byte [0x621818], 2
je 0x4a4ecc
movss xmm0, dword [ebp - 0x318]
sub esp, 0xc
addss xmm0, dword [0x5d0058]
mov ecx, dword [ebp - 0x2d8]
mov eax, esp
movss dword [ebp - 0x318], xmm0
movq xmm0, qword [ebp - 0x31c]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x62ba24]
call fcn.00519760
mov eax, dword [esi + 0x168]
sub esp, 0x10
cmp dword [eax + 0x1c4], 4
mov eax, esp
push 1
mov dword [eax], 0x3f800000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x3e5cdcde
jne 0x4a4ae2
mov dword [eax + 4], 0x3e70f0f2
mov ecx, dword [0x62ba24]
call fcn.00519380
jmp 0x4a4ecc
mov dword [eax + 4], 0x3f800000
mov ecx, dword [0x62ba24]
call fcn.00519380
jmp 0x4a4ecc
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x2d0], xmm0
mov dword [ebp - 0x2c8], eax
call fcn.0044c8d0
cmp eax, 0xc
jne 0x4a4c68
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d3d90]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d3d8c]
addss xmm0, dword [ebp - 0x2d0]
movss dword [ebp - 0x2d8], xmm0
movss dword [ebp - 0x2d0], xmm0
call fcn.00565b3a
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d3d90]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d3d8c]
addss xmm0, dword [ebp - 0x2c8]
movss dword [ebp - 0x2c8], xmm0
movq xmm0, qword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2c8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba24]
call fcn.00519760
cvttss2si ecx, dword [ebp - 0x2d8]
sub esp, 0x10
movss xmm1, dword [0x5d5728]
lea eax, [ecx + 0x50]
cdq
idiv dword [ebp - 0x2a4]
movzx eax, dl
mov dword [ebp - 0x2d8], eax
mov eax, ecx
cdq
mov ecx, 0xff
idiv ecx
mov ecx, esp
movzx eax, dl
mov edx, dword [ebp - 0x2d8]
shl eax, 8
or edx, eax
shl edx, 8
or edx, 0x370000ff
mov eax, edx
shr eax, 0x10
movzx eax, al
push 1
movd xmm0, eax
mov eax, edx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [ecx], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, dl
shr edx, 0x18
mulss xmm0, xmm1
movss dword [ecx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 8], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ecx + 0xc], xmm0
mov ecx, dword [0x62ba24]
call fcn.00519380
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
test eax, eax
jne 0x4a4ce3
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x164]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.0045e6a0
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
cmp eax, 1
jne 0x4a4d5f
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x164]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d0]
call fcn.0045e6a0
jmp 0x4a4ecc
mov ecx, edi
call fcn.0044c8d0
cmp eax, 0xd
jne 0x4a4ddb
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x5d0084]
movss dword [esp], xmm0
call fcn.004ac560
mov eax, dword [0x62b2d8]
mov ecx, dword [esi + 0x164]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.0045e6a0
jmp 0x4a4ecc
call fcn.00565b3a
and eax, reloc.WS2_32.dll_closesocket
jns 0x4a4dee
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x4a4ecc
test byte [0x621818], 2
je 0x4a4ecc
call fcn.00565b3a
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x2d0]
movups xmmword [ebp - 0x360], xmm0
call fcn.00565b3a
movups xmm1, xmmword [ebp - 0x360]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5d0bb8]
divss xmm0, dword [0x5d3e8c]
subss xmm0, dword [0x5d0bd8]
addss xmm0, dword [ebp - 0x2c8]
movss dword [ebp - 0x2c8], xmm0
movss xmm0, dword [ebp - 0x2cc]
addss xmm0, dword [0x5d3da4]
mov eax, dword [ebp - 0x2c8]
unpcklps xmm1, xmm0
movq qword [ecx], xmm1
mov dword [ecx + 8], eax
mov ecx, dword [0x62ba3c]
call fcn.0051a8e0
sub esp, 0x10
mov eax, esp
push 1
mov dword [eax], 0x3f800000
mov dword [eax + 4], 0x3f800000
mov dword [eax + 8], 0x3f800000
mov dword [eax + 0xc], 0x3e5cdcde
mov ecx, dword [0x62ba3c]
call fcn.0051a4d0
cmp dword [0x62ba68], 2
jne 0x4a4f93
mov ecx, edi
call fcn.0044c8d0
test eax, eax
jne 0x4a4f93
test byte [0x621818], 2
je 0x4a4f93
mov eax, dword [esi + 0x168]
sub esp, 0x1c
movss xmm0, dword [edi + 0x118]
mov ecx, esi
movss xmm1, dword [edi + 0x11c]
movss xmm2, dword [edi + 0x114]
cmp dword [eax + 0x1c4], 4
addss xmm0, dword [0x5d0058]
mov dword [esp + 0x18], 0x41f00000
mov dword [esp + 0x14], 0x3e4ccccd
jne 0x4a4f61
mov dword [esp + 0x10], 0x3e4ccccd
mov dword [esp + 0xc], 0x3f800000
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
call fcn.004a1020
jmp 0x4a4f93
mov dword [esp + 0x10], 0x3f800000
mov dword [esp + 0xc], 0x3f800000
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss dword [esp], xmm2
call fcn.004a1020
jmp 0x4a4f93
mov dword [edi + 0x160], 1
mov ecx, dword [esi + 0x1c]
call fcn.0044e0d0
movss xmm3, dword [0x5d5860]
mov edi, eax
test edi, edi
jne 0x4a4570
mov ecx, dword [esi + 0x1c]
call fcn.0044e020
mov edi, eax
test edi, edi
je 0x4a5000
nop dword [eax + eax]
cmp dword [edi + 0x160], 0
je 0x4a4ff2
mov ecx, dword [esi + 0x1c]
push edi
call fcn.0044e210
cmp dword [edi + 0x16c], 0xffffffff
jle 0x4a4fea
mov ecx, dword [esi + 4]
push edi
push dword [edi + 0x170]
call fcn.004f4230
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov ecx, dword [esi + 0x1c]
call fcn.0044e0d0
mov edi, eax
test edi, edi
jne 0x4a4fc0
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0x118]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xdc], 0x3f800000
mov dword [ebp - 0xf0], 0x3f800000
mov dword [ebp - 0x104], 0x3f800000
mov dword [ebp - 0x118], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
cmp dword [0x62ba68], 0
jne 0x4a51d1
cmp dword [0x60f48c], 0
je 0x4a51d1
mov ecx, dword [0x62ba54]
call fcn.0052b6a0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba54]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0052b620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba58]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0052b620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba5c]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0052b620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba60]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0052b620
mov eax, dword [0x62b2d8]
push 0
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea ecx, [ebp - 0x370]
call fcn.0044e020
test eax, eax
je 0x4a5242
nop dword [eax]
nop word [eax + eax]
push dword [esi + 0x14c]
mov ecx, eax
push dword [esi + 0x148]
call fcn.00468130
lea ecx, [ebp - 0x370]
call fcn.0044e0d0
test eax, eax
jne 0x4a5220
mov eax, dword [0x62b2d8]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 0
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
lea edx, [ebp - 0x118]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xdc], 0x3f800000
mov dword [ebp - 0xf0], 0x3f800000
mov dword [ebp - 0x104], 0x3f800000
mov dword [ebp - 0x118], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov ecx, dword [0x62ba20]
call fcn.00519610
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba20]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba24]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba28]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
mov ecx, dword [0x62ba2c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba30]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba34]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba3c]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005199b0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba38]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.005188e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba40]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0051bd60
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba48]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0051ab00
sub esp, 0x40
mov eax, esp
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba4c]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.00521090
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba50]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.004f4b70
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x62ba44]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xb8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xa8]
movups xmmword [eax + 0x30], xmm0
call fcn.0051ce20
mov eax, dword [0x62b2d8]
push 1
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 1
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x62b2d8]
push 2
push 9
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp dword [0x62ba7c], 0
mov edi, eax
je 0x4a57b5
cmp dword [esi + 0x288], 0
je 0x4a57b5
mov ecx, dword [0x62b2d8]
push 0
call fcn.004584a0
mov ecx, edi
mov esi, eax
sub ecx, dword [0x62ba7c]
jne 0x4a5723
lea eax, [ebp - 0x98]
push str.FPS_38
push eax
call fcn.0043d360
add esp, 8
jmp 0x4a5741
xor edx, edx
mov eax, 0x3e8
div ecx
push eax
lea eax, [ebp - 0x98]
push str.FPS__d
push eax
call fcn.0043d360
add esp, 0xc
mov ecx, dword [0x62b2d8]
call fcn.00459f10
mov ecx, dword [0x62b2d8]
sub eax, 0xb4
mov dword [ebp - 0x320], eax
call fcn.00459f00
mov ecx, dword [0x62b2d8]
sub eax, 0xc
mov dword [ebp - 0x31c], eax
call fcn.00459f10
mov ecx, dword [0x62b2d8]
sub eax, 0x82
mov dword [ebp - 0x318], eax
call fcn.00459f00
mov dword [ebp - 0x314], eax
mov ecx, esi
movups xmm0, xmmword [ebp - 0x320]
push 0
lea eax, [ebp - 0x98]
push eax
push 0xffffffffffffffff
push 0
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.00451b60
push str.BBOClient::Draw_13__n
mov ecx, 0x62b0ec
mov dword [0x62ba7c], edi
call fcn.004480d0
lea ecx, [ebp - 0x370]
call fcn.0044dc10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00556488
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret