Function at 0x44c990
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 0x4c521e
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3d8
mov eax, dword [0x507b40]
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 - 0x304], esi
inc dword [esi + 0x20c]
xorps xmm1, xmm1
movss xmm0, dword [0x509a8c]
mulss xmm0, dword [0x4cd5ec]
comiss xmm1, xmm0
movss dword [ebp - 0x310], xmm0
movss dword [0x509a8c], xmm0
jbe 0x44ca1c
xorps xmm0, xmm0
mov dword [0x509a8c], 0
movss dword [ebp - 0x310], xmm0
mulss xmm0, dword [0x4cb300]
cvtps2pd xmm0, xmm0
call fcn.004ad5e0
mov eax, dword [esi + 8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x310]
mulss xmm0, dword [0x4cd5ac]
movss dword [ebp - 0x310], xmm0
movq xmm0, qword [eax + 0x114]
movq qword [0x509ab0], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x509ab8], eax
cmp dword [esi + 0x210], 0xffffffff
je 0x44cac6
mov ecx, dword [esi + 0x18]
call fcn.00434f60
test eax, eax
je 0x44cac6
nop dword [eax + eax]
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 0x210]
jne 0x44caba
cmp dword [0x509a9c], 0
jne 0x44caba
movq xmm0, qword [eax + 0x114]
movq qword [0x509ab0], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x509ab8], eax
mov ecx, dword [esi + 0x18]
call fcn.00434fa0
mov ecx, dword [esi + 0x18]
call fcn.00434fc0
test eax, eax
jne 0x44ca80
mov ecx, esi
call fcn.00457860
mov eax, dword [0x509420]
mov edx, dword [eax + 0x2a3d8]
mov eax, dword [edx]
mov ecx, dword [eax + 0xa8]
lea eax, [esi + 0x20]
push eax
push edx
call ecx
mov eax, dword [0x509420]
push 1
push 1
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb8]
mov eax, dword [0x509420]
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 ecx, dword [eax + 0x2a3d8]
push edx
push 0x100
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
movss xmm0, dword [ebp - 0x310]
lea eax, [ebp - 0x1a8]
addss xmm0, dword [esi + 0x1f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.004025df
movss xmm0, dword [esi + 0x1fc]
lea eax, [ebp - 0x290]
push ecx
movss dword [esp], xmm0
push eax
call fcn.00402543
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x1a8]
push eax
push eax
call fcn.00401b6e
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp - 0x118]
push eax
push eax
call fcn.00401b6e
mov eax, dword [0x509420]
lea edx, [ebp - 0x118]
push edx
push 2
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
mov eax, dword [0x509a90]
cmp eax, 1
je 0x44cc9e
cmp eax, 3
je 0x44ccf3
cmp eax, 2
je 0x44ccf3
mov eax, dword [0x509420]
push 0
push 7
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
cmp dword [0x509a90], 4
mov eax, dword [0x509420]
mov ecx, dword [eax + 0x2a3d8]
jne 0x44cc98
mov eax, dword [esi + 0x168]
mov eax, dword [eax + 0x12c]
push eax
push ecx
jmp 0x44ccd0
xor eax, eax
push eax
push ecx
jmp 0x44ccd0
cmp dword [esi + 0x288], 0
je 0x44ccf3
mov eax, dword [0x509420]
push 0
push 7
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push dword [esi + 0x154]
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + 0xa8]
call fcn.004413f0
mov eax, dword [0x509420]
push 1
push 7
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 0
push 1
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb8]
mov eax, dword [0x509420]
push 1
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb8]
mov eax, dword [0x509420]
mov edx, dword [eax + 0x2a3d8]
mov eax, dword [edx]
mov ecx, dword [eax + 0xb0]
lea eax, [esi + 0x6e8]
push eax
push 0
push edx
call ecx
cmp dword [esi + 0x614], 0
jle 0x44cef6
mov eax, 0xfffffa0d
lea edx, [esi + 0x600]
sub eax, esi
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x320], eax
lea ecx, [esi + 0x5b4]
mov eax, 0xfffffa0b
mov dword [ebp - 0x308], ecx
sub eax, esi
lea edi, [esi + 0x5f5]
mov dword [ebp - 0x2e4], eax
nop word [eax + eax]
cmp dword [0x509a90], 2
jne 0x44cef6
test byte [0x503e50], 2
je 0x44cef6
movss xmm0, dword [0x4cc0a0]
ucomiss xmm0, dword [ecx + 4]
lahf
test ah, 0x44
jnp 0x44cecf
sub esp, 0xc
lea eax, [ebp - 0x210]
mov dword [esp + 8], 0x40000000
mov dword [esp + 4], 0
mov dword [esp], 0xc0800000
push 1
push eax
call fcn.004399c0
mov eax, dword [ebp - 0x308]
lea edx, [ebp - 0x210]
mov esi, dword [ebp - 0x320]
add esp, 0x14
mov dword [ebp - 0x1c0], 0x3f800000
add esi, edi
mov dword [ebp - 0x1b8], 0x3f000000
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1d4], eax
mov eax, dword [ebp - 0x2ec]
movq qword [ebp - 0x1dc], xmm0
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x1e8], 0
movss xmm0, dword [eax]
movzx eax, byte [edi - 5]
movss dword [ebp - 0x1c4], xmm0
mov dword [ebp - 0x1e4], 0
push edx
movd xmm0, eax
movzx eax, byte [edi]
cvtdq2ps xmm0, xmm0
push esi
movss dword [ebp - 0x20c], xmm0
movd xmm0, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x208], xmm0
movd xmm0, eax
mov eax, dword [0x509420]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x204], xmm0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov eax, dword [0x509420]
push 1
push esi
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb8]
mov esi, dword [ebp - 0x304]
mov ecx, dword [ebp - 0x308]
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2e4]
inc edi
add edx, 4
add ecx, 0xc
add eax, edi
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x308], ecx
cmp eax, dword [esi + 0x614]
jl 0x44cd90
xor edi, edi
nop dword [eax + eax]
cmp dword [0x509a90], 2
jne 0x44cf12
test byte [0x503e50], 2
jne 0x44cf2e
mov eax, dword [0x509420]
push 0
mov edx, dword [eax + 0x2a3d8]
mov eax, dword [edx]
mov ecx, dword [eax + 0xb8]
lea eax, [edi + 2]
push eax
push edx
call ecx
inc edi
cmp edi, 5
jl 0x44cf00
xor eax, eax
cmp dword [esi + 0x614], eax
jle 0x44cf56
lea ecx, [esi + 0x5b8]
mov dword [ecx], 0x447a0000
inc eax
add ecx, 0xc
cmp eax, dword [esi + 0x614]
jl 0x44cf44
movss xmm0, dword [ebp - 0x310]
lea eax, [ebp - 0x1a8]
addss xmm0, dword [esi + 0x1f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.004025df
movss xmm0, dword [0x4ca5c4]
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x4cd6a0]
movss dword [ebp - 0x2ec], xmm0
cmp eax, 1
jne 0x44cfa8
movaps xmm0, xmm1
movss dword [ebp - 0x2ec], xmm0
jmp 0x44cfb8
cmp eax, 2
jne 0x44cfb8
movaps xmm0, xmm1
movss dword [ebp - 0x2ec], xmm1
sub esp, 0xc
lea eax, [ebp - 0x2d0]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call fcn.004024c5
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x1a8]
push eax
push eax
call fcn.00401b6e
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x4cd650]
cmp eax, 1
jne 0x44d00d
movss xmm1, dword [0x4cc580]
jmp 0x44d01a
cmp eax, 2
jne 0x44d01a
movss xmm1, dword [0x4cb300]
movss xmm2, dword [0x4ca5d0]
lea eax, [ebp - 0xd8]
movss xmm0, dword [esi + 0x204]
sub esp, 0xc
addss xmm1, dword [0x509ab4]
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.004024c5
movss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
call fcn.004ad5e0
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2ec]
addss xmm0, dword [ebp - 0xa8]
movss dword [ebp - 0x310], xmm0
movss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
call fcn.004ad420
movss xmm1, dword [ebp - 0xa0]
mov eax, dword [esi + 0x290]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2ec]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1fc]
movss dword [ebp - 0x320], xmm1
cmp eax, 1
jne 0x44d0df
movss xmm0, dword [0x4cd6dc]
jmp 0x44d0ec
cmp eax, 2
jne 0x44d0ec
movss xmm0, dword [0x4cd6d8]
push ecx
lea eax, [ebp - 0x290]
movss dword [esp], xmm0
push eax
call fcn.00402543
push ecx
lea eax, [ebp - 0x250]
mov dword [esp], 0x40490fdb
push eax
call fcn.004025df
lea eax, [ebp - 0x290]
push eax
lea eax, [ebp - 0x1a8]
push eax
push eax
call fcn.00401b6e
lea eax, [ebp - 0x1a8]
push eax
lea eax, [ebp - 0x250]
push eax
push eax
call fcn.00401b6e
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp - 0xd8]
push eax
push eax
call fcn.00401b6e
mov eax, dword [0x509420]
lea edx, [ebp - 0xd8]
push edx
push 2
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
movss xmm0, dword [ebp - 0x320]
lea ecx, [esi + 0x434]
movss xmm1, dword [ebp - 0x310]
sub esp, 0xc
xorps xmm0, xmmword [0x4cb310]
mov eax, esp
xorps xmm1, xmmword [0x4cb310]
movss dword [ebp - 0x338], xmm0
mov edx, dword [ebp - 0x338]
movss dword [ebp - 0x2e4], xmm0
movss xmm0, dword [0x509ab4]
movups xmmword [ebp - 0x3c0], xmm1
unpcklps xmm1, xmm0
movq qword [eax], xmm1
movss dword [ebp - 0x2ec], xmm0
movups xmmword [ebp - 0x2e0], xmm1
mov dword [eax + 8], edx
call fcn.00449bf0
movss xmm0, dword [ebp - 0x2e4]
sub esp, 0x10
movups xmm1, xmmword [ebp - 0x3c0]
mov ecx, esp
movss dword [ebp - 0x394], xmm0
movss xmm0, dword [esi + 0x1f4]
xorps xmm0, xmmword [0x4cb310]
mov eax, dword [ebp - 0x394]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 0x2ec]
unpcklps xmm1, xmm0
movq qword [ecx], xmm1
mov dword [ecx + 8], eax
call fcn.00443040
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 [0x509420]
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 ecx, dword [eax + 0x2a3d8]
push edx
push 0x100
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
cmp dword [esi + 0x210], 0xffffffff
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x164]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x30c], edx
mov dword [ebp - 0x308], eax
je 0x44d369
mov ecx, dword [esi + 0x18]
call fcn.00434f60
test eax, eax
je 0x44d363
nop dword [eax + eax]
mov ecx, dword [eax + 0x17c]
cmp ecx, dword [esi + 0x210]
jne 0x44d357
cmp dword [0x509a9c], 0
jne 0x44d357
mov ecx, dword [eax + 0x164]
mov edi, dword [eax + 0x168]
mov dword [ebp - 0x30c], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x308], edi
call fcn.00434fa0
mov ecx, dword [esi + 0x18]
call fcn.00434fc0
test eax, eax
jne 0x44d320
mov edx, dword [ebp - 0x30c]
mov ecx, dword [0x509a90]
mov edi, 0x4f104c
test ecx, ecx
jne 0x44d53b
cmp dword [esi + 0x2a4], 1
jge 0x44d53b
mov eax, edx
sub eax, dword [edi - 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x44d526
mov eax, dword [ebp - 0x308]
sub eax, dword [edi]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x44d526
push dword [edi - 4]
mov ecx, dword [esi + 0x158]
call fcn.0046cb20
push dword [edi]
mov ecx, dword [esi + 0x158]
fstp dword [ebp - 0x2e4]
call fcn.0046cb20
fstp dword [ebp - 0x2f4]
call fcn.004ad3e4
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x2e4]
movss dword [ebp - 0x2ec], xmm0
movss dword [ebp - 0x334], xmm0
call fcn.004ad3e4
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [0x509a90]
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x2f4]
movss dword [ebp - 0x32c], xmm0
cmp eax, 1
je 0x44d4b3
cmp eax, 3
je 0x44d4b3
push 0
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x2ec]
movss dword [esp], xmm0
cmp eax, 4
jne 0x44d488
mov ecx, dword [esi + 0x168]
call fcn.0047fcd0
fstp dword [ebp - 0x2ec]
jmp 0x44d4bd
cmp eax, 2
jne 0x44d4a0
mov ecx, dword [esi + 0x16c]
call fcn.0047fcd0
fstp dword [ebp - 0x2ec]
jmp 0x44d4bd
mov ecx, dword [esi + 0x158]
call fcn.0046cc50
fstp dword [ebp - 0x2ec]
jmp 0x44d4bd
mov dword [ebp - 0x2ec], 0
movss xmm0, dword [ebp - 0x2ec]
sub esp, 0xc
mov eax, dword [ebp - 0x32c]
mov ecx, esp
movss dword [ebp - 0x330], xmm0
movq xmm0, qword [ebp - 0x334]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x509a4c]
call fcn.004843b0
call fcn.004ad3e4
mov ecx, dword [0x509a4c]
sub esp, 0x10
test al, 1
mov eax, esp
push 1
je 0x44d511
movups xmm0, xmmword [0x4f3910]
jmp 0x44d518
movups xmm0, xmmword [0x4f3900]
movups xmmword [eax], xmm0
call fcn.00483fe0
mov ecx, dword [0x509a90]
mov edx, dword [ebp - 0x30c]
add edi, 0x50
cmp edi, 0x4f17cc
jl 0x44d374
cmp dword [esi + 0x290], 0
jne 0x44d859
test byte [0x503e50], 1
je 0x44d859
cmp ecx, 1
je 0x44d7c2
cmp ecx, 3
je 0x44d7c2
cmp ecx, 2
je 0x44d7c2
cmp ecx, 4
jne 0x44d6ca
mov eax, dword [esi + 0x2a4]
cmp eax, 6
ja case.0x44d588.0
jmp dword [eax*4 + 0x450e74]
mov eax, dword [0x509420]
push 1
push 0x1c
mov dword [ebp - 0x2f4], 0x41f00000
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov dword [ebp - 0x2ec], 0x428c0000
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 0xff6e738f
push 0x22
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 0xff000000
push 0x22
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 3
push 0x23
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
push dword [ebp - 0x2f4]
jmp 0x44d827
mov dword [ebp - 0x2f4], 0x41a00000
mov dword [ebp - 0x2ec], 0x425c0000
mov eax, dword [0x509420]
push 1
push 0x1c
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
push 0xff9696be
mov eax, dword [0x509420]
push 0x22
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 3
push 0x23
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
push dword [ebp - 0x2f4]
jmp 0x44d827
mov dword [ebp - 0x2f4], 0x41f00000
mov dword [ebp - 0x2ec], 0x428c0000
jmp 0x44d628
mov eax, dword [0x509420]
push 1
push 0x1c
mov dword [ebp - 0x2f4], 0x41f00000
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov dword [ebp - 0x2ec], 0x428c0000
mov eax, dword [ecx]
call dword [eax + 0xc8]
push 0xff5a93f1
jmp 0x44d645
mov eax, dword [0x509420]
push 1
push 0x1c
mov dword [ebp - 0x2e4], 0x41f00000
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov dword [ebp - 0x2ec], 0x42c80000
mov eax, dword [ecx]
call dword [eax + 0xc8]
movss xmm1, dword [esi + 0x750]
addss xmm1, dword [0x4cc338]
mov eax, dword [0x509420]
divss xmm1, dword [0x4cb57c]
mov esi, dword [eax + 0x2a3d8]
mov eax, dword [esi]
mov edx, dword [eax + 0xc8]
movaps xmm0, xmm1
mulss xmm0, dword [0x4cd6bc]
cvttss2si edi, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x4cd6c4]
or edi, 0xffffff00
mulss xmm0, dword [0x4cd6c0]
shl edi, 8
cvttss2si ecx, xmm1
cvttss2si eax, xmm0
movzx eax, al
or edi, eax
movzx eax, cl
shl edi, 8
or edi, eax
push edi
push 0x22
push esi
call edx
mov eax, dword [0x509420]
push 3
push 0x23
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push dword [ebp - 0x2e4]
push 0x24
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push dword [ebp - 0x2ec]
push 0x25
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov esi, dword [ebp - 0x304]
jmp 0x44d859
mov eax, dword [0x509420]
push 1
push 0x1c
mov dword [ebp - 0x2e4], 0x41a00000
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov dword [ebp - 0x2ec], 0x42340000
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 0xff00001e
push 0x22
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 3
push 0x23
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
push dword [ebp - 0x2e4]
mov eax, dword [0x509420]
push 0x24
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push dword [ebp - 0x2ec]
push 0x25
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 3
push 0x16
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509a90]
cmp eax, 1
je 0x44d909
cmp eax, 3
je 0x44d909
push dword [ebp - 0x308]
push dword [ebp - 0x30c]
cmp eax, 4
jne 0x44d8a9
mov ecx, dword [esi + 0x168]
call fcn.0048ba50
jmp 0x44d938
cmp eax, 2
jne 0x44d8be
mov ecx, dword [esi + 0x16c]
call fcn.0047e590
jmp 0x44d938
mov eax, dword [esi + 0x158]
movups xmm0, xmmword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x338]
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.0046a0e0
mov ecx, dword [esi + 0x158]
call fcn.0046a340
jmp 0x44d938
mov eax, dword [0x509420]
push 1
push 0x16
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
push dword [ebp - 0x308]
mov ecx, dword [esi + 0x164]
push dword [ebp - 0x30c]
call fcn.00463290
mov ecx, dword [esi + 0x160]
call fcn.0045d130
mov eax, dword [0x509420]
push 2
push 0x16
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [0x509420]
push 0
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xf4]
mov eax, dword [0x509a90]
cmp eax, 1
je 0x44dba8
cmp eax, 3
je 0x44dba8
cmp eax, 4
je 0x44da9a
cmp eax, 2
je 0x44da9a
mov eax, dword [0x509420]
lea edx, [ebp - 0x158]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x11c], 0x3f800000
mov dword [ebp - 0x130], 0x3f800000
mov dword [ebp - 0x144], 0x3f800000
mov dword [ebp - 0x158], 0x3f800000
mov ecx, dword [eax + 0x2a3d8]
push edx
push 0x100
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
mov eax, dword [0x509420]
push 0x10
push dword [esi + 0x41c]
mov ecx, dword [eax + 0x2a3d8]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14c]
mov eax, dword [0x509420]
push 0x42
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + pe_nt_image_headers32]
push 0x90
jmp 0x44db90
mov eax, dword [0x509420]
lea edx, [ebp - 0x158]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x11c], 0x3f800000
mov dword [ebp - 0x130], 0x3f800000
mov dword [ebp - 0x144], 0x3f800000
mov dword [ebp - 0x158], 0x3f800000
mov ecx, dword [eax + 0x2a3d8]
push edx
push 0x100
push ecx
mov eax, dword [ecx]
call dword [eax + 0x94]
mov eax, dword [0x509420]
push 0x10
push dword [esi + 0x414]
mov ecx, dword [eax + 0x2a3d8]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14c]
mov eax, dword [0x509420]
push 0x42
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + pe_nt_image_headers32]
push 0x24
mov eax, dword [0x509420]
push 0
push 2
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x118]
lea ecx, [ebp - 0x3b0]
call fcn.00434c10
movss xmm0, dword [esi + 0x1f4]
sub esp, 8
cvtps2pd xmm0, xmm0
mov dword [ebp - 4], 0
movsd qword [esp], xmm0
call fcn.00434a60
mov ecx, dword [esi + 0x18]
add esp, 8
fstp dword [esi + 0x1f4]
call fcn.00434f60
mov edi, eax
mov dword [ebp - 0x2f4], edi
test edi, edi
je 0x44fb0c
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [ebp - 0x310]
addss xmm0, dword [edi + 0x114]
movss xmm1, dword [ebp - 0x320]
addss xmm1, dword [edi + 0x11c]
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x2e4], xmm1
movsd qword [ebp - 0x2f0], xmm0
fld qword [ebp - 0x2f0]
movsd qword [ebp - 0x358], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x4cb310]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x300], xmm0
fld qword [ebp - 0x300]
call fcn.004ac6c0
fstp qword [ebp - 0x300]
movsd xmm0, qword [ebp - 0x300]
sub esp, 8
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00434a60
fstp dword [ebp - 0x2ec]
movss xmm0, dword [ebp - 0x2ec]
subss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00434a00
movsd xmm3, qword [0x4cd7c0]
add esp, 8
movsd xmm1, qword [0x4cd640]
fstp dword [ebp - 0x2ec]
movss xmm0, dword [ebp - 0x2ec]
cvtps2pd xmm0, xmm0
andps xmm0, xmm3
comisd xmm1, xmm0
ja 0x44dd35
movsd xmm2, qword [ebp - 0x358]
movsd xmm4, qword [0x4cd670]
andps xmm2, xmm3
comisd xmm4, xmm2
movss xmm1, dword [ebp - 0x2e4]
cvtps2pd xmm1, xmm1
jbe 0x44dd04
movaps xmm0, xmm1
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x44dd35
movsd xmm0, qword [0x4cd680]
comisd xmm2, xmm0
jae 0x44dd2a
andps xmm1, xmm3
comisd xmm1, xmm0
jae 0x44dd2a
mov dword [edi + 0x1a8], 0
jmp 0x44faee
inc dword [edi + 0x1a8]
jmp 0x44faee
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
cmp dword [edi + 0x178], 0xffffffff
jle 0x44e9c3
mov eax, dword [edi + 0x194]
lea edx, [eax + 0x108]
test eax, eax
je 0x44ddc5
mov eax, dword [edx]
mov dword [ebp - 0x2e4], eax
test eax, eax
je 0x44ddc5
mov eax, dword [0x509420]
push dword [ebp - 0x2e4]
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xf4]
jmp 0x44ddee
mov eax, dword [0x509420]
push dword [edx]
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xf4]
inc dword [0x509aa8]
mov eax, dword [edi + 0x178]
mov dword [0x509aac], eax
mov eax, dword [0x509420]
push 4
push 1
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 2
push 2
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 0
push 3
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 1
push 4
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [edi + 0x19c]
test eax, eax
je 0x44df3b
cmp eax, 1
jne 0x44ded0
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x44ded0
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x509420]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043e750
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x128]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x44dec5
mov dword [edi + 0x19c], 0
mov esi, dword [esi + 0x128]
jmp 0x44e0df
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x44e0f2
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x509420]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043e750
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x12c]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x44df30
mov dword [edi + 0x19c], 0
mov esi, dword [esi + 0x12c]
jmp 0x44e0df
cmp dword [edi + 0x198], 0
je 0x44e053
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2ec], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x44e0f2
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 - 0x2ec]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x509420]
mov esi, edx
push esi
mov dword [ebp - 0x2e4], esi
push dword [eax + 0x2a3d8]
call fcn.0043e750
mov eax, dword [ebp - 0x304]
push esi
mov ecx, dword [eax + 0x124]
add ecx, 0x150
call fcn.00434e20
cmp esi, 1
je 0x44dfdc
cmp esi, 8
jne 0x44e0f2
cmp dword [edi + 0x220], esi
je 0x44e0f2
call fcn.004ad3e4
mov esi, eax
and esi, reloc.WS2_32.dll_closesocket
jns 0x44dffc
dec esi
or esi, 0xfffffffc
inc esi
mov eax, dword [ebp - 0x2e4]
sub esp, 0x10
movq xmm0, qword [edi + 0x114]
mov edx, esp
mov dword [edi + 0x220], eax
mov eax, dword [edi + 0x11c]
mov dword [esp + 0xc], 0x42480000
movq qword [edx], xmm0
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + esi*4 + 0x4e0]
call fcn.00442e20
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + esi*4 + 0x4e0]
call fcn.00442cc0
jmp 0x44e0f2
mov eax, dword [esi + 0x120]
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2e4], eax
test eax, eax
jle 0x44e0f2
mov ecx, dword [ebp - 0x2f4]
mov eax, 0x66666667
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0x190]
cdq
add edi, edi
and edx, 3
add eax, edx
sar eax, 2
sub eax, edi
add eax, ecx
mov ecx, dword [esi + 0x120]
cdq
idiv dword [ebp - 0x2e4]
mov eax, dword [0x509420]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043e750
mov edx, dword [ebp - 0x2f4]
mov esi, dword [esi + 0x120]
mov eax, dword [edx + 0x190]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, edi
mov edi, dword [ebp - 0x2f4]
add eax, edi
cdq
lea ecx, [esi + 0x150]
idiv dword [esi + 0x160]
push edx
call fcn.00434e20
cmp dword [edi + 0x254], 0xffffffff
jle 0x44e331
mov eax, dword [edi + 0x258]
inc eax
mov dword [edi + 0x258], eax
cmp eax, 0x1e
jle 0x44e11b
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x44e331
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x3d4], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x4ca598]
mov dword [ebp - 0x2fc], eax
jb 0x44e160
mov dword [ebp - 0x2ec], 0xff
jmp 0x44e18f
comiss xmm1, xmm0
jb 0x44e171
mov dword [ebp - 0x2ec], 0
jmp 0x44e18f
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov dword [ebp - 0x2ec], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x4ca598]
jb 0x44e1ac
mov dword [ebp - 0x2e4], 0xff
jmp 0x44e1d8
comiss xmm1, xmm0
jb 0x44e1bd
mov dword [ebp - 0x2e4], 0
jmp 0x44e1d8
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov dword [ebp - 0x2e4], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x4ca598]
jb 0x44e1f3
mov esi, 0xff
jmp 0x44e216
comiss xmm1, xmm0
jb 0x44e1fc
xor esi, esi
jmp 0x44e216
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov esi, eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x4ca598]
jb 0x44e22e
mov eax, 0xff
jmp 0x44e24c
comiss xmm1, xmm0
jb 0x44e237
xor eax, eax
jmp 0x44e24c
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2ec]
shl eax, 8
or eax, dword [ebp - 0x2e4]
shl eax, 8
or eax, esi
mov dword [ebp - 0x2e4], eax
call fcn.004ad3e4
mov ecx, dword [ebp - 0x2fc]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb57c]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x3d0]
movss dword [ebp - 0x3d0], xmm0
movq xmm0, qword [ebp - 0x3d4]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x509a70]
call fcn.004843b0
mov eax, dword [ebp - 0x2e4]
sub esp, 0x10
movd xmm0, dword [ebp - 0x2e4]
mov ecx, eax
mov edx, eax
shr ecx, 0x18
shr edx, 8
mov esi, esp
shr eax, 0x10
push 5
movd xmm2, ecx
movd xmm1, edx
movd xmm3, eax
punpckldq xmm3, xmm0
xorps xmm0, xmm0
punpckldq xmm1, xmm2
punpckldq xmm3, xmm1
andps xmm3, xmmword [0x4cd700]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
cvtdq2ps xmm0, xmm3
mulps xmm0, xmmword [0x4cd710]
movups xmmword [esi], xmm0
mov ecx, dword [0x509a70]
call fcn.00485c20
cmp dword [edi + 0x26c], 0
je 0x44e524
mov eax, dword [edi + 0x19c]
mov esi, dword [ebp - 0x304]
cmp eax, 1
jne 0x44e388
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44e3c6
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2fc]
push edx
call fcn.00434e20
jmp 0x44e492
cmp eax, 2
jne 0x44e3c6
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44e3c6
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2fc]
push edx
call fcn.00434e20
jmp 0x44e492
cmp dword [edi + 0x198], 0
je 0x44e425
mov ecx, dword [esi + 0x124]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44e425
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
sub eax, edx
mov edi, eax
mov eax, 0x66666667
imul dword [ebp - 0x2f4]
sar edi, 1
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
lea eax, [esi + esi*4]
add eax, eax
sub edi, eax
add edi, dword [ebp - 0x2f4]
mov eax, edi
cdq
idiv dword [ebp - 0x2fc]
jmp 0x44e480
mov ecx, dword [esi + 0x120]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44e50c
mov eax, dword [edi + 0x190]
add ecx, 0x150
cdq
and edx, 3
lea edi, [edx + eax]
mov eax, 0x66666667
imul dword [ebp - 0x2f4]
sar edi, 2
sar edx, 2
mov esi, edx
shr esi, 0x1f
add esi, edx
lea eax, [esi + esi*4]
add eax, eax
sub edi, eax
add edi, dword [ebp - 0x2f4]
mov eax, edi
cdq
idiv dword [ebp - 0x2fc]
push edx
call fcn.00434e20
mov esi, dword [ebp - 0x304]
mov edi, dword [ebp - 0x2f4]
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 [0x4ca5d0]
movss dword [esp], xmm0
push eax
call fcn.00457ee0
mov eax, dword [edi + 0x288]
add eax, dword [edi + 0x284]
add eax, dword [edi + 0x280]
add eax, dword [edi + 0x27c]
add eax, dword [edi + 0x278]
add eax, dword [edi + 0x274]
test eax, eax
jle 0x44e50c
push edi
mov ecx, esi
call fcn.00450e90
mov eax, dword [0x509420]
mov ecx, dword [edi + 0x26c]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
lea eax, [edi + 0x108]
mov dword [ebp - 0x2fc], 0
lea esi, [edi + 0x34c]
mov dword [ebp - 0x2e4], eax
mov edi, dword [ebp - 0x2fc]
cmp dword [esi], 0
je 0x44e55a
push edi
push eax
mov ecx, esi
call fcn.0045af00
mov eax, dword [ebp - 0x2e4]
inc edi
add esi, 0xd0
cmp edi, 2
jl 0x44e546
mov edi, dword [ebp - 0x2f4]
mov eax, dword [ebp - 0x30c]
sub eax, dword [edi + 0x164]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x44fae8
mov eax, dword [ebp - 0x308]
sub eax, dword [edi + 0x168]
mov esi, dword [ebp - 0x304]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x44faee
or ecx, 0xffffffff
mov dword [ebp - 0x2ec], ecx
cmp edi, dword [esi + 0x10]
jne 0x44e5d6
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 - 0x2ec], ecx
movss xmm2, dword [0x4ca5d0]
movss dword [ebp - 0x2e4], xmm2
cmp edi, dword [esi + 8]
jne 0x44e61e
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [0x4ca598]
movss dword [ebp - 0x2e4], xmm1
jb 0x44e61e
movss dword [ebp - 0x2e4], xmm2
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3e4], ecx
mov byte [ebp - 4], 1
test ecx, ecx
je 0x44e6a9
movss xmm0, dword [ebp - 0x2e4]
lea eax, [edi + 0x1b0]
push 0
push dword [ebp - 0x2ec]
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 [0x4ca598]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x4ca5c0]
subss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
call fcn.00447920
jmp 0x44e6ab
xor eax, eax
push eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 0
call fcn.00434d90
cmp byte [edi + 0x1d0], 0
lea eax, [edi + 0x1d0]
je 0x44e807
push str.Administrator
push eax
call fcn.004349d0
add esp, 8
test eax, eax
je 0x44e70d
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3e0], ecx
mov byte [ebp - 4], 2
test ecx, ecx
je 0x44e7eb
push 1
push 0xff64ff64
jmp 0x44e78b
lea eax, [edi + 0x1d0]
push str.Moderator
push eax
call fcn.004349d0
add esp, 8
test eax, eax
jne 0x44e767
lea eax, [edi + 0x1d0]
push str.Trial_Moderator
push eax
call fcn.004349d0
add esp, 8
test eax, eax
jne 0x44e767
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3dc], ecx
mov byte [ebp - 4], 4
test ecx, ecx
je 0x44e7eb
push 1
push 0xff00bfff
jmp 0x44e78b
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3d8], ecx
mov byte [ebp - 4], 3
test ecx, ecx
je 0x44e7eb
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 [0x4cd5f4]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x4ca5c0]
subss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
call fcn.00447920
jmp 0x44e7ed
xor eax, eax
push eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 0
mov dword [eax + 0x118], 0x41a00000
call fcn.00434d90
xor eax, eax
mov dword [ebp - 0x2e4], eax
nop
cmp edi, dword [esi + 0x10]
jne 0x44faee
imul ecx, eax, 0xd0
mov dword [ebp - 0x2ec], ecx
cmp dword [ecx + edi + 0x34c], 0
je 0x44e9ae
movss xmm0, dword [0x4cd600]
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0xbe4ccccd
cmp eax, 1
jne 0x44e866
movss xmm0, dword [0x4cd6e8]
subss xmm0, dword [edi + 0x108]
movss dword [ebp - 0x2fc], xmm0
cvtps2pd xmm0, xmm0
call fcn.004ad420
xorps xmm1, xmm1
sub esp, 8
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x4cc33c]
addss xmm1, dword [edi + 0x11c]
movss dword [esp + 4], xmm1
movss xmm1, dword [edi + 0x118]
addss xmm1, dword [0x4cd5e8]
movss dword [esp], xmm1
movss xmm1, dword [ebp - 0x2fc]
cvtps2pd xmm0, xmm1
call fcn.004ad5e0
cvtsd2ss xmm0, xmm0
sub esp, 8
mov ecx, esi
mulss xmm0, dword [0x4cc33c]
addss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
lea eax, [esi + 0x1b4]
push eax
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0x2dc]
push eax
call fcn.0040157b
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x3c4], ecx
mov byte [ebp - 4], 5
test ecx, ecx
je 0x44e996
mov eax, dword [ebp - 0x2ec]
movss xmm0, dword [ebp - 0x2d4]
add eax, 0x354
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 - 0x2d8]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x2dc]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x4ca5c0]
subss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
call fcn.00447920
jmp 0x44e998
xor eax, eax
push eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 0
call fcn.00434d90
mov eax, dword [ebp - 0x2e4]
inc eax
mov dword [ebp - 0x2e4], eax
cmp eax, 2
jl 0x44e810
jmp 0x44faee
mov eax, dword [edi + 0x160]
cmp eax, 1
jne 0x44f126
mov eax, dword [0x509420]
push 1
push 0x1b
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [edi + 0x180]
cmp eax, 0x16
jg 0x44e9fe
cmp eax, 8
jle 0x44e9fe
push 2
jmp 0x44ea00
push 1
mov eax, dword [0x509420]
push 0x16
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc8]
mov eax, dword [edi + 0x338]
mov dword [ebp - 0x2ec], eax
test eax, eax
jne 0x44ea45
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 + 0x509ac0]
mov dword [ebp - 0x2ec], ecx
mov edx, dword [edi + 0x33c]
mov dword [ebp - 0x2e4], edx
test edx, edx
jne 0x44ea74
mov eax, dword [edi + 0x180]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x184]
lea eax, [eax + ecx*2]
mov edx, dword [eax*4 + 0x509e08]
mov dword [ebp - 0x2e4], edx
mov ecx, dword [edi + 0x340]
test ecx, ecx
jne 0x44ea97
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 + 0x50a150]
cmp dword [edi + 0x180], 0x1b
jne 0x44eaad
cmp dword [edi + 0x1ac], 0
jne 0x44ed7f
cmp dword [edi + 0x1a4], 0
je 0x44eaf0
mov eax, dword [edi + 0x190]
cmp eax, 0x14
jle 0x44eaf0
test al, 1
je 0x44ed7f
mov ecx, dword [ebp - 0x2ec]
test ecx, ecx
je 0x44ed67
mov eax, dword [ecx + 0x160]
test eax, eax
jle 0x44ed67
cdq
sub eax, edx
sar eax, 1
push eax
jmp 0x44ed55
cmp dword [edi + 0x19c], 0
je 0x44eb97
test ecx, ecx
je 0x44eb36
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44eb36
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2fc]
mov eax, dword [0x509420]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043e750
jmp 0x44eb4e
mov eax, dword [0x509420]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
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 + 0x50a150]
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [edi + 0x190], 0
jmp 0x44ed7f
cmp dword [edi + 0x1a0], 0
je 0x44eca6
test edx, edx
je 0x44ec46
cmp dword [edx + 0x160], 0
lea eax, [edx + 0x160]
mov dword [ebp - 0x2fc], eax
jle 0x44ec46
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 [0x4cb300]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [edi + 0x190]
mov ecx, dword [ebp - 0x2fc]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ecx]
mov eax, dword [0x509420]
mov ecx, dword [ebp - 0x2e4]
push edx
push dword [eax + 0x2a3d8]
call fcn.0043e750
jmp 0x44ec5e
mov eax, dword [0x509420]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
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 + 0x509e08]
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 0x44ed7f
mov dword [edi + 0x1a0], 0
jmp 0x44ed7f
cmp dword [edi + 0x198], 0
je 0x44ed02
test edx, edx
je 0x44ed67
mov eax, dword [edx + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44ed67
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 - 0x2fc]
jmp 0x44ed54
mov eax, dword [ebp - 0x2ec]
test eax, eax
je 0x44ed67
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2fc], eax
test eax, eax
jle 0x44ed67
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 - 0x2ec]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2fc]
push edx
mov eax, dword [0x509420]
push dword [eax + 0x2a3d8]
call fcn.0043e750
jmp 0x44ed7f
mov eax, dword [0x509420]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
cmp dword [edi + 0x180], 0x1b
jne 0x44eee2
cmp dword [edi + 0x1ac], 0
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x31c], xmm0
jne 0x44ee2a
call fcn.004ad3e4
mov ecx, dword [0x509a50]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cc338]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x318]
movss dword [ebp - 0x318], xmm0
movq xmm0, qword [ebp - 0x31c]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004843b0
cvtdq2ps xmm0, xmmword [0x4cd700]
sub esp, 0x10
mov eax, esp
push 5
mulps xmm0, xmmword [0x4cd710]
movups xmmword [eax], xmm0
mov ecx, dword [0x509a50]
call fcn.00483fe0
jmp 0x44eee2
call fcn.004ad3e4
mov ecx, dword [0x509a4c]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cd5e8]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x318]
movss dword [ebp - 0x318], xmm0
movq xmm0, qword [ebp - 0x31c]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004843b0
cvtdq2ps xmm0, xmmword [0x4cd700]
sub esp, 0x10
mov eax, esp
push 5
mulps xmm0, xmmword [0x4cd710]
movups xmmword [eax], xmm0
mov ecx, dword [0x509a4c]
movaps xmmword [ebp - 0x360], xmm0
call fcn.00483fe0
movq xmm0, qword [ebp - 0x31c]
sub esp, 0xc
mov ecx, dword [0x509a70]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004843b0
movaps xmm0, xmmword [ebp - 0x360]
sub esp, 0x10
mov eax, esp
push 5
movups xmmword [eax], xmm0
mov ecx, dword [0x509a70]
call fcn.00485c20
cmp dword [edi + 0x254], 0xffffffff
jle 0x44f97e
mov eax, dword [edi + 0x258]
inc eax
mov dword [edi + 0x258], eax
cmp eax, 0x1e
jle 0x44ef0b
mov dword [edi + 0x254], 0xffffffff
cmp eax, 0xa
jle 0x44f97e
movq xmm0, qword [edi + 0x114]
xorps xmm1, xmm1
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x3bc], xmm0
movss xmm0, dword [edi + 0x25c]
comiss xmm0, dword [0x4ca598]
mov dword [ebp - 0x2fc], eax
jb 0x44ef50
mov dword [ebp - 0x2e4], 0xff
jmp 0x44ef7f
comiss xmm1, xmm0
jb 0x44ef61
mov dword [ebp - 0x2e4], 0
jmp 0x44ef7f
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov dword [ebp - 0x2e4], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x4ca598]
jb 0x44ef9c
mov dword [ebp - 0x2ec], 0xff
jmp 0x44efc8
comiss xmm1, xmm0
jb 0x44efad
mov dword [ebp - 0x2ec], 0
jmp 0x44efc8
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov dword [ebp - 0x2ec], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x4ca598]
jb 0x44efe3
mov esi, 0xff
jmp 0x44f006
comiss xmm1, xmm0
jb 0x44efec
xor esi, esi
jmp 0x44f006
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
mov esi, eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x4ca598]
jb 0x44f01e
mov eax, 0xff
jmp 0x44f03c
comiss xmm1, xmm0
jb 0x44f027
xor eax, eax
jmp 0x44f03c
mulss xmm0, dword [0x4cb848]
addss xmm0, dword [0x4cb2fc]
call fcn.00498b50
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2e4]
shl eax, 8
or eax, dword [ebp - 0x2ec]
shl eax, 8
or eax, esi
mov dword [ebp - 0x2e4], eax
call fcn.004ad3e4
mov ecx, dword [ebp - 0x2fc]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb57c]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x3b8]
movss dword [ebp - 0x3b8], xmm0
movq xmm0, qword [ebp - 0x3bc]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x509a70]
call fcn.004843b0
mov eax, dword [ebp - 0x2e4]
sub esp, 0x10
movd xmm0, dword [ebp - 0x2e4]
mov ecx, eax
mov edx, eax
shr ecx, 0x18
shr edx, 8
mov esi, esp
shr eax, 0x10
push 5
movd xmm2, ecx
movd xmm1, edx
movd xmm3, eax
punpckldq xmm3, xmm0
xorps xmm0, xmm0
punpckldq xmm1, xmm2
punpckldq xmm3, xmm1
andps xmm3, xmmword [0x4cd700]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
cvtdq2ps xmm0, xmm3
mulps xmm0, xmmword [0x4cd710]
movups xmmword [esi], xmm0
mov ecx, dword [0x509a70]
call fcn.00485c20
jmp 0x44f97e
cmp eax, 0xe
je 0x44f97e
cmp eax, 0x17
je 0x44f97e
cmp eax, 6
jne 0x44f148
mov ecx, dword [esi + 0xb0]
jmp 0x44f7e9
cmp eax, 0xc
jne 0x44f158
mov ecx, dword [esi + 0x118]
jmp 0x44f7e9
cmp eax, 0xd
jne 0x44f16c
mov eax, dword [edi + 0x17c]
mov ecx, dword [esi + eax*4 + 0xe8]
jmp 0x44f177
cmp eax, 0x14
jne 0x44f1a6
mov ecx, dword [esi + 0x10c]
mov eax, dword [0x509420]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
movss xmm0, dword [edi + 0x108]
addss xmm0, dword [0x4cd5b4]
movss dword [edi + 0x108], xmm0
jmp 0x44f97e
cmp eax, 5
jne 0x44f1b6
mov ecx, dword [esi + 0xd4]
jmp 0x44f7e9
cmp eax, 7
jne 0x44f1e7
mov al, byte [edi + 0x18c]
cmp al, 0xff
jne 0x44f1d0
mov ecx, dword [esi + 0xe4]
jmp 0x44f7e9
cmp al, 5
jae 0x44f97e
movzx eax, al
mov ecx, dword [esi + eax*4 + 0xb4]
jmp 0x44f7e9
cmp eax, 0x12
jne 0x44f213
mov dword [edi + 0x108], 0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x110]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
jmp 0x44f97e
cmp eax, 0x13
jne 0x44f235
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x114]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
jmp 0x44f97e
mov eax, dword [edi + 0x160]
cmp eax, 0xa
jne 0x44f286
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 [0x509a60]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a60]
sub esp, 0x10
mov eax, esp
push 1
movups xmmword [eax], xmm0
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 0x11
jne 0x44f7d6
mov eax, dword [edi + 0x238]
movss xmm1, dword [0x4ca598]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4c99e0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x4cb300]
comiss xmm1, xmm0
movss dword [ebp - 0x2f4], xmm0
jbe 0x44f2fb
call fcn.004ad3e4
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [esi + 0x20c]
mov esi, 0xa
mov ecx, edx
cdq
idiv esi
cmp ecx, edx
jge 0x44f2fb
movss xmm0, dword [0x4ca598]
movss dword [ebp - 0x2f4], xmm0
mov eax, dword [edi + 0x234]
test eax, eax
jne 0x44f318
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
jmp 0x44f3b3
cmp eax, 1
jne 0x44f3f2
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x36c], xmm0
mov dword [ebp - 0x364], eax
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x36c]
movss dword [ebp - 0x36c], xmm0
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x364]
movss dword [ebp - 0x364], xmm0
movq xmm0, qword [ebp - 0x36c]
mov eax, dword [ebp - 0x364]
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x509a60]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a60]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 2
jne 0x44f48c
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x39c], xmm0
call fcn.004ad3e4
mov ecx, dword [0x509a70]
sub esp, 0xc
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb57c]
divss xmm0, dword [0x4cd6d4]
addss xmm0, dword [0x4ca594]
addss xmm0, dword [ebp - 0x398]
movss dword [ebp - 0x398], xmm0
movq xmm0, qword [ebp - 0x39c]
movq qword [eax], xmm0
mov dword [eax + 8], esi
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a70]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00485c20
jmp 0x44f97e
cmp eax, 3
jne 0x44f566
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x378], xmm0
mov dword [ebp - 0x370], eax
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x378]
movss dword [ebp - 0x378], xmm0
call fcn.004ad3e4
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x370]
movss dword [ebp - 0x370], xmm0
movq xmm0, qword [ebp - 0x378]
mov eax, dword [ebp - 0x370]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x509a4c]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a4c]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 4
jne 0x44f661
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x384], xmm0
movss xmm0, dword [ebp - 0x380]
addss xmm0, dword [0x4cd618]
mov dword [ebp - 0x37c], eax
movss dword [ebp - 0x2fc], xmm0
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x384]
movups xmmword [ebp - 0x360], xmm0
call fcn.004ad3e4
movss xmm1, dword [ebp - 0x2fc]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x37c]
movss dword [ebp - 0x37c], xmm0
movups xmm0, xmmword [ebp - 0x360]
mov eax, dword [ebp - 0x37c]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x509a54]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a54]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 5
jne 0x44f6db
movq xmm0, qword [edi + 0x114]
sub esp, 0xc
mov ecx, dword [edi + 0x11c]
mov eax, esp
movq qword [ebp - 0x340], xmm0
movss xmm0, dword [ebp - 0x33c]
addss xmm0, dword [0x4cd5dc]
movss dword [ebp - 0x33c], xmm0
movq xmm0, qword [ebp - 0x340]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x509a58]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a58]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 6
jne 0x44f97e
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x334], xmm0
movss xmm0, dword [ebp - 0x330]
addss xmm0, dword [0x4cd5e0]
mov dword [ebp - 0x32c], eax
movss dword [ebp - 0x2fc], xmm0
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x334]
movups xmmword [ebp - 0x360], xmm0
call fcn.004ad3e4
movss xmm1, dword [ebp - 0x2fc]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x32c]
movss dword [ebp - 0x32c], xmm0
movups xmm0, xmmword [ebp - 0x360]
mov eax, dword [ebp - 0x32c]
unpcklps xmm0, xmm1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
mov ecx, dword [0x509a64]
call fcn.004843b0
movups xmm0, xmmword [edi + 0x224]
mov ecx, dword [0x509a64]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2f4]
push eax
call fcn.00483fe0
jmp 0x44f97e
cmp eax, 8
jne 0x44f800
movzx eax, byte [edi + 0x18e]
mov ecx, dword [esi + eax*4 + 0xcc]
mov eax, dword [0x509420]
push 0
push dword [eax + 0x2a3d8]
call fcn.004413f0
jmp 0x44f97e
cmp eax, 3
jne 0x44f810
push dword [esi + 0x140]
jmp 0x44f8ae
cmp eax, 4
jne 0x44f820
push dword [esi + 0x144]
jmp 0x44f8ae
cmp eax, 0x10
jne 0x44f86c
mov eax, dword [esi + 0x224]
test eax, eax
jle 0x44f83e
mov ecx, dword [esi + 0x138]
dec eax
mov dword [esi + 0x224], eax
jmp 0x44f844
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 [0x509420]
push edx
mov eax, dword [eax + 0x2a3d8]
push eax
jmp 0x44f979
mov ecx, 0x4cccb8
lea eax, [edi + 0x1b0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x44f897
test dl, dl
je 0x44f893
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x44f897
add eax, 2
add ecx, 2
test dl, dl
jne 0x44f877
xor eax, eax
jmp 0x44f89c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x44f8a8
push dword [esi + 0x150]
jmp 0x44f8ae
push dword [esi + 0x13c]
mov eax, dword [0x509420]
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xf4]
mov eax, dword [0x509420]
push 4
push 1
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 2
push 2
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 0
push 3
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xfc]
mov eax, dword [0x509420]
push 1
push 4
push 0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 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
xor eax, eax
add edx, 0xfffffffb
cmovns eax, edx
cmp eax, 7
jle 0x44f96b
add eax, 0xfffffffb
mov ecx, 7
cmp eax, 7
cmovl eax, ecx
push eax
mov eax, dword [0x509420]
mov ecx, esi
push dword [eax + 0x2a3d8]
call fcn.0043e750
mov eax, dword [ebp - 0x30c]
cmp eax, dword [edi + 0x164]
jne 0x44fae8
mov eax, dword [ebp - 0x308]
mov esi, dword [ebp - 0x304]
cmp eax, dword [edi + 0x168]
jne 0x44faee
or ecx, 0xffffffff
mov dword [ebp - 0x2e4], ecx
cmp edi, dword [esi + 0x10]
jne 0x44f9d8
mov eax, 0x2aaaaaab
imul dword [esi + 0x20c]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
je 0x44f9d8
mov dword [ebp - 0x2e4], 0xff50ff50
jmp 0x44f9fb
mov eax, dword [esi + 0x210]
cmp eax, dword [edi + 0x17c]
jne 0x44f9fb
cmp dword [0x509a9c], 0
mov eax, 0xffff0050
cmove ecx, eax
mov dword [ebp - 0x2e4], ecx
cmp dword [edi + 0x218], 0
movss xmm0, dword [0x4ca5d0]
movss dword [ebp - 0x2ec], xmm0
jle 0x44fa36
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x2ec], xmm1
push 0x12c
call fcn.00498854
mov ecx, eax
add esp, 4
mov dword [ebp - 0x324], ecx
mov byte [ebp - 4], 6
test ecx, ecx
je 0x44fad5
movss xmm0, dword [ebp - 0x2ec]
lea eax, [edi + 0x1b0]
push 0
push dword [ebp - 0x2e4]
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 [0x4ca598]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x4ca5c0]
subss xmm0, dword [esi + 0x1f4]
movss dword [esp], xmm0
call fcn.00447920
push eax
lea ecx, [ebp - 0x3b0]
mov byte [ebp - 4], 0
call fcn.00434d90
jmp 0x44faee
xor eax, eax
lea ecx, [ebp - 0x3b0]
push eax
mov byte [ebp - 4], al
call fcn.00434d90
jmp 0x44faee
mov esi, dword [ebp - 0x304]
inc dword [edi + 0x190]
mov ecx, dword [esi + 0x18]
call fcn.00434fc0
mov edi, eax
mov dword [ebp - 0x2f4], eax
test edi, edi
jne 0x44dc00
mov ecx, dword [0x509a78]
call fcn.004686c0
cmp dword [0x509aa8], 0x64
jle 0x44fb54
mov ecx, dword [0x509434]
lea edx, [ebp - 0x328]
mov eax, dword [0x509aac]
push 0
push 0
mov dword [0x509aa8], 0
mov byte [ebp - 0x328], 0x2f
mov dword [ebp - 0x327], eax
mov eax, dword [ecx]
push edx
push 5
call dword [eax + 4]
mov eax, dword [0x509a90]
cmp eax, 1
je 0x450680
cmp eax, 3
je 0x450680
mov eax, dword [0x509420]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
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.00434f60
mov edi, eax
test edi, edi
je 0x45062d
movss xmm3, dword [0x4cd7b0]
mov dword [ebp - 0x30c], 0xff
nop
movss xmm2, dword [edi + 0x114]
movss xmm4, dword [0x4cd6ac]
movaps xmm0, xmm2
subss xmm0, dword [0x509ab0]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x450609
movss xmm1, dword [edi + 0x11c]
movaps xmm0, xmm1
subss xmm0, dword [0x509ab8]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x450609
addss xmm2, dword [ebp - 0x310]
addss xmm1, dword [ebp - 0x320]
cvtps2pd xmm0, xmm2
movss dword [ebp - 0x2e4], xmm1
movsd qword [ebp - 0x328], xmm0
fld qword [ebp - 0x328]
movsd qword [ebp - 0x3c8], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x4cb310]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x358], xmm0
fld qword [ebp - 0x358]
call fcn.004ac6c0
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
sub esp, 8
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00434a60
fstp dword [ebp - 0x2fc]
movss xmm0, dword [ebp - 0x2fc]
subss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.00434a00
movsd xmm1, qword [0x4cd7c0]
add esp, 8
movsd xmm2, qword [0x4cd640]
fstp dword [ebp - 0x2fc]
fld dword [ebp - 0x2fc]
fstp qword [ebp - 0x358]
movsd xmm0, qword [ebp - 0x358]
andps xmm0, xmm1
comisd xmm2, xmm0
ja 0x44fd38
movsd xmm0, qword [ebp - 0x3c8]
movsd xmm2, qword [0x4cd670]
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x45054c
movss xmm0, dword [ebp - 0x2e4]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x45054c
mov eax, dword [0x509a90]
mov ecx, edi
cmp eax, 4
je 0x450179
cmp eax, 2
je 0x44feb2
call fcn.004343e0
cmp eax, 0x10
jbe 0x44fe44
mov eax, dword [0x4f31ec]
mov ecx, dword [edi + 0x17c]
mov dword [ebp - 0x2e4], ecx
test eax, eax
je 0x45054c
cmp eax, 1
je 0x44fd84
cmp eax, 2
jne 0x44fd98
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2e4], ecx
xor edx, edx
mov dword [ebp - 0x2ec], edx
test ecx, ecx
jle 0x45054c
xor ecx, ecx
mov dword [ebp - 0x308], ecx
mov eax, dword [edi + 0x174]
sub esp, 0x10
movss xmm0, dword [eax + ecx + 8]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [eax + ecx + 4]
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + ecx]
mov ecx, esi
movss dword [esp + 4], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x4cd6a0]
movss dword [esp], xmm0
call fcn.004581e0
mov ecx, edi
call fcn.004343e0
push 0
mov ecx, dword [eax*4 + 0x50ab30]
mov eax, dword [0x509420]
push dword [eax + 0x2a3d8]
call fcn.004413f0
mov edx, dword [ebp - 0x2ec]
mov ecx, dword [ebp - 0x308]
inc edx
add ecx, 0xc
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x308], ecx
cmp edx, dword [ebp - 0x2e4]
jl 0x44fdb0
jmp 0x45054c
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov ecx, edi
call fcn.004343e0
push 0
mov ecx, dword [eax*4 + 0x50ab30]
mov eax, dword [0x509420]
push dword [eax + 0x2a3d8]
call fcn.004413f0
jmp 0x45054c
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x340], xmm0
mov dword [ebp - 0x2fc], eax
call fcn.004343e0
cmp eax, 6
jne 0x44ff48
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.004413f0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
cmp eax, 7
jne 0x44ffc4
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.004413f0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
cmp eax, 0xc
jne 0x450048
movss xmm0, dword [edi + 0x11c]
sub esp, 0x10
mov ecx, esi
movss dword [esp + 0xc], xmm0
movss xmm0, dword [edi + 0x118]
subss xmm0, dword [0x4ca598]
movss dword [esp + 8], xmm0
movss xmm0, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x108]
mulss xmm0, dword [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.004413f0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
test eax, eax
jne 0x45054c
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d0]
call fcn.004413f0
call fcn.004ad3e4
and eax, reloc.WS2_32.dll_closesocket
jns 0x4500d1
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x45054c
test byte [0x503e50], 2
je 0x45054c
movss xmm0, dword [ebp - 0x33c]
sub esp, 0xc
addss xmm0, dword [0x4ca5a8]
mov ecx, dword [ebp - 0x2fc]
mov eax, esp
movss dword [ebp - 0x33c], xmm0
movq xmm0, qword [ebp - 0x340]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
mov ecx, dword [0x509a4c]
call fcn.004843b0
mov eax, dword [esi + 0x16c]
sub esp, 0x10
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 0x450162
mov dword [eax + 4], 0x3e70f0f2
mov ecx, dword [0x509a4c]
call fcn.00483fe0
jmp 0x45054c
mov dword [eax + 4], 0x3f800000
mov ecx, dword [0x509a4c]
call fcn.00483fe0
jmp 0x45054c
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x31c], xmm0
mov dword [ebp - 0x314], eax
call fcn.004343e0
cmp eax, 0xc
jne 0x4502e8
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cd5c4]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cd5bc]
addss xmm0, dword [ebp - 0x31c]
movss dword [ebp - 0x2fc], xmm0
movss dword [ebp - 0x31c], xmm0
call fcn.004ad3e4
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cd5c4]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cd5bc]
addss xmm0, dword [ebp - 0x314]
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 [0x509a4c]
call fcn.004843b0
cvttss2si ecx, dword [ebp - 0x2fc]
sub esp, 0x10
movss xmm1, dword [0x4cd5a8]
lea eax, [ecx + 0x50]
cdq
idiv dword [ebp - 0x30c]
movzx eax, dl
mov dword [ebp - 0x2fc], eax
mov eax, ecx
cdq
mov ecx, 0xff
idiv ecx
mov ecx, esp
movzx eax, dl
mov edx, dword [ebp - 0x2fc]
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 [0x509a4c]
call fcn.00483fe0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
test eax, eax
jne 0x450363
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.004413f0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
cmp eax, 1
jne 0x4503df
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.004413f0
jmp 0x45054c
mov ecx, edi
call fcn.004343e0
cmp eax, 0xd
jne 0x45045b
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 [0x4ca5d0]
movss dword [esp], xmm0
call fcn.004581e0
mov eax, dword [0x509420]
mov ecx, dword [esi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.004413f0
jmp 0x45054c
call fcn.004ad3e4
and eax, reloc.WS2_32.dll_closesocket
jns 0x45046e
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x45054c
test byte [0x503e50], 2
je 0x45054c
call fcn.004ad3e4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x31c]
movups xmmword [ebp - 0x3a0], xmm0
call fcn.004ad3e4
movups xmm1, xmmword [ebp - 0x3a0]
sub esp, 0xc
mov ecx, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4cb300]
divss xmm0, dword [0x4cd6d4]
subss xmm0, dword [0x4cb320]
addss xmm0, dword [ebp - 0x314]
movss dword [ebp - 0x314], xmm0
movss xmm0, dword [ebp - 0x318]
addss xmm0, dword [0x4cd5e0]
mov eax, dword [ebp - 0x314]
unpcklps xmm1, xmm0
movq qword [ecx], xmm1
mov dword [ecx + 8], eax
mov ecx, dword [0x509a64]
call fcn.004843b0
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 [0x509a64]
call fcn.00483fe0
cmp dword [0x509a90], 2
jne 0x450613
mov ecx, edi
call fcn.004343e0
test eax, eax
jne 0x450613
test byte [0x503e50], 2
je 0x450613
mov eax, dword [esi + 0x16c]
sub esp, 0x1c
movss xmm0, dword [edi + 0x118]
mov ecx, esi
movss xmm1, dword [edi + 0x11c]
movss xmm2, dword [edi + 0x114]
cmp dword [eax + 0x1c0], 4
addss xmm0, dword [0x4ca5a8]
mov dword [esp + 0x18], 0x41f00000
mov dword [esp + 0x14], 0x3e4ccccd
jne 0x4505e1
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.0044c590
jmp 0x450613
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.0044c590
jmp 0x450613
mov dword [edi + 0x160], 1
mov ecx, dword [esi + 0x1c]
call fcn.00434fc0
movss xmm3, dword [0x4cd7b0]
mov edi, eax
test edi, edi
jne 0x44fbf0
mov ecx, dword [esi + 0x1c]
call fcn.00434f60
mov edi, eax
test edi, edi
je 0x450680
nop dword [eax + eax]
cmp dword [edi + 0x160], 0
je 0x450672
mov ecx, dword [esi + 0x1c]
push edi
call fcn.00435100
cmp dword [edi + 0x16c], 0xffffffff
jle 0x45066a
mov ecx, dword [esi + 4]
push edi
push dword [edi + 0x170]
call fcn.00467bd0
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
mov ecx, dword [esi + 0x1c]
call fcn.00434fc0
mov edi, eax
test edi, edi
jne 0x450640
mov eax, dword [0x509420]
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 [0x509a90], 0
jne 0x450851
cmp dword [0x4f31ec], 0
je 0x450851
mov ecx, dword [0x509a7c]
call fcn.0048d890
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a7c]
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.0048d800
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a80]
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.0048d800
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a84]
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.0048d800
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a88]
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.0048d800
mov eax, dword [0x509420]
push 0
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
lea ecx, [ebp - 0x3b0]
call fcn.00434f60
test eax, eax
je 0x4508c2
nop dword [eax]
nop word [eax + eax]
push dword [esi + 0x14c]
mov ecx, eax
push dword [esi + 0x148]
call fcn.004479e0
lea ecx, [ebp - 0x3b0]
call fcn.00434fc0
test eax, eax
jne 0x4508a0
mov eax, dword [0x509420]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 0
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
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 [0x509a48]
call fcn.00484290
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a48]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a4c]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a50]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0xc8]
mov ecx, dword [0x509a54]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a58]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a5c]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a64]
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.00484620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a60]
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.00483620
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a68]
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.004862b0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a70]
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.00485280
sub esp, 0x40
mov eax, esp
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a74]
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.0048ade0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a78]
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.004685e0
movups xmm0, xmmword [ebp - 0xd8]
mov ecx, dword [0x509a6c]
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.00487130
mov eax, dword [0x509420]
push 1
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 1
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x509420]
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 [0x509aa4], 0
mov edi, eax
je 0x450e35
cmp dword [esi + 0x28c], 0
je 0x450e35
mov ecx, dword [0x509420]
push 0
call fcn.0043cbb0
mov ecx, edi
mov esi, eax
sub ecx, dword [0x509aa4]
jne 0x450da3
lea eax, [ebp - 0x98]
push str.FPS_38
push eax
call fcn.0043e480
add esp, 8
jmp 0x450dc1
xor edx, edx
mov eax, 0x3e8
div ecx
push eax
lea eax, [ebp - 0x98]
push str.FPS__d
push eax
call fcn.0043e480
add esp, 0xc
mov ecx, dword [0x509420]
call fcn.0043e2d0
mov ecx, dword [0x509420]
sub eax, 0xb4
mov dword [ebp - 0x344], eax
call fcn.0043e2c0
mov ecx, dword [0x509420]
sub eax, 0xc
mov dword [ebp - 0x340], eax
call fcn.0043e2d0
mov ecx, dword [0x509420]
sub eax, 0x82
mov dword [ebp - 0x33c], eax
call fcn.0043e2c0
mov dword [ebp - 0x338], eax
mov ecx, esi
movups xmm0, xmmword [ebp - 0x344]
push 0
lea eax, [ebp - 0x98]
push eax
push 0xffffffffffffffff
push 0
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.004380f0
push str.BBOClient::Draw_13__n
mov ecx, 0x50936c
mov dword [0x509aa4], edi
call fcn.004304a0
lea ecx, [ebp - 0x3b0]
call fcn.00434cd0
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.00498846
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret