Function at 0x44f270
Capabilities:
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bb359
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x368
mov eax, dword [0x4eac74]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movss xmm0, dword [0x4fff0c]
xorps xmm1, xmm1
mov esi, dword [0x500da8]
mulss xmm0, dword [0x4dfee0]
mov dword [ebp - 0x2d8], esi
inc dword [esi + 0x20c]
comiss xmm1, xmm0
movss dword [0x4fff0c], xmm0
jbe 0x44f2f0
mov dword [0x4fff0c], 0
xorps xmm0, xmm0
mulss xmm0, dword [0x4e0008]
push ecx
movss dword [esp], xmm0
call fcn.0043b460
mov eax, dword [esi + 8]
add esp, 4
fstp dword [ebp - 0x2c4]
movss xmm0, dword [ebp - 0x2c4]
mulss xmm0, dword [0x4fff0c]
mulss xmm0, dword [0x4dfe34]
movss dword [ebp - 0x2f4], xmm0
movq xmm0, qword [eax + 0x114]
movq qword [0x5012d8], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x5012e0], eax
cmp dword [esi + 0x210], 0xffffffff
je 0x44f3c8
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x44f3c8
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x44f3c8
mov edx, dword [0x4ffed8]
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 0x210]
jne 0x44f3af
test edx, edx
jne 0x44f3af
movq xmm0, qword [ecx + 0x114]
movq qword [0x5012d8], xmm0
mov eax, dword [ecx + 0x11c]
mov dword [0x5012e0], eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], edx
je 0x44f3af
mov eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x44f3c8
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x44f372
mov ecx, esi
call fcn.0045b870
mov eax, dword [0x4ffd6c]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x20]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0xa8]
mov eax, dword [0x4ffd6c]
push 1
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x4ffd6c]
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 [esi + 0x1f4]
lea eax, [ebp - 0x180]
addss xmm0, dword [ebp - 0x2f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00403af6
movss xmm0, dword [esi + 0x1fc]
lea eax, [ebp - 0x268]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00403a5a
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x180]
push eax
push eax
call fcn.00403085
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x118]
push eax
push eax
call fcn.00403085
mov eax, dword [0x4ffd6c]
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 [0x4fff08]
cmp eax, 1
je 0x44f595
cmp eax, 3
je 0x44f5ea
cmp eax, 2
je 0x44f5ea
mov eax, dword [0x4ffd6c]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
cmp dword [0x4fff08], 4
mov ecx, dword [esi + 0xa8]
jne 0x44f591
mov eax, dword [esi + 0x168]
push dword [eax + 0x12c]
jmp 0x44f5c2
push 0
jmp 0x44f5c2
cmp dword [esi + 0x288], 0
je 0x44f5ea
mov eax, dword [0x4ffd6c]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [esi + 0x154]
mov ecx, dword [esi + 0xa8]
mov eax, dword [0x4ffd6c]
push dword [eax + 0x2a3d8]
call fcn.00442530
mov eax, dword [0x4ffd6c]
push 1
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x4ffd6c]
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x4ffd6c]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x6e4]
push eax
push 0
push ecx
mov edx, dword [ecx]
call dword [edx + 0xb0]
xor edi, edi
cmp dword [esi + 0x610], edi
jle 0x44f7c1
lea ecx, [esi + 0x5fc]
lea eax, [esi + 0x5b0]
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2d4], eax
nop dword [eax]
cmp dword [0x4fff08], 2
jne 0x44f7c1
test byte [0x4fd630], 2
je 0x44f7c1
movss xmm0, dword [0x4e00b0]
ucomiss xmm0, dword [eax + 4]
lahf
test ah, 0x44
jnp 0x44f79c
movss xmm2, dword [0x4e0130]
xorps xmm3, xmm3
push ecx
mov edx, 1
mov dword [esp], 0x40000000
lea ecx, [ebp - 0x1e8]
call fcn.0043a160
mov eax, dword [ebp - 0x2d4]
lea edx, [ebp - 0x1e8]
add esp, 4
mov dword [ebp - 0x198], 0x3f800000
mov dword [ebp - 0x190], 0x3f000000
mov dword [ebp - 0x1c4], 0
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x2b8]
movq qword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1bc], 0
movss xmm0, dword [eax]
movzx eax, byte [esi + edi + 0x5ec]
movss dword [ebp - 0x19c], xmm0
push edx
movd xmm0, eax
movzx eax, byte [esi + edi + 0x5f1]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1e4], xmm0
movd xmm0, eax
movzx eax, byte [esi + edi + 0x5f6]
lea esi, [edi + 2]
cvtdq2ps xmm0, xmm0
push esi
movss dword [ebp - 0x1e0], xmm0
movd xmm0, eax
mov eax, dword [0x4ffd6c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1dc], xmm0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov eax, dword [0x4ffd6c]
push 1
push esi
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov esi, dword [ebp - 0x2d8]
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [ebp - 0x2d4]
inc edi
add ecx, 4
add eax, 0xc
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2d4], eax
cmp edi, dword [esi + 0x610]
jl 0x44f660
xor edi, edi
cmp dword [0x4fff08], 2
jne 0x44f7d5
test byte [0x4fd630], 2
jne 0x44f7ef
mov eax, dword [0x4ffd6c]
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 0x44f7c3
xor eax, eax
cmp dword [esi + 0x610], eax
jle 0x44f817
lea ecx, [esi + 0x5b4]
mov dword [ecx], 0x447a0000
inc eax
add ecx, 0xc
cmp eax, dword [esi + 0x610]
jl 0x44f805
movss xmm0, dword [esi + 0x1f4]
lea eax, [ebp - 0x180]
addss xmm0, dword [ebp - 0x2f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00403af6
movss xmm0, dword [0x4dffe0]
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x4e0020]
movss dword [ebp - 0x2b8], xmm0
cmp eax, 1
jne 0x44f867
movaps xmm0, xmm1
movss dword [ebp - 0x2b8], xmm0
cmp eax, 2
jne 0x44f877
movaps xmm0, xmm1
movss dword [ebp - 0x2b8], xmm0
sub esp, 0xc
lea eax, [ebp - 0x2a8]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call fcn.004039dc
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x180]
push eax
push eax
call fcn.00403085
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x4dff80]
cmp eax, 1
jne 0x44f8ca
movss xmm1, dword [0x4e0038]
cmp eax, 2
jne 0x44f8d7
movss xmm1, dword [0x4e0008]
movss xmm2, dword [0x4e00f4]
lea eax, [ebp - 0xd8]
movss xmm0, dword [esi + 0x204]
sub esp, 0xc
addss xmm1, dword [0x5012dc]
mulss xmm0, xmm2
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x200]
mulss xmm1, xmm2
mulss xmm0, xmm2
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
push eax
call fcn.004039dc
movss xmm0, dword [esi + 0x1f4]
push ecx
movss dword [esp], xmm0
call fcn.0043b460
fstp dword [ebp - 0x2c4]
movss xmm0, dword [ebp - 0x2c4]
mulss xmm0, dword [ebp - 0x2b8]
addss xmm0, dword [ebp - 0xa8]
movss dword [ebp - 0x304], xmm0
movss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
call fcn.0043b430
movss xmm1, dword [ebp - 0xa0]
add esp, 4
mov eax, dword [esi + 0x290]
fstp dword [ebp - 0x2c4]
movss xmm0, dword [ebp - 0x2c4]
mulss xmm0, dword [ebp - 0x2b8]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1fc]
movss dword [ebp - 0x2f4], xmm1
cmp eax, 1
jne 0x44f9b6
movss xmm0, dword [0x4e00f0]
cmp eax, 2
jne 0x44f9c3
movss xmm0, dword [0x4e00e4]
push ecx
lea eax, [ebp - 0x268]
movss dword [esp], xmm0
push eax
call fcn.00403a5a
push ecx
lea eax, [ebp - 0x228]
mov dword [esp], 0x40490fdb
push eax
call fcn.00403af6
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x180]
push eax
push eax
call fcn.00403085
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x228]
push eax
push eax
call fcn.00403085
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0xd8]
push eax
push eax
call fcn.00403085
mov eax, dword [0x4ffd6c]
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 - 0x2f4]
lea ecx, [esi + 0x434]
xorps xmm0, xmmword [0x4e02e0]
sub esp, 0xc
movss xmm1, dword [ebp - 0x304]
mov eax, esp
xorps xmm1, xmmword [0x4e02e0]
movss dword [ebp - 0x11c], xmm0
movss xmm0, dword [0x5012dc]
mov edi, dword [ebp - 0x11c]
unpcklps xmm1, xmm0
movq qword [eax], xmm1
movq qword [ebp - 0x310], xmm1
mov dword [eax + 8], edi
call fcn.0044b180
movss xmm1, dword [esi + 0x1f4]
sub esp, 0xc
movq xmm0, qword [ebp - 0x310]
mov eax, esp
xorps xmm1, xmmword [0x4e02e0]
movq qword [eax], xmm0
mov dword [eax + 8], edi
call fcn.00443e70
mov eax, dword [0x4ffd6c]
lea edx, [ebp - 0x118]
mov dword [ebp - 0xe0], 0
add esp, 0xc
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
mov ecx, dword [eax]
push 0x100
push eax
call dword [ecx + 0x94]
cmp dword [esi + 0x210], 0xffffffff
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x164]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x2d4], eax
je 0x44fc23
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x44fc23
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x44fc23
mov edx, dword [0x4ffed8]
nop word [eax + eax]
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 0x210]
jne 0x44fc0a
test edx, edx
jne 0x44fc0a
mov edi, dword [ecx + 0x164]
mov dword [ebp - 0x2e4], edi
mov edi, dword [ecx + 0x168]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x2d4], edi
cmp dword [ecx + 0xc], edx
je 0x44fc0a
mov eax, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x44fc23
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x44fbd0
mov ecx, dword [0x4fff08]
mov edi, 0x4ebd74
nop
test ecx, ecx
jne 0x44fd8c
cmp dword [esi + 0x2a4], 1
jge 0x44fd8c
mov edx, dword [edi - 4]
mov eax, dword [ebp - 0x2e4]
sub eax, edx
mov dword [ebp - 0x2c4], edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x44fd7d
mov edx, dword [edi]
mov eax, dword [ebp - 0x2d4]
sub eax, edx
mov dword [ebp - 0x2bc], edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x44fd7d
call fcn.004a5b0a
movd xmm0, dword [ebp - 0x2c4]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, dword [0x4e0008]
mulss xmm1, dword [0x4e0008]
divss xmm1, dword [0x4e00c4]
addss xmm1, dword [0x4dfdf8]
addss xmm1, xmm0
movq qword [ebp - 0x300], xmm1
call fcn.004a5b0a
movd xmm0, dword [ebp - 0x2bc]
mov ecx, esi
movss xmm1, dword [ebp - 0x300]
cvtdq2ps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mulss xmm0, dword [0x4e0008]
mulss xmm2, dword [0x4e0008]
divss xmm2, dword [0x4e00c4]
addss xmm2, dword [0x4dfdf8]
addss xmm2, xmm0
movss dword [ebp - 0x12c], xmm2
call fcn.0045a470
mov ecx, dword [0x4fff2c]
movq xmm1, qword [ebp - 0x300]
mov eax, dword [ebp - 0x12c]
unpcklps xmm1, xmm0
movq qword [ecx + 0x14], xmm1
mov dword [ecx + 0x2c], 1
mov dword [ecx + 0x1c], eax
call fcn.004a5b0a
and eax, 0x80000001
jns 0x44fd50
dec eax
or eax, 0xfffffffe
add eax, 1
mov ecx, dword [0x4fff2c]
je 0x44fd61
movups xmm0, xmmword [0x4df560]
jmp 0x44fd68
movups xmm0, xmmword [0x4df570]
sub esp, 0x10
mov eax, esp
push 1
movups xmmword [eax], xmm0
call fcn.004882e0
mov ecx, dword [0x4fff08]
add edi, 0x50
cmp edi, 0x4ec4f4
jl 0x44fc30
cmp dword [esi + 0x290], 0
jne 0x45012f
test byte [0x4fd630], 1
je 0x45012f
cmp ecx, 1
je 0x450098
cmp ecx, 3
je 0x450098
cmp ecx, 2
je 0x450098
push 1
push 0x1c
cmp ecx, 4
jne 0x44ff8f
mov eax, dword [esi + 0x2a4]
sub eax, 1
je 0x44fef2
sub eax, 1
je 0x44fe70
sub eax, ecx
mov dword [ebp - 0x2c0], 0x41f00000
mov eax, dword [0x4ffd6c]
mov dword [ebp - 0x2b8], 0x428c0000
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
je 0x44fe92
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0xff5a93f1
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2c0]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b8]
jmp 0x450119
mov eax, dword [0x4ffd6c]
mov dword [ebp - 0x2c0], 0x41a00000
mov dword [ebp - 0x2b8], 0x425c0000
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0xff9696be
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2c0]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b8]
jmp 0x450119
mov eax, dword [0x4ffd6c]
mov dword [ebp - 0x2c0], 0x41f00000
mov dword [ebp - 0x2b8], 0x428c0000
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0xff6e738f
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0xff000000
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2c0]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b8]
jmp 0x450119
mov eax, dword [0x4ffd6c]
mov dword [ebp - 0x2c4], 0x41f00000
mov dword [ebp - 0x2bc], 0x42c80000
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
movss xmm1, dword [esi + 0x74c]
addss xmm1, dword [0x4dfe98]
divss xmm1, dword [0x4dff10]
movaps xmm0, xmm1
mulss xmm0, dword [0x4e0070]
cvttss2si eax, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x4e0088]
mov dword [ebp - 0x2b8], eax
mulss xmm0, dword [0x4e007c]
mov eax, dword [0x4ffd6c]
cvttss2si ecx, xmm1
mov esi, dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x2b8]
or eax, 0xffffff00
shl eax, 8
mov edi, dword [esi]
cvttss2si edx, xmm0
mov dword [ebp - 0x2b8], eax
movzx eax, dl
mov edx, dword [ebp - 0x2b8]
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 [0x4ffd6c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2c4]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2bc]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov esi, dword [ebp - 0x2d8]
jmp 0x45012f
mov eax, dword [0x4ffd6c]
push 1
push 0x1c
mov dword [ebp - 0x2c4], 0x41a00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2bc], 0x42340000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0xff00001e
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2c4]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2bc]
mov eax, dword [0x4ffd6c]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 3
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4fff08]
cmp eax, 1
je 0x4501d9
cmp eax, 3
je 0x4501d9
push dword [ebp - 0x2d4]
push dword [ebp - 0x2e4]
cmp eax, 4
jne 0x45017b
mov ecx, dword [esi + 0x168]
call fcn.00492710
jmp 0x450208
cmp eax, 2
jne 0x45018d
mov ecx, dword [esi + 0x16c]
call fcn.004840c0
jmp 0x450208
mov eax, dword [esi + 0x158]
movq xmm0, qword [ebp - 0x310]
mov ecx, dword [ebp - 0x11c]
movq qword [eax + 0x184], xmm0
mov dword [eax + 0x18c], ecx
mov ecx, dword [esi + 0x158]
mov eax, dword [esi + 0x1f4]
mov dword [ecx + 0x190], eax
mov ecx, dword [esi + 0x158]
call fcn.0046bcf0
mov ecx, dword [esi + 0x158]
call fcn.0046f890
jmp 0x450208
mov eax, dword [0x4ffd6c]
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 + 0x164]
push dword [ebp - 0x2e4]
call fcn.00465ce0
mov eax, dword [esi + 0x160]
push 2
push 0x16
mov dword [eax + 8], 0
mov eax, dword [0x4ffd6c]
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x4fff08]
cmp eax, 1
je 0x45026e
cmp eax, 3
je 0x45026e
cmp eax, 4
je 0x450267
cmp eax, 2
je 0x450267
mov ecx, esi
call fcn.0045a350
jmp 0x45026e
mov ecx, esi
call fcn.004598d0
lea ecx, [ebp - 0x350]
call fcn.00434b20
mov dword [ebp - 4], 0
xorps xmm2, xmm2
movss xmm0, dword [esi + 0x1f4]
movsd xmm1, qword [0x4dff98]
cvtps2pd xmm0, xmm0
comisd xmm2, xmm0
jbe 0x4502aa
nop dword [eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x4502a0
comisd xmm0, xmm1
jb 0x4502ba
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x4502b0
mov ecx, dword [esi + 0x18]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x1f4], xmm0
cmp dword [ecx + 0xc], 0
je 0x4523cf
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov edi, dword [eax + 8]
mov dword [ebp - 0x2c4], edi
test edi, edi
je 0x4523cf
nop dword [eax]
movss xmm0, dword [edi + 0x11c]
sub esp, 8
addss xmm0, dword [ebp - 0x2f4]
movss xmm1, dword [edi + 0x114]
addss xmm1, dword [ebp - 0x304]
movss dword [ebp - 0x2b8], xmm0
xorps xmm0, xmmword [0x4e02e0]
movss dword [esp + 4], xmm0
movss dword [ebp - 0x2bc], xmm1
movss dword [esp], xmm1
call fcn.00434530
movsd xmm1, qword [0x4dff98]
xorps xmm2, xmm2
fstp qword [ebp - 0x2d0]
movsd xmm0, qword [ebp - 0x2d0]
add esp, 8
comisd xmm2, xmm0
jbe 0x45036a
nop dword [eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x450360
comisd xmm0, xmm1
jb 0x45037a
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x450370
movsd xmm2, qword [0x4dff78]
cvtsd2ss xmm0, xmm0
subss xmm0, dword [esi + 0x1f4]
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x4503aa
nop dword [eax + eax]
subsd xmm0, xmm1
comisd xmm0, xmm2
ja 0x4503a0
movsd xmm2, qword [0x4e0118]
comisd xmm2, xmm0
jb 0x4503ca
nop dword [eax + eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
jae 0x4503c0
cvtsd2ss xmm0, xmm0
push ecx
movss dword [esp], xmm0
call fcn.0044b4c0
movss xmm0, dword [0x4dfec0]
add esp, 4
fstp dword [ebp - 0x2c0]
comiss xmm0, dword [ebp - 0x2c0]
ja 0x450497
movss xmm0, dword [ebp - 0x2bc]
push ecx
movss dword [esp], xmm0
call fcn.0044b4c0
movss xmm0, dword [0x4e0014]
add esp, 4
fstp dword [ebp - 0x2c0]
comiss xmm0, dword [ebp - 0x2c0]
jbe 0x450451
movss xmm0, dword [ebp - 0x2b8]
push ecx
movss dword [esp], xmm0
call fcn.0044b4c0
movss xmm0, dword [0x4e0014]
add esp, 4
fstp dword [ebp - 0x2c0]
comiss xmm0, dword [ebp - 0x2c0]
ja 0x450497
movss xmm0, dword [ebp - 0x2bc]
call fcn.0044b4f0
comiss xmm0, dword [0x4e0040]
jae 0x45048c
movss xmm0, dword [ebp - 0x2b8]
call fcn.0044b4f0
comiss xmm0, dword [0x4e0040]
jae 0x45048c
mov dword [edi + 0x1a8], 0
jmp 0x4523b1
inc dword [edi + 0x1a8]
jmp 0x4523b1
movss xmm1, dword [edi + 0x108]
lea eax, [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
mov dword [ebp - 0x2cc], eax
movss dword [esp], xmm0
call fcn.00457ae0
cmp dword [edi + 0x178], 0xffffffff
jle 0x45132e
mov edx, dword [edi + 0x194]
test edx, edx
je 0x45051d
mov eax, dword [edx + 0x108]
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x45051d
mov eax, dword [0x4ffd6c]
push dword [ebp - 0x2bc]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
jmp 0x45054a
mov eax, dword [0x4ffd6c]
push dword [edx + 0x108]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [edi + 0x178]
inc dword [0x4fff14]
mov dword [0x4ffee4], eax
mov eax, dword [0x4ffd6c]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
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 0x45074e
cmp eax, 1
jne 0x45069c
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x45069c
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2bc]
mov eax, dword [0x4ffd6c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x128]
cdq
sub eax, edx
mov dword [ebp - 0x2b8], ecx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x45063b
mov dword [edi + 0x19c], 0
mov ecx, dword [esi + 0x128]
mov dword [ebp - 0x2b8], ecx
cdq
idiv dword [ecx + 0x160]
cmp dword [ecx + 0x15c], 0
je 0x450681
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45066f
nop dword [eax + eax]
cmp dword [ecx + 4], edx
je 0x450688
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450660
mov ecx, dword [ebp - 0x2b8]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
jmp 0x4509bd
mov ecx, dword [ebp - 0x2b8]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x4509bd
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4509f3
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2bc]
mov eax, dword [0x4ffd6c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x12c]
cdq
sub eax, edx
mov dword [ebp - 0x2b8], ecx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x45070e
mov dword [edi + 0x19c], 0
mov ecx, dword [esi + 0x12c]
mov dword [ebp - 0x2b8], ecx
cdq
idiv dword [ecx + 0x160]
cmp dword [ecx + 0x15c], 0
je 0x450681
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45066f
cmp dword [ecx + 4], edx
je 0x450688
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450736
jmp 0x45066f
cmp dword [edi + 0x198], 0
je 0x4508f6
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2c0], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4509f3
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 - 0x2c0]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2bc]
mov eax, edx
push eax
mov dword [ebp - 0x2b8], eax
mov eax, dword [0x4ffd6c]
push dword [eax + 0x2a3d8]
call fcn.0043f080
mov esi, dword [ebp - 0x2d8]
mov eax, dword [esi + 0x124]
cmp dword [eax + 0x15c], 0
je 0x450819
mov eax, dword [eax + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x450807
mov edx, dword [ebp - 0x2b8]
cmp dword [ecx + 4], edx
je 0x4508e2
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4507f4
mov ecx, dword [esi + 0x124]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
movss xmm0, dword [edi + 0x11c]
sub esp, 8
movss xmm3, dword [edi + 0x114]
mov ecx, esi
movss xmm2, dword [edi + 0x108]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp], xmm0
push eax
call fcn.00457ef0
mov eax, dword [ebp - 0x2b8]
cmp eax, 1
je 0x450865
cmp eax, 8
jne 0x4509f3
cmp dword [edi + 0x220], eax
je 0x4509f3
call fcn.004a5b0a
mov esi, eax
and esi, reloc.WS2_32.dll_closesocket
jns 0x450885
dec esi
or esi, 0xfffffffc
inc esi
mov edx, dword [ebp - 0x2b8]
sub esp, 0xc
movq xmm0, qword [edi + 0x114]
mov ecx, dword [edi + 0x11c]
movss xmm2, dword [0x4e0040]
mov dword [edi + 0x220], edx
mov edx, esp
movq qword [edx], xmm0
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x2d8]
mov ecx, dword [ecx + esi*4 + 0x4e0]
call fcn.00443e10
mov eax, dword [ebp - 0x2d8]
mov ecx, dword [eax + esi*4 + 0x4e0]
call fcn.00443c80
mov esi, dword [ebp - 0x2d8]
jmp 0x4509f3
mov ecx, dword [esi + 0x124]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x45081b
mov ecx, dword [esi + 0x120]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4509f3
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 - 0x2bc]
mov eax, dword [0x4ffd6c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
mov eax, dword [ebp - 0x2d8]
mov ecx, dword [eax + 0x120]
mov eax, dword [edi + 0x190]
cdq
and edx, 3
mov dword [ebp - 0x2bc], ecx
add eax, edx
sar eax, 2
sub eax, esi
add eax, edi
cdq
idiv dword [ecx + 0x160]
cmp dword [ecx + 0x15c], 0
je 0x4509b5
mov esi, dword [ecx + 0x154]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4509a9
cmp dword [ecx + 4], edx
je 0x450a60
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450996
mov ecx, dword [ebp - 0x2bc]
mov dword [ecx + 0x158], esi
xor eax, eax
mov esi, dword [ebp - 0x2d8]
movss xmm0, dword [edi + 0x11c]
sub esp, 8
movss xmm3, dword [edi + 0x114]
mov ecx, esi
movss xmm2, dword [edi + 0x108]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp], xmm0
push eax
call fcn.00457ef0
cmp dword [edi + 0x254], 0xffffffff
jle 0x450c69
inc dword [edi + 0x258]
mov eax, dword [edi + 0x258]
cmp eax, 0x1e
jle 0x450a1b
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x450c69
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x35c], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x4dfef0]
mov dword [ebp - 0x2dc], eax
jb 0x450a74
mov dword [ebp - 0x2b8], 0xff
jmp 0x450aa3
mov ecx, dword [ebp - 0x2bc]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x4509b7
comiss xmm1, xmm0
jb 0x450a85
mov dword [ebp - 0x2b8], 0
jmp 0x450aa3
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov dword [ebp - 0x2b8], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x4dfef0]
jb 0x450ac0
mov dword [ebp - 0x2c0], 0xff
jmp 0x450aec
comiss xmm1, xmm0
jb 0x450ad1
mov dword [ebp - 0x2c0], 0
jmp 0x450aec
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov dword [ebp - 0x2c0], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x4dfef0]
jb 0x450b0c
mov dword [ebp - 0x2bc], 0xff
jmp 0x450b3b
comiss xmm1, xmm0
jb 0x450b1d
mov dword [ebp - 0x2bc], 0
jmp 0x450b3b
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov dword [ebp - 0x2bc], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x4dfef0]
jb 0x450b53
mov eax, 0xff
jmp 0x450b71
comiss xmm1, xmm0
jb 0x450b5c
xor eax, eax
jmp 0x450b71
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2b8]
shl eax, 8
or eax, dword [ebp - 0x2c0]
shl eax, 8
or eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2b8], eax
call fcn.004a5b0a
mov ecx, dword [0x4ffec8]
sub esp, 0x10
movss xmm1, dword [0x4dfe28]
mov edx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x2dc]
mov dword [ecx + 0x2c], 1
push 5
mulss xmm0, dword [0x4dff10]
divss xmm0, dword [0x4e00c4]
addss xmm0, dword [0x4dfdf8]
addss xmm0, dword [ebp - 0x358]
movss dword [ebp - 0x358], xmm0
movq xmm0, qword [ebp - 0x35c]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 0x2b8]
shr eax, 0x10
movzx eax, al
movd xmm0, eax
mov eax, dword [ebp - 0x2b8]
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [edx], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x2b8]
cvtdq2ps xmm0, xmm0
movzx eax, al
mulss xmm0, xmm1
movss dword [edx + 4], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x2b8]
cvtdq2ps xmm0, xmm0
shr eax, 0x18
mulss xmm0, xmm1
movss dword [edx + 8], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [edx + 0xc], xmm0
call fcn.00489f10
cmp dword [edi + 0x26c], 0
je 0x450efd
mov eax, dword [edi + 0x19c]
cmp eax, 1
jne 0x450cfe
mov ecx, dword [esi + 0x128]
mov edx, dword [ecx + 0x160]
mov dword [ebp - 0x2dc], edx
test edx, edx
jle 0x450cfe
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2dc]
cmp dword [ecx + 0x15c], 0
je 0x450ce3
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x450cd1
cmp dword [ecx + 4], edx
je 0x450cea
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450cc2
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
jmp 0x450e95
mov ecx, dword [esi + 0x128]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x450e95
cmp eax, 2
jne 0x450d84
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2dc], eax
test eax, eax
jle 0x450d84
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2dc]
cmp dword [ecx + 0x15c], 0
je 0x450d69
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x450d57
cmp dword [ecx + 4], edx
je 0x450d70
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450d48
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
jmp 0x450e95
mov ecx, dword [esi + 0x12c]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x450e95
cmp dword [edi + 0x198], 0
je 0x450e2b
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2bc], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2dc], eax
test eax, eax
jle 0x450e2b
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]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2dc]
mov esi, edx
mov edx, dword [ebp - 0x2bc]
cmp dword [edx + 0x15c], 0
je 0x450e1c
mov eax, dword [edx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x450e10
cmp dword [ecx + 4], esi
je 0x450e20
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x450e01
mov eax, dword [edx + 0x154]
mov dword [edx + 0x158], eax
xor eax, eax
jmp 0x450e8f
mov dword [edx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x450e8f
mov eax, dword [esi + 0x120]
mov dword [ebp - 0x2bc], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2dc], eax
test eax, eax
jle 0x450ee5
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 - 0x2bc]
add eax, eax
add ecx, 0x150
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2dc]
push edx
call fcn.00434d00
mov esi, dword [ebp - 0x2d8]
movss xmm0, dword [edi + 0x11c]
sub esp, 8
movss xmm2, dword [edi + 0x108]
mov ecx, esi
mulss xmm2, dword [0x4e00f4]
movss xmm3, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp], xmm0
push eax
call fcn.00457c20
lea eax, [edi + 0x274]
test eax, eax
je 0x450ee5
push edi
mov ecx, esi
call fcn.0045a6b0
mov eax, dword [0x4ffd6c]
mov ecx, dword [edi + 0x26c]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
mov dword [ebp - 0x2dc], 0
lea esi, [edi + 0x34c]
mov edi, dword [ebp - 0x2dc]
cmp dword [esi], 0
je 0x450f26
push edi
push dword [ebp - 0x2cc]
mov ecx, esi
call fcn.0045cc10
inc edi
add esi, 0xd0
cmp edi, 2
jl 0x450f13
mov edi, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2e4]
mov esi, dword [ebp - 0x2d8]
sub eax, dword [edi + 0x164]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4523b1
mov eax, dword [ebp - 0x2d4]
sub eax, dword [edi + 0x168]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4523b1
or ecx, 0xffffffff
mov dword [ebp - 0x2b8], ecx
cmp edi, dword [esi + 0x10]
jne 0x450fa2
mov eax, 0x2aaaaaab
imul dword [esi + 0x20c]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
mov eax, 0xff50ff50
cmovne ecx, eax
mov dword [ebp - 0x2b8], ecx
movss xmm2, dword [0x4e00f4]
movss dword [ebp - 0x2bc], xmm2
cmp edi, dword [esi + 8]
jne 0x450fea
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [0x4dfef0]
movss dword [ebp - 0x2bc], xmm1
jb 0x450fea
movss dword [ebp - 0x2bc], xmm2
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x378], eax
movss xmm0, dword [ebp - 0x2bc]
mov byte [ebp - 4], 1
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x4dffc0]
addss xmm3, dword [0x4dfef0]
subss xmm1, dword [esi + 0x1f4]
movss xmm2, dword [edi + 0x114]
push 0
push dword [ebp - 0x2b8]
push ecx
movss dword [esp], xmm0
lea ecx, [edi + 0x1b0]
movss xmm0, dword [edi + 0x11c]
push ecx
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.00449060
push eax
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0
call fcn.00434c40
cmp byte [edi + 0x1d0], 0
je 0x451178
mov edx, str.Administrator
lea ecx, [edi + 0x1d0]
call fcn.004347b0
test eax, eax
je 0x4510ac
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x374], eax
push 1
mov byte [ebp - 4], 2
push 0xff64ff64
jmp 0x451112
mov edx, str.Moderator
lea ecx, [edi + 0x1d0]
call fcn.004347b0
test eax, eax
jne 0x4510f4
mov edx, str.Trial_Moderator
lea ecx, [edi + 0x1d0]
call fcn.004347b0
test eax, eax
jne 0x4510f4
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x370], eax
push 1
mov byte [ebp - 4], 4
push 0xff00bfff
jmp 0x451112
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x36c], eax
push 1
mov byte [ebp - 4], 3
push 0xffffff00
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x4dffc0]
addss xmm3, dword [0x4dff04]
subss xmm1, dword [esi + 0x1f4]
movss xmm0, dword [edi + 0x11c]
movss xmm2, dword [edi + 0x114]
push ecx
mov dword [esp], 0xbf800000
lea ecx, [edi + 0x1d0]
push ecx
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.00449060
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x350]
push eax
mov dword [eax + 0x118], 0x41a00000
call fcn.00434c40
xor eax, eax
mov dword [ebp - 0x2bc], eax
cmp edi, dword [esi + 0x10]
jne 0x4523b1
imul ecx, eax, 0xd0
mov dword [ebp - 0x2dc], ecx
cmp dword [ecx + edi + 0x34c], 0
je 0x451319
lea ecx, [ebp - 0x2b4]
call fcn.00438b10
lea ecx, [ebp - 0x140]
call fcn.00438b10
cmp dword [ebp - 0x2bc], 1
movss xmm0, dword [0x4dff14]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0xbe4ccccd
movss dword [ebp - 0x2b8], xmm0
jne 0x451200
movss xmm0, dword [0x4e0100]
movss dword [ebp - 0x2b8], xmm0
subss xmm0, dword [edi + 0x108]
call fcn.00443550
mulss xmm0, dword [0x4dfeb4]
movss dword [ebp - 0x2cc], xmm0
movss xmm0, dword [ebp - 0x2b8]
subss xmm0, dword [edi + 0x108]
call fcn.00443570
movss xmm3, dword [edi + 0x118]
movaps xmm2, xmm0
mulss xmm2, dword [0x4dfeb4]
push ecx
movss xmm0, dword [ebp - 0x2cc]
mov ecx, esi
addss xmm0, dword [edi + 0x11c]
movss xmm1, dword [edi + 0x108]
addss xmm3, dword [0x4dfed4]
addss xmm2, dword [edi + 0x114]
mulss xmm1, dword [0x4e00f4]
movss dword [esp], xmm0
call fcn.00457ae0
lea eax, [esi + 0x1b4]
push eax
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.00402a92
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x30c], eax
mov byte [ebp - 4], 5
movss xmm1, dword [0x4dffc0]
subss xmm1, dword [esi + 0x1f4]
movss xmm0, dword [ebp - 0x2ac]
movss xmm3, dword [ebp - 0x2b0]
movss xmm2, dword [ebp - 0x2b4]
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x2dc]
add ecx, 0x354
mov dword [esp], 0xbf800000
add ecx, edi
push ecx
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.00449060
push eax
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0
call fcn.00434c40
mov eax, dword [ebp - 0x2bc]
inc eax
mov dword [ebp - 0x2bc], eax
cmp eax, 2
jl 0x451180
jmp 0x4523b1
mov eax, dword [edi + 0x160]
cmp eax, 1
jne 0x451a53
mov eax, dword [0x4ffd6c]
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 0x451369
cmp eax, 8
jle 0x451369
push 2
jmp 0x45136b
push 1
mov eax, dword [0x4ffd6c]
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov ecx, dword [edi + 0x338]
mov edx, dword [edi + 0x180]
mov dword [ebp - 0x2c0], ecx
test ecx, ecx
jne 0x4513b0
mov eax, dword [edi + 0x184]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x4fff30]
mov dword [ebp - 0x2c0], ecx
mov eax, dword [edi + 0x33c]
mov dword [ebp - 0x2b8], eax
test eax, eax
jne 0x4513d9
mov eax, dword [edi + 0x184]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x500260]
mov dword [ebp - 0x2b8], ecx
mov ecx, dword [edi + 0x340]
test ecx, ecx
jne 0x4513f6
mov eax, dword [edi + 0x184]
lea ecx, [edx + edx*2]
lea eax, [eax + ecx*2]
mov ecx, dword [eax*4 + 0x500590]
cmp edx, 0x1b
jne 0x451408
cmp dword [edi + 0x1ac], 0
jne 0x4516c9
cmp dword [edi + 0x1a4], 0
je 0x45144b
mov eax, dword [edi + 0x190]
cmp eax, 0x14
jle 0x45144b
test al, 1
je 0x4516c9
mov ecx, dword [ebp - 0x2c0]
test ecx, ecx
je 0x4516b1
mov eax, dword [ecx + 0x160]
test eax, eax
jle 0x4516b1
cdq
sub eax, edx
sar eax, 1
push eax
jmp 0x45169f
cmp dword [edi + 0x19c], 0
je 0x4514f2
test ecx, ecx
je 0x451491
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2cc], eax
test eax, eax
jle 0x451491
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2cc]
mov eax, dword [0x4ffd6c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
jmp 0x4514a9
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
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 + 0x500590]
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x4516c9
mov dword [edi + 0x19c], 0
mov dword [edi + 0x190], 0
jmp 0x4516c9
cmp dword [edi + 0x1a0], 0
je 0x4515ea
mov eax, dword [ebp - 0x2b8]
test eax, eax
je 0x45158a
add eax, 0x160
mov dword [ebp - 0x2cc], eax
cmp dword [eax], 0
jle 0x45158a
movd xmm1, dword [edi + 0x190]
cvtdq2ps xmm1, xmm1
push ecx
mov ecx, esi
movss xmm0, dword [edi + 0x11c]
mulss xmm1, dword [edi + 0x108]
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
divss xmm1, dword [0x4e0008]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [edi + 0x190]
mov ecx, dword [ebp - 0x2cc]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ecx]
mov eax, dword [0x4ffd6c]
mov ecx, dword [ebp - 0x2b8]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
jmp 0x4515a2
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
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 + 0x500260]
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 0x4516c9
mov dword [edi + 0x1a0], 0
jmp 0x4516c9
cmp dword [edi + 0x198], 0
je 0x45164c
mov eax, dword [ebp - 0x2b8]
test eax, eax
je 0x4516b1
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2cc], eax
test eax, eax
jle 0x4516b1
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 - 0x2b8]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2cc]
jmp 0x45169e
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x4516b1
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2cc], eax
test eax, eax
jle 0x4516b1
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 - 0x2c0]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2cc]
push edx
mov eax, dword [0x4ffd6c]
push dword [eax + 0x2a3d8]
call fcn.0043f080
jmp 0x4516c9
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
cmp dword [edi + 0x180], 0x1b
jne 0x45181b
cmp dword [edi + 0x1ac], 0
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x2f0], xmm0
xorps xmm0, xmm0
jne 0x451766
movss xmm1, dword [0x4dfe98]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2ec]
mov ecx, dword [0x4ffef8]
sub esp, 0xc
mov eax, esp
movss dword [ebp - 0x2ec], xmm0
movq xmm0, qword [ebp - 0x2f0]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004882c0
mov ecx, dword [0x4ffef8]
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
call fcn.004882e0
jmp 0x45181b
movss xmm1, dword [0x4dfed4]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2ec]
mov ecx, dword [0x4fff2c]
sub esp, 0xc
mov eax, esp
movss dword [ebp - 0x2ec], xmm0
movq xmm0, qword [ebp - 0x2f0]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004882c0
mov ecx, dword [0x4fff2c]
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
call fcn.004882e0
movq xmm0, qword [ebp - 0x2f0]
sub esp, 0xc
mov ecx, dword [0x4ffec8]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.00489ee0
mov ecx, dword [0x4ffec8]
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
call fcn.00489f10
cmp dword [edi + 0x254], 0xffffffff
jle 0x452278
inc dword [edi + 0x258]
mov eax, dword [edi + 0x258]
cmp eax, 0x1e
jle 0x451843
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x452278
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x368], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x4dfef0]
mov dword [ebp - 0x2cc], eax
jb 0x451888
mov dword [ebp - 0x2bc], 0xff
jmp 0x4518b7
comiss xmm1, xmm0
jb 0x451899
mov dword [ebp - 0x2bc], 0
jmp 0x4518b7
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov dword [ebp - 0x2bc], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x4dfef0]
jb 0x4518d4
mov dword [ebp - 0x2b8], 0xff
jmp 0x451900
comiss xmm1, xmm0
jb 0x4518e5
mov dword [ebp - 0x2b8], 0
jmp 0x451900
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov dword [ebp - 0x2b8], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x4dfef0]
jb 0x45191b
mov esi, 0xff
jmp 0x45193e
comiss xmm1, xmm0
jb 0x451924
xor esi, esi
jmp 0x45193e
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
mov esi, eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x4dfef0]
jb 0x451956
mov eax, 0xff
jmp 0x451974
comiss xmm1, xmm0
jb 0x45195f
xor eax, eax
jmp 0x451974
mulss xmm0, dword [0x4e009c]
addss xmm0, dword [0x4dfeb8]
call fcn.004b9550
movss xmm1, dword [0x4dff10]
or eax, 0x5f
shl eax, 8
xorps xmm0, xmm0
or eax, dword [ebp - 0x2bc]
shl eax, 8
or eax, dword [ebp - 0x2b8]
shl eax, 8
or eax, esi
mov dword [ebp - 0x2dc], eax
call fcn.0044b520
addss xmm0, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x2cc]
sub esp, 0xc
mov eax, esp
movss dword [ebp - 0x364], xmm0
movq xmm0, qword [ebp - 0x368]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x4ffec8]
call fcn.00489ee0
mov edx, dword [ebp - 0x2dc]
sub esp, 0x10
movss xmm1, dword [0x4dfe28]
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 [0x4ffec8]
call fcn.00489f10
jmp 0x452278
cmp eax, 0xe
je 0x452278
cmp eax, 0x17
je 0x452278
cmp eax, 6
jne 0x451a87
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xb0]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp eax, 0xc
jne 0x451aa9
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x118]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp eax, 0xd
jne 0x451abd
mov ecx, dword [edi + 0x17c]
mov ecx, dword [esi + ecx*4 + 0xe8]
jmp 0x451ac8
cmp eax, 0x14
jne 0x451af7
mov ecx, dword [esi + 0x10c]
mov eax, dword [0x4ffd6c]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
movss xmm0, dword [edi + 0x108]
addss xmm0, dword [0x4dfe50]
movss dword [edi + 0x108], xmm0
jmp 0x452278
cmp eax, 5
jne 0x451b19
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xd4]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp eax, 7
jne 0x451b70
mov cl, byte [edi + 0x18c]
cmp cl, 0xff
jne 0x451b46
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0xe4]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp cl, 5
jae 0x452278
mov eax, dword [0x4ffd6c]
movzx ecx, cl
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xb4]
call fcn.00442530
jmp 0x452278
cmp eax, 0x12
jne 0x451b9c
mov eax, dword [0x4ffd6c]
mov dword [edi + 0x108], 0
mov ecx, dword [esi + 0x110]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp eax, 0x13
jne 0x451bbe
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x114]
push 0
push dword [eax + 0x2a3d8]
call fcn.00442530
jmp 0x452278
cmp eax, 0xa
jne 0x451c09
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 [0x4fff24]
call fcn.004882c0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff24]
sub esp, 0x10
mov eax, esp
push 1
movups xmmword [eax], xmm0
call fcn.004882e0
jmp 0x452278
cmp eax, 0x11
jne 0x4520d5
mov eax, dword [edi + 0x238]
movss xmm1, dword [0x4dfef0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4e02c0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4e0008]
comiss xmm1, xmm0
movss dword [ebp - 0x2c0], xmm0
jbe 0x451c7e
call fcn.004a5b0a
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [esi + 0x20c]
mov esi, 0xa
mov ecx, edx
cdq
idiv esi
cmp ecx, edx
jge 0x451c7e
movss xmm0, dword [0x4dfef0]
movss dword [ebp - 0x2c0], xmm0
mov eax, dword [edi + 0x234]
test eax, eax
jne 0x451c9b
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
jmp 0x451d18
cmp eax, 1
jne 0x451d57
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x328], xmm0
movss xmm0, dword [0x4e0140]
mov dword [ebp - 0x320], eax
call fcn.0044b520
addss xmm0, dword [ebp - 0x328]
movss xmm1, dword [0x4dffe8]
movss dword [ebp - 0x328], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x320]
movss dword [ebp - 0x320], xmm0
movq xmm0, qword [ebp - 0x328]
mov eax, dword [ebp - 0x320]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff24]
call fcn.004882c0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff24]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.004882e0
jmp 0x452278
cmp eax, 2
jne 0x451ddd
movq xmm0, qword [edi + 0x114]
movss xmm1, dword [0x4dff10]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x134], xmm0
xorps xmm0, xmm0
call fcn.0044b520
addss xmm0, dword [ebp - 0x130]
mov ecx, dword [0x4ffec8]
sub esp, 0xc
mov eax, esp
movss dword [ebp - 0x130], xmm0
movq xmm0, qword [ebp - 0x134]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.00489ee0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4ffec8]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.00489f10
jmp 0x452278
cmp eax, 3
jne 0x451e99
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x31c], xmm0
movss xmm0, dword [0x4e0140]
mov dword [ebp - 0x314], eax
call fcn.0044b520
addss xmm0, dword [ebp - 0x31c]
movss xmm1, dword [0x4dffe8]
movss dword [ebp - 0x31c], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x314]
sub esp, 0xc
mov ecx, esp
movss dword [ebp - 0x314], xmm0
movq xmm0, qword [ebp - 0x31c]
mov eax, dword [ebp - 0x314]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff2c]
call fcn.004882c0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff2c]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.004882e0
jmp 0x452278
cmp eax, 4
jne 0x451f78
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x334], xmm0
movss xmm0, dword [ebp - 0x330]
addss xmm0, dword [0x4dff28]
mov dword [ebp - 0x32c], eax
movss dword [ebp - 0x2cc], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x334]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x2e0], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x32c]
movss xmm1, dword [ebp - 0x2cc]
sub esp, 0xc
mov ecx, esp
movss dword [ebp - 0x32c], xmm0
movq xmm0, qword [ebp - 0x2e0]
mov eax, dword [ebp - 0x32c]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff18]
call fcn.004882c0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff18]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.004882e0
jmp 0x452278
cmp eax, 5
jne 0x451ff6
movq xmm0, qword [edi + 0x114]
sub esp, 0xc
mov ecx, dword [edi + 0x11c]
mov eax, esp
movq qword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x120]
addss xmm0, dword [0x4dfebc]
movss dword [ebp - 0x120], xmm0
movq xmm0, qword [ebp - 0x124]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x4fff28]
call fcn.004882c0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff28]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.004882e0
jmp 0x452278
cmp eax, 6
jne 0x452278
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x340], xmm0
movss xmm0, dword [ebp - 0x33c]
addss xmm0, dword [0x4dfec4]
mov dword [ebp - 0x338], eax
movss dword [ebp - 0x2cc], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x340]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x2e0], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x338]
movss xmm1, dword [ebp - 0x2cc]
sub esp, 0xc
mov ecx, esp
movss dword [ebp - 0x338], xmm0
movq xmm0, qword [ebp - 0x2e0]
mov eax, dword [ebp - 0x338]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff10]
call fcn.00489130
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x4fff10]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2c0]
push eax
call fcn.00489160
jmp 0x452278
cmp eax, 8
jne 0x4520ff
mov eax, dword [0x4ffd6c]
movzx ecx, byte [edi + 0x18e]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xcc]
call fcn.00442530
jmp 0x452278
cmp eax, 3
jne 0x45210f
push dword [esi + 0x140]
jmp 0x4521a7
cmp eax, 4
jne 0x45211f
push dword [esi + 0x144]
jmp 0x4521a7
cmp eax, 0x10
jne 0x45215e
mov eax, dword [esi + 0x224]
test eax, eax
jle 0x452156
mov ecx, dword [esi + 0x138]
dec eax
mov dword [esi + 0x224], eax
mov eax, dword [edi + 0x190]
cdq
and edx, 3
add eax, edx
sar eax, 2
cdq
idiv dword [ecx + 0x160]
jmp 0x452267
mov ecx, dword [esi + 0x134]
jmp 0x45213b
mov ecx, 0x4d3ee4
lea eax, [edi + 0x1b0]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x452190
test dl, dl
je 0x45218c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x452190
add eax, 2
add ecx, 2
test dl, dl
jne 0x452170
xor eax, eax
jmp 0x452195
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4521a1
push dword [esi + 0x150]
jmp 0x4521a7
push dword [esi + 0x13c]
mov eax, dword [0x4ffd6c]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x4ffd6c]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x4ffd6c]
push 1
push 4
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov esi, dword [esi + 0x130]
mov eax, 0x55555556
imul dword [edi + 0x190]
mov ecx, dword [esi + 0x160]
mov eax, edx
add ecx, 0xa
shr eax, 0x1f
add eax, edx
cdq
idiv ecx
sub edx, 5
jns 0x452252
xor edx, edx
jmp 0x452265
cmp edx, 7
jle 0x452265
sub edx, 5
mov eax, 7
cmp edx, 7
cmovl edx, eax
mov ecx, esi
mov eax, dword [0x4ffd6c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043f080
mov eax, dword [ebp - 0x2e4]
mov esi, dword [ebp - 0x2d8]
cmp eax, dword [edi + 0x164]
jne 0x4523b1
mov eax, dword [ebp - 0x2d4]
cmp eax, dword [edi + 0x168]
jne 0x4523b1
or ecx, 0xffffffff
mov dword [ebp - 0x2bc], ecx
cmp edi, dword [esi + 0x10]
jne 0x4522d2
mov eax, 0x2aaaaaab
imul dword [esi + 0x20c]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
je 0x4522d2
mov dword [ebp - 0x2bc], 0xff50ff50
jmp 0x4522f5
mov eax, dword [esi + 0x210]
cmp eax, dword [edi + 0x17c]
jne 0x4522f5
cmp dword [0x4ffed8], 0
mov eax, 0xffff0050
cmove ecx, eax
mov dword [ebp - 0x2bc], ecx
cmp dword [edi + 0x218], 0
movss xmm0, dword [0x4e00f4]
movss dword [ebp - 0x2b8], xmm0
jle 0x452330
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x2b8], xmm1
push 0x12c
call fcn.00495ca1
add esp, 4
mov dword [ebp - 0x2fc], eax
movss xmm0, dword [ebp - 0x2b8]
mov byte [ebp - 4], 6
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x4dffc0]
addss xmm3, dword [0x4dfef0]
subss xmm1, dword [esi + 0x1f4]
movss xmm2, dword [edi + 0x114]
push 0
push dword [ebp - 0x2bc]
push ecx
movss dword [esp], xmm0
lea ecx, [edi + 0x1b0]
movss xmm0, dword [edi + 0x11c]
push ecx
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.00449060
push eax
lea ecx, [ebp - 0x350]
mov byte [ebp - 4], 0
call fcn.00434c40
inc dword [edi + 0x190]
mov ecx, dword [esi + 0x18]
call fcn.00434c20
mov edi, eax
mov dword [ebp - 0x2c4], eax
test edi, edi
jne 0x4502f0
mov ecx, dword [0x4ffee0]
call fcn.0046ad10
cmp dword [0x4fff14], 0x64
jle 0x45241b
lea ecx, [ebp - 0x310]
mov dword [0x4fff14], 0
call fcn.0044b510
mov ecx, dword [0x4ffd78]
lea edx, [ebp - 0x310]
mov eax, dword [0x4ffee4]
push 0
push 0
mov dword [ebp - 0x30f], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
mov eax, dword [0x4fff08]
cmp eax, 1
je 0x452dd0
cmp eax, 3
je 0x452dd0
mov eax, dword [0x4ffd6c]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
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.00434be0
mov edi, eax
test edi, edi
je 0x452d7e
mov dword [ebp - 0x2d4], 0xff
nop
movss xmm0, dword [edi + 0x114]
subss xmm0, dword [0x5012d8]
call fcn.0044b4f0
movss xmm1, dword [0x4e0040]
comiss xmm1, xmm0
jbe 0x452d62
movss xmm0, dword [edi + 0x11c]
subss xmm0, dword [0x5012e0]
call fcn.0044b4f0
movss xmm1, dword [0x4e0040]
comiss xmm1, xmm0
jbe 0x452d62
movss xmm1, dword [ebp - 0x2f4]
addss xmm1, dword [edi + 0x11c]
movss xmm0, dword [edi + 0x114]
addss xmm0, dword [ebp - 0x304]
movss dword [ebp - 0x2dc], xmm1
xorps xmm1, xmmword [0x4e02e0]
movss dword [ebp - 0x2cc], xmm0
call fcn.004345a0
cvtss2sd xmm0, xmm0
call fcn.00434710
cvtsd2ss xmm0, xmm0
subss xmm0, dword [esi + 0x1f4]
cvtss2sd xmm0, xmm0
call fcn.00434740
cvtsd2ss xmm0, xmm0
call fcn.0044b4f0
movss xmm1, dword [0x4dfec0]
comiss xmm1, xmm0
ja 0x4525a8
movss xmm0, dword [ebp - 0x2cc]
call fcn.0044b4f0
movss xmm1, dword [0x4e0014]
comiss xmm1, xmm0
jbe 0x452cc6
movss xmm0, dword [ebp - 0x2dc]
call fcn.0044b4f0
movss xmm1, dword [0x4e0014]
comiss xmm1, xmm0
jbe 0x452cc6
mov eax, dword [0x4fff08]
mov ecx, edi
cmp eax, 4
je 0x452968
cmp eax, 2
je 0x4526f6
call fcn.00434400
cmp eax, 0x10
jbe 0x45269c
mov eax, dword [0x4ebd28]
mov ecx, dword [edi + 0x17c]
mov dword [ebp - 0x2bc], ecx
test eax, eax
je 0x452cc6
cmp eax, 1
je 0x4525f4
cmp eax, 2
jne 0x452608
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2bc], ecx
xor edx, edx
mov dword [ebp - 0x2c4], edx
test ecx, ecx
jle 0x452cc6
xor ecx, ecx
mov dword [ebp - 0x2b8], ecx
movd xmm1, edx
mov eax, dword [edi + 0x174]
cvtdq2ps xmm1, xmm1
push ecx
movss xmm0, dword [eax + ecx + 8]
divss xmm1, dword [0x4e0020]
movss xmm3, dword [eax + ecx + 4]
movss xmm2, dword [eax + ecx]
mov ecx, esi
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, edi
push 0
push dword [eax + 0x2a3d8]
call fcn.00434400
mov ecx, dword [eax*4 + 0x500c00]
call fcn.00442530
mov edx, dword [ebp - 0x2c4]
mov ecx, dword [ebp - 0x2b8]
inc edx
add ecx, 0xc
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x2b8], ecx
cmp edx, dword [ebp - 0x2bc]
jl 0x452620
jmp 0x452cc6
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, edi
push 0
push dword [eax + 0x2a3d8]
call fcn.00434400
mov ecx, dword [eax*4 + 0x500c00]
call fcn.00442530
jmp 0x452cc6
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x124], xmm0
mov dword [ebp - 0x2cc], eax
call fcn.00434400
add eax, 2
cmp eax, 8
jne 0x452777
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.00442530
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 9
jne 0x4527de
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.00442530
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 0xe
jne 0x45284d
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [edi + 0x108]
subss xmm3, dword [0x4dfef0]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.00442530
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 2
jne 0x452cc6
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d0]
call fcn.00442530
call fcn.004a5b0a
and eax, reloc.WS2_32.dll_closesocket
jns 0x4528c6
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x452cc6
test byte [0x4fd630], 2
je 0x452cc6
movss xmm0, dword [ebp - 0x120]
sub esp, 0xc
addss xmm0, dword [0x4dff68]
mov ecx, dword [ebp - 0x2cc]
mov eax, esp
movss dword [ebp - 0x120], xmm0
movq xmm0, qword [ebp - 0x124]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x4fff2c]
call fcn.004882c0
mov eax, dword [esi + 0x16c]
sub esp, 0x10
mov ecx, dword [0x4fff2c]
cmp dword [eax + 0x1c0], 4
mov eax, esp
push 1
mov dword [eax], 0x3f800000
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0x3e5cdcde
jne 0x452957
mov dword [eax + 4], 0x3e70f0f2
call fcn.004882e0
jmp 0x452cc6
mov dword [eax + 4], 0x3f800000
call fcn.004882e0
jmp 0x452cc6
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x2f0], xmm0
mov dword [ebp - 0x2e8], eax
call fcn.00434400
add eax, 2
cmp eax, 0xe
jne 0x452abc
movss xmm1, dword [0x4dfe64]
movss xmm0, dword [0x4e00d0]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2f0]
movss xmm1, dword [0x4dfe64]
movss dword [ebp - 0x2cc], xmm0
movss dword [ebp - 0x2f0], xmm0
movss xmm0, dword [0x4e00d0]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2e8]
sub esp, 0xc
mov ecx, esp
movss dword [ebp - 0x2e8], xmm0
movq xmm0, qword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2e8]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff2c]
call fcn.004882c0
cvttss2si ecx, dword [ebp - 0x2cc]
sub esp, 0x10
movss xmm1, dword [0x4dfe28]
lea eax, [ecx + 0x50]
cdq
idiv dword [ebp - 0x2d4]
movzx eax, dl
mov dword [ebp - 0x2cc], eax
mov eax, ecx
cdq
mov ecx, 0xff
idiv ecx
mov ecx, esp
movzx eax, dl
mov edx, dword [ebp - 0x2cc]
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 [0x4fff2c]
call fcn.004882e0
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 2
jne 0x452b23
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.00442530
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 3
jne 0x452b8a
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.00442530
jmp 0x452cc6
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 0xf
jne 0x452bf1
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x4e00f4]
push ecx
movss xmm0, dword [edi + 0x11c]
mov ecx, esi
movss xmm3, dword [edi + 0x118]
movss xmm2, dword [edi + 0x114]
movss dword [esp], xmm0
call fcn.00457ae0
mov eax, dword [0x4ffd6c]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.00442530
jmp 0x452cc6
call fcn.004a5b0a
and eax, reloc.WS2_32.dll_closesocket
jns 0x452c04
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x452cc6
test byte [0x4fd630], 2
je 0x452cc6
movss xmm1, dword [0x4dffe8]
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2f0]
movss xmm1, dword [0x4dffe8]
movq qword [ebp - 0x300], xmm0
movss xmm0, dword [0x4e0140]
call fcn.0044b520
addss xmm0, dword [ebp - 0x2e8]
movss xmm1, dword [ebp - 0x2ec]
sub esp, 0xc
addss xmm1, dword [0x4dfec4]
mov ecx, esp
movss dword [ebp - 0x2e8], xmm0
movq xmm0, qword [ebp - 0x300]
mov eax, dword [ebp - 0x2e8]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x4fff10]
call fcn.00489130
mov ecx, dword [0x4fff10]
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
call fcn.00489160
cmp dword [0x4fff08], 2
jne 0x452d6c
mov ecx, edi
call fcn.00434400
add eax, 2
cmp eax, 2
jne 0x452d6c
test byte [0x4fd630], al
je 0x452d6c
mov eax, dword [esi + 0x16c]
sub esp, 0x10
movss xmm2, dword [edi + 0x118]
mov ecx, esi
movss xmm3, dword [edi + 0x11c]
movss xmm1, dword [edi + 0x114]
cmp dword [eax + 0x1c0], 4
addss xmm2, dword [0x4dff68]
mov dword [esp + 0xc], 0x41f00000
mov dword [esp + 8], 0x3e4ccccd
jne 0x452d4c
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call fcn.0045b530
jmp 0x452d6c
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call fcn.0045b530
jmp 0x452d6c
mov dword [edi + 0x160], 1
mov ecx, dword [esi + 0x1c]
call fcn.00434c20
mov edi, eax
test edi, edi
jne 0x4524b0
mov ecx, dword [esi + 0x1c]
call fcn.00434be0
mov edi, eax
test edi, edi
je 0x452dd0
nop dword [eax]
cmp dword [edi + 0x160], 0
je 0x452dc2
mov ecx, dword [esi + 0x1c]
push edi
call fcn.00434d50
cmp dword [edi + 0x16c], 0xffffffff
jle 0x452dba
mov ecx, dword [esi + 4]
push edi
push dword [edi + 0x170]
call fcn.0046a770
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov ecx, dword [esi + 0x1c]
call fcn.00434c20
mov edi, eax
test edi, edi
jne 0x452d90
mov eax, dword [0x4ffd6c]
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 [0x4fff08], 0
jne 0x452fa1
cmp dword [0x4ebd28], 0
je 0x452fa1
mov ecx, dword [0x4ffee8]
call fcn.004932f0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffee8]
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.00493420
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffeec]
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.00493420
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffef0]
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.00493420
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffef4]
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.00493420
mov eax, dword [0x4ffd6c]
push 0
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea ecx, [ebp - 0x350]
call fcn.00434be0
test eax, eax
je 0x453012
nop dword [eax]
nop word [eax + eax]
push dword [esi + 0x14c]
mov ecx, eax
push dword [esi + 0x148]
call fcn.00449160
lea ecx, [ebp - 0x350]
call fcn.00434c20
test eax, eax
jne 0x452ff0
mov eax, dword [0x4ffd6c]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 0
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
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 [0x4ffedc]
call fcn.00488650
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffedc]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff2c]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffef8]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
mov ecx, dword [0x4fff18]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff28]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffed0]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff10]
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.00489490
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff24]
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.00488770
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff04]
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.0048b120
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffec8]
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.0048a400
sub esp, 0x40
mov eax, esp
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4fff00]
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.00490aa0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffee0]
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.0046b130
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x4ffecc]
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.0048be60
mov eax, dword [0x4ffd6c]
push 1
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 1
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x4ffd6c]
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 [0x4fff1c], 0
mov edi, eax
je 0x453585
cmp dword [esi + 0x28c], 0
je 0x453585
mov ecx, dword [0x4ffd6c]
push 0
call fcn.0043c070
mov ecx, edi
mov esi, eax
sub ecx, dword [0x4fff1c]
jne 0x4534f3
lea eax, [ebp - 0x98]
push str.FPS_38
push eax
call fcn.00440ab0
add esp, 8
jmp 0x453511
xor edx, edx
mov eax, 0x3e8
div ecx
push eax
lea eax, [ebp - 0x98]
push str.FPS__d
push eax
call fcn.00440ab0
add esp, 0xc
mov ecx, dword [0x4ffd6c]
call fcn.0043d6a0
mov ecx, dword [0x4ffd6c]
sub eax, 0xb4
mov dword [ebp - 0x128], eax
call fcn.0043d6b0
mov ecx, dword [0x4ffd6c]
sub eax, 0xc
mov dword [ebp - 0x124], eax
call fcn.0043d6a0
mov ecx, dword [0x4ffd6c]
sub eax, 0x82
mov dword [ebp - 0x120], eax
call fcn.0043d6b0
mov dword [ebp - 0x11c], eax
mov ecx, esi
movups xmm0, xmmword [ebp - 0x128]
push 0
lea eax, [ebp - 0x98]
push eax
push 0xffffffffffffffff
push 0
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.004392f0
push str.BBOClient::Draw_13__n
mov ecx, 0x4ffd58
mov dword [0x4fff1c], edi
call fcn.00430e00
lea ecx, [ebp - 0x350]
call fcn.00434b80
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.00495a90
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret