Function at 0x476af0
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 0x557e90
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x368
mov eax, dword [0x592c80]
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 [0x5a9554]
xorps xmm1, xmm1
mov esi, dword [0x5aa3e4]
mulss xmm0, dword [0x581308]
mov dword [ebp - 0x2cc], esi
inc dword [esi + 0x20c]
comiss xmm1, xmm0
movss dword [0x5a9554], xmm0
movss dword [ebp - 0x2ec], xmm0
jbe 0x476b80
mov dword [0x5a9554], 0
xorps xmm0, xmm0
movss dword [ebp - 0x2ec], xmm1
mulss xmm0, dword [0x58146c]
cvtps2pd xmm0, xmm0
call fcn.00555240
mov eax, dword [esi + 8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2ec]
mulss xmm0, dword [0x58125c]
movss dword [ebp - 0x2ec], xmm0
movq xmm0, qword [eax + 0x114]
movq qword [0x5aa910], xmm0
mov eax, dword [eax + 0x11c]
mov dword [0x5aa918], eax
cmp dword [esi + 0x210], 0xffffffff
je 0x476c48
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x476c48
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x476c48
mov edx, dword [0x5a9520]
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 0x210]
jne 0x476c2f
test edx, edx
jne 0x476c2f
movq xmm0, qword [ecx + 0x114]
movq qword [0x5aa910], xmm0
mov eax, dword [ecx + 0x11c]
mov dword [0x5aa918], eax
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], edx
je 0x476c2f
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 0x476c48
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x476bf2
mov ecx, esi
call fcn.00483e70
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x20]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0xa8]
mov eax, dword [0x5a942c]
push 1
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x5a942c]
lea edx, [ebp - 0xd8]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x9c], 0x3f800000
mov dword [ebp - 0xb0], 0x3f800000
mov dword [ebp - 0xc4], 0x3f800000
mov dword [ebp - 0xd8], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
movss xmm0, dword [ebp - 0x2ec]
lea eax, [ebp - 0x1e0]
addss xmm0, dword [esi + 0x1f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.004063fb
movss xmm0, dword [esi + 0x1fc]
lea eax, [ebp - 0x220]
push ecx
movss dword [esp], xmm0
push eax
call fcn.0040635f
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1e0]
push eax
push eax
call fcn.0040583c
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0xd8]
push eax
push eax
call fcn.0040583c
mov eax, dword [0x5a942c]
lea edx, [ebp - 0xd8]
push edx
push 2
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov eax, dword [0x5a9550]
cmp eax, 1
je 0x476e1e
cmp eax, 3
je 0x476e73
cmp eax, 2
je 0x476e73
mov eax, dword [0x5a942c]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
cmp dword [0x5a9550], 4
mov eax, dword [0x5a942c]
mov edx, dword [eax + 0x2a3d8]
jne 0x476e18
mov eax, dword [esi + 0x168]
mov eax, dword [eax + 0x12c]
push eax
push edx
jmp 0x476e50
xor eax, eax
push eax
push edx
jmp 0x476e50
cmp dword [esi + 0x288], 0
je 0x476e73
mov eax, dword [0x5a942c]
push 0
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [esi + 0x154]
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + 0xa8]
call fcn.00464c90
mov eax, dword [0x5a942c]
push 1
push 7
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x5a942c]
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
lea eax, [esi + 0x6e4]
push eax
push 0
push ecx
mov edx, dword [ecx]
call dword [edx + 0xb0]
cmp dword [esi + 0x610], 0
jle 0x4770b7
mov eax, 0xfffffa11
lea edx, [esi + 0x5fc]
sub eax, esi
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x2c8], eax
lea ecx, [esi + 0x5b0]
mov eax, 0xfffffa0f
mov dword [ebp - 0x2e4], ecx
sub eax, esi
lea edi, [esi + 0x5f1]
mov dword [ebp - 0x2f8], eax
nop word [eax + eax]
cmp dword [0x5a9550], 2
jne 0x4770b7
test byte [0x5a58a0], 2
je 0x4770b7
movss xmm0, dword [0x581528]
ucomiss xmm0, dword [ecx + 4]
lahf
test ah, 0x44
jnp 0x477090
push 0x58
lea eax, [ebp - 0x190]
push 0
push eax
call fcn.004f0f30
add esp, 0xc
mov dword [ebp - 0x1a0], 1
lea eax, [ebp - 0xe4]
mov dword [ebp - 0x19c], 0x3f800000
mov dword [ebp - 0x198], 0x3f800000
mov dword [ebp - 0x194], 0x3f800000
push eax
lea eax, [ebp - 0x160]
mov dword [ebp - 0xe4], 0xc0800000
push eax
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0x40000000
call fcn.00404e16
mov eax, dword [ebp - 0x2e4]
lea edx, [ebp - 0x1a0]
mov esi, dword [ebp - 0x2c8]
mov dword [ebp - 0x150], 0x3f800000
add esi, edi
mov dword [ebp - 0x148], 0x3f000000
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x2c4]
movq qword [ebp - 0x16c], xmm0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
movss xmm0, dword [eax]
movzx eax, byte [edi - 5]
movss dword [ebp - 0x154], xmm0
mov dword [ebp - 0x174], 0
push edx
movd xmm0, eax
movzx eax, byte [edi]
cvtdq2ps xmm0, xmm0
push esi
movss dword [ebp - 0x19c], xmm0
movd xmm0, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x198], xmm0
movd xmm0, eax
mov eax, dword [0x5a942c]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x194], xmm0
mov ecx, dword [eax + 0x2a3d8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov eax, dword [0x5a942c]
push 1
push esi
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov esi, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2e4]
mov edx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2f8]
inc edi
add edx, 4
add ecx, 0xc
add eax, edi
mov dword [ebp - 0x2c4], edx
mov dword [ebp - 0x2e4], ecx
cmp eax, dword [esi + 0x610]
jl 0x476f10
xor edi, edi
nop dword [eax]
cmp dword [0x5a9550], 2
jne 0x4770d2
test byte [0x5a58a0], 2
jne 0x4770ec
mov eax, dword [0x5a942c]
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 0x4770c0
xor eax, eax
cmp dword [esi + 0x610], eax
jle 0x477114
lea ecx, [esi + 0x5b4]
mov dword [ecx], 0x447a0000
inc eax
add ecx, 0xc
cmp eax, dword [esi + 0x610]
jl 0x477102
movss xmm0, dword [ebp - 0x2ec]
lea eax, [ebp - 0x1e0]
addss xmm0, dword [esi + 0x1f4]
push ecx
movss dword [esp], xmm0
push eax
call fcn.004063fb
movss xmm0, dword [0x581440]
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x581488]
movss dword [ebp - 0x2c4], xmm0
cmp eax, 1
jne 0x477166
movaps xmm0, xmm1
movss dword [ebp - 0x2c4], xmm0
jmp 0x477176
cmp eax, 2
jne 0x477176
movaps xmm0, xmm1
movss dword [ebp - 0x2c4], xmm1
sub esp, 0xc
lea eax, [ebp - 0x2a0]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
push eax
call fcn.004062bc
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x1e0]
push eax
push eax
call fcn.0040583c
mov eax, dword [esi + 0x290]
movss xmm1, dword [0x5813c8]
cmp eax, 1
jne 0x4771cb
movss xmm1, dword [0x5814a0]
jmp 0x4771d8
cmp eax, 2
jne 0x4771d8
movss xmm1, dword [0x58146c]
movss xmm2, dword [0x581568]
lea eax, [ebp - 0x128]
movss xmm0, dword [esi + 0x204]
sub esp, 0xc
addss xmm1, dword [0x5aa914]
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.004062bc
movss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
call fcn.00555240
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2c4]
addss xmm0, dword [ebp - 0xf8]
movss dword [ebp - 0x2f8], xmm0
movss xmm0, dword [esi + 0x1f4]
cvtps2pd xmm0, xmm0
call fcn.00555080
movss xmm1, dword [ebp - 0xf0]
mov eax, dword [esi + 0x290]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x2c4]
subss xmm1, xmm0
movss xmm0, dword [esi + 0x1fc]
movss dword [ebp - 0x2ec], xmm1
cmp eax, 1
jne 0x47729d
movss xmm0, dword [0x581564]
jmp 0x4772aa
cmp eax, 2
jne 0x4772aa
movss xmm0, dword [0x58155c]
push ecx
lea eax, [ebp - 0x220]
movss dword [esp], xmm0
push eax
call fcn.0040635f
push ecx
lea eax, [ebp - 0x260]
mov dword [esp], 0x40490fdb
push eax
call fcn.004063fb
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x1e0]
push eax
push eax
call fcn.0040583c
lea eax, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0x260]
push eax
push eax
call fcn.0040583c
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0x128]
push eax
push eax
call fcn.0040583c
mov eax, dword [0x5a942c]
lea edx, [ebp - 0x128]
push edx
push 2
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
cmp dword [0x5a944c], 0
movss xmm0, dword [ebp - 0x2f8]
xorps xmm0, xmmword [0x5817d0]
movss dword [ebp - 0x2dc], xmm0
movss xmm0, dword [ebp - 0x2ec]
xorps xmm0, xmmword [0x5817d0]
movss dword [ebp - 0x2d4], xmm0
movss xmm0, dword [0x5aa914]
movss dword [ebp - 0x2d8], xmm0
je 0x4774d3
cmp dword [0x593e74], 0
mov ecx, dword [esi + 0x458]
jne 0x4773d8
cmp ecx, 0xffffffff
je 0x4773a4
mov ecx, dword [esi + ecx*4 + 0x434]
cmp dword [ecx + 4], 0
je 0x4773a4
call fcn.004695d0
mov dword [esi + 0x458], 0xffffffff
mov ecx, dword [esi + 0x45c]
cmp ecx, 0xffffffff
je 0x4774d3
mov ecx, dword [esi + ecx*4 + 0x434]
cmp dword [ecx + 4], 0
je 0x4774d3
call fcn.004695d0
mov dword [esi + 0x45c], 0xffffffff
jmp 0x4774d3
mov edi, dword [ebp - 0x2d4]
cmp ecx, 0xffffffff
je 0x477461
movq xmm0, qword [ebp - 0x2dc]
sub esp, 0xc
inc dword [esi + 0x460]
mov eax, esp
movss xmm2, dword [0x5814a8]
mov ecx, dword [esi + ecx*4 + 0x434]
movq qword [eax], xmm0
mov dword [eax + 8], edi
call fcn.004696f0
mov eax, dword [esi + 0x458]
mov eax, dword [esi + eax*4 + 0x434]
mov eax, dword [eax + 4]
test eax, eax
je 0x477461
mov eax, dword [eax + 4]
mov ecx, dword [eax]
imul eax, dword [esi + 0x460], 0xffffff9c
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x3c]
cmp dword [esi + 0x460], 0x64
jl 0x477461
mov ecx, dword [esi + 0x458]
mov ecx, dword [esi + ecx*4 + 0x434]
call fcn.004695d0
mov dword [esi + 0x458], 0xffffffff
mov ecx, dword [esi + 0x45c]
cmp ecx, 0xffffffff
je 0x477494
movq xmm0, qword [ebp - 0x2dc]
sub esp, 0xc
movss xmm2, dword [0x5814a8]
mov eax, esp
mov ecx, dword [esi + ecx*4 + 0x434]
movq qword [eax], xmm0
mov dword [eax + 8], edi
call fcn.004696f0
mov eax, dword [esi + 0x45c]
cmp eax, 0xffffffff
je 0x4774d3
mov ecx, dword [esi + 0x464]
cmp ecx, 0x64
jge 0x4774d3
lea edi, [ecx + 1]
mov dword [esi + 0x464], edi
mov eax, dword [esi + eax*4 + 0x434]
mov eax, dword [eax + 4]
test eax, eax
je 0x4774d3
mov eax, dword [eax + 4]
mov ecx, dword [eax]
lea eax, [edi - 0x64]
imul eax, eax, 0x64
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x3c]
movss xmm1, dword [esi + 0x1f4]
sub esp, 0xc
movq xmm0, qword [ebp - 0x2dc]
mov eax, esp
mov ecx, dword [ebp - 0x2d4]
xorps xmm1, xmmword [0x5817d0]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
call fcn.00469750
mov eax, dword [0x5a942c]
lea edx, [ebp - 0xd8]
add esp, 0xc
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x9c], 0x3f800000
mov dword [ebp - 0xb0], 0x3f800000
mov dword [ebp - 0xc4], 0x3f800000
mov dword [ebp - 0xd8], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
cmp dword [esi + 0x210], 0xffffffff
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x164]
mov eax, dword [eax + 0x168]
mov dword [ebp - 0x2f4], edx
mov dword [ebp - 0x2e4], eax
je 0x477669
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x477669
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x477669
mov edx, dword [0x5a9520]
nop
mov eax, dword [ecx + 0x17c]
cmp eax, dword [esi + 0x210]
jne 0x47764a
test edx, edx
jne 0x47764a
mov eax, dword [ecx + 0x164]
mov edi, dword [ecx + 0x168]
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2e4], edi
cmp dword [ecx + 0xc], edx
je 0x47764a
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 0x477663
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x477610
mov edx, dword [ebp - 0x2f4]
mov ecx, dword [0x5a9550]
mov edi, 0x593fe4
test ecx, ecx
jne 0x47780b
cmp dword [esi + 0x2a4], 1
jge 0x47780b
mov eax, edx
sub eax, dword [edi - 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x4777f6
mov eax, dword [ebp - 0x2e4]
sub eax, dword [edi]
cdq
xor eax, edx
sub eax, edx
cmp eax, 5
jge 0x4777f6
movd xmm0, dword [edi - 4]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
movss dword [ebp - 0x2c8], xmm0
movd xmm0, dword [edi]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
movss dword [ebp - 0x2b0], xmm0
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x2c8]
movss dword [ebp - 0x2c4], xmm0
movss dword [ebp - 0x304], xmm0
call fcn.0052ab4e
xorps xmm0, xmm0
movd xmm2, eax
cvtdq2ps xmm2, xmm2
mov eax, dword [0x5a9550]
mulss xmm2, dword [0x58146c]
divss xmm2, dword [0x58153c]
addss xmm2, xmm0
addss xmm2, dword [ebp - 0x2b0]
movss dword [ebp - 0x2fc], xmm2
cmp eax, 1
je 0x477797
cmp eax, 3
je 0x477797
movss xmm1, dword [ebp - 0x2c4]
push ecx
cmp eax, 4
jne 0x47777a
mov ecx, dword [esi + 0x168]
call fcn.004c39b0
jmp 0x477797
cmp eax, 2
jne 0x47778c
mov ecx, dword [esi + 0x16c]
call fcn.004b2770
jmp 0x477797
mov ecx, dword [esi + 0x158]
call fcn.00497cd0
mov ecx, dword [0x5a9574]
mov eax, dword [ebp - 0x2fc]
movss dword [ebp - 0x300], xmm0
movq xmm0, qword [ebp - 0x304]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x2c], 1
mov dword [ecx + 0x1c], eax
call fcn.0052ab4e
mov ecx, dword [0x5a9574]
sub esp, 0x10
test al, 1
mov eax, esp
push 1
je 0x4777e1
movups xmm0, xmmword [0x575e74]
jmp 0x4777e8
movups xmm0, xmmword [0x575e84]
movups xmmword [eax], xmm0
call fcn.004b7e80
mov ecx, dword [0x5a9550]
mov edx, dword [ebp - 0x2f4]
add edi, 0x50
cmp edi, 0x594764
jl 0x477674
cmp dword [esi + 0x290], 0
jne 0x477b79
test byte [0x5a58a0], 1
je 0x477b79
cmp ecx, 1
je 0x477ae2
cmp ecx, 3
je 0x477ae2
cmp ecx, 2
je 0x477ae2
cmp ecx, 4
jne 0x4779d5
mov eax, dword [esi + 0x2a4]
cmp eax, 6
ja case.0x477858.0
jmp dword [eax*4 + 0x47b584]
mov eax, dword [0x5a942c]
push 1
push 0x1c
mov dword [ebp - 0x2d0], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2b4], 0x428c0000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0xff6e738f
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0xff000000
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [ebp - 0x2d0]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b4]
jmp 0x477b63
mov dword [ebp - 0x2d0], 0x41a00000
mov dword [ebp - 0x2b4], 0x425c0000
mov eax, dword [0x5a942c]
push 1
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push 0xff9696be
mov eax, dword [0x5a942c]
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [ebp - 0x2d0]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b4]
jmp 0x477b63
mov dword [ebp - 0x2d0], 0x41f00000
mov dword [ebp - 0x2b4], 0x428c0000
jmp 0x477914
mov eax, dword [0x5a942c]
push 1
push 0x1c
mov dword [ebp - 0x2d0], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2b4], 0x428c0000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push 0xff5a93f1
jmp 0x477931
mov eax, dword [0x5a942c]
push 1
push 0x1c
mov dword [ebp - 0x2c8], 0x41f00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2b0], 0x42c80000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
movss xmm1, dword [esi + 0x74c]
addss xmm1, dword [0x5812c0]
divss xmm1, dword [0x581338]
movaps xmm0, xmm1
mulss xmm0, dword [0x5814d8]
cvttss2si eax, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [0x5814f0]
mov dword [ebp - 0x2c4], eax
mulss xmm0, dword [0x5814e4]
mov eax, dword [0x5a942c]
cvttss2si ecx, xmm1
mov esi, dword [eax + 0x2a3d8]
mov eax, dword [ebp - 0x2c4]
or eax, 0xffffff00
shl eax, 8
mov edi, dword [esi]
cvttss2si edx, xmm0
mov dword [ebp - 0x2c4], eax
movzx eax, dl
mov edx, dword [ebp - 0x2c4]
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 [0x5a942c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [ebp - 0x2c8]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [ebp - 0x2b0]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov esi, dword [ebp - 0x2cc]
jmp 0x477b79
mov eax, dword [0x5a942c]
push 1
push 0x1c
mov dword [ebp - 0x2c8], 0x41a00000
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2b0], 0x42340000
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0xff00001e
push 0x22
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 3
push 0x23
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push dword [ebp - 0x2c8]
push 0x24
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2b0]
mov eax, dword [0x5a942c]
push 0x25
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 3
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a9550]
cmp eax, 1
je 0x477c39
cmp eax, 3
je 0x477c39
cmp eax, 4
jne 0x477bc9
push dword [ebp - 0x2e4]
mov ecx, dword [esi + 0x168]
push dword [ebp - 0x2f4]
call fcn.004c34a0
jmp 0x477c68
cmp eax, 2
jne 0x477bea
push dword [ebp - 0x2e4]
mov ecx, dword [esi + 0x16c]
push dword [ebp - 0x2f4]
call fcn.004b2110
jmp 0x477c68
mov eax, dword [esi + 0x158]
sub esp, 8
movq xmm0, qword [ebp - 0x2dc]
mov ecx, dword [ebp - 0x2d4]
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.004976b0
mov ecx, dword [esi + 0x158]
call fcn.0049b5e0
jmp 0x477c68
mov eax, dword [0x5a942c]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
push dword [ebp - 0x2e4]
mov ecx, dword [esi + 0x164]
push dword [ebp - 0x2f4]
call fcn.0048e210
mov eax, dword [esi + 0x160]
push 2
push 0x16
mov dword [eax + 8], 0
mov eax, dword [0x5a942c]
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x5a9550]
cmp eax, 1
je 0x477cce
cmp eax, 3
je 0x477cce
cmp eax, 4
je 0x477cc7
cmp eax, 2
je 0x477cc7
mov ecx, esi
call fcn.004827c0
jmp 0x477cce
mov ecx, esi
call fcn.00481d20
push 0xc
mov dword [ebp - method.DoublyLinkedList.virtual_0], vtable.DoublyLinkedList.0
call fcn.004c8b9c
mov dword [ebp - 0x2c4], eax
mov ecx, eax
add esp, 4
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x308], 1
mov dword [eax + 4], eax
mov dword [eax], eax
mov dword [eax + 8], 0
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 4], 0
xorps xmm2, xmm2
movss xmm0, dword [esi + 0x1f4]
movsd xmm1, qword [0x5813e0]
cvtps2pd xmm0, xmm0
comisd xmm2, xmm0
jbe 0x477d3f
addsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x477d35
comisd xmm0, xmm1
jb 0x477d4f
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x477d45
mov ecx, dword [esi + 0x18]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x1f4], xmm0
cmp dword [ecx + 0xc], 0
je 0x479f67
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov edi, dword [eax + 8]
mov dword [ebp - 0x2c8], edi
test edi, edi
je 0x479f67
nop dword [eax]
nop word [eax + eax]
movss xmm0, dword [ebp - 0x2f8]
addss xmm0, dword [edi + 0x114]
movss xmm1, dword [ebp - 0x2ec]
addss xmm1, dword [edi + 0x11c]
movss dword [ebp - 0x2b4], xmm0
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x2b0], xmm1
movsd qword [ebp - 0x2c0], xmm0
movaps xmm0, xmm1
xorps xmm0, xmmword [0x5817d0]
fld qword [ebp - 0x2c0]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x2c0], xmm0
fld qword [ebp - 0x2c0]
call fcn.00554b20
movsd xmm1, qword [0x5813e0]
xorps xmm2, xmm2
fstp qword [ebp - 0x2c0]
movsd xmm0, qword [ebp - 0x2c0]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
comisd xmm2, xmm0
jbe 0x477e2a
nop dword [eax + eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x477e20
comisd xmm0, xmm1
jb 0x477e3a
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x477e30
movsd xmm2, qword [0x5813c0]
cvtsd2ss xmm0, xmm0
subss xmm0, dword [esi + 0x1f4]
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x477e6a
nop dword [eax + eax]
subsd xmm0, xmm1
comisd xmm0, xmm2
ja 0x477e60
movsd xmm2, qword [0x581598]
comisd xmm2, xmm0
jb 0x477e8a
nop dword [eax + eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
jae 0x477e80
movsd xmm3, qword [0x5817b0]
movsd xmm1, qword [0x581388]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
andps xmm0, xmm3
comisd xmm1, xmm0
ja 0x477f0f
movss xmm1, dword [ebp - 0x2b4]
movsd xmm4, qword [0x5813f8]
movss xmm2, dword [ebp - 0x2b0]
cvtps2pd xmm1, xmm1
andps xmm1, xmm3
comisd xmm4, xmm1
jbe 0x477edb
cvtps2pd xmm0, xmm2
andps xmm0, xmm3
comisd xmm4, xmm0
ja 0x477f0f
movsd xmm4, qword [0x581418]
comisd xmm1, xmm4
jae 0x477f04
cvtps2pd xmm0, xmm2
andps xmm0, xmm3
comisd xmm0, xmm4
jae 0x477f04
mov dword [edi + 0x1a8], 0
jmp 0x479f3e
inc dword [edi + 0x1a8]
jmp 0x479f3e
movss xmm1, dword [edi + 0x108]
mulss xmm1, dword [0x581568]
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.0047fff0
cmp dword [edi + 0x178], 0xffffffff
jle 0x478e15
mov eax, dword [edi + 0x194]
lea edx, [eax + 0x108]
test eax, eax
je 0x477f8b
mov eax, dword [edx]
mov dword [ebp - 0x2b0], eax
test eax, eax
je 0x477f8b
mov eax, dword [0x5a942c]
push dword [ebp - 0x2b0]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
jmp 0x477fb4
mov eax, dword [0x5a942c]
push dword [edx]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [edi + 0x178]
inc dword [0x5a955c]
mov dword [0x5a952c], eax
mov eax, dword [0x5a942c]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
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 0x47817f
cmp eax, 1
jne 0x4780d9
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2b0], eax
test eax, eax
jle 0x4780d9
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2b0]
mov eax, dword [0x5a942c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x128]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x478093
mov dword [edi + 0x19c], 0
mov esi, dword [esi + 0x128]
cdq
idiv dword [esi + 0x160]
cmp dword [esi + 0x15c], 0
je 0x4783cb
mov eax, dword [esi + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4783bf
cmp dword [ecx + 4], edx
je 0x4783c5
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4780c1
jmp 0x4783bf
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2b0], eax
test eax, eax
jle 0x4783cb
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2b0]
mov eax, dword [0x5a942c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
mov eax, dword [edi + 0x190]
mov ecx, dword [esi + 0x12c]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x478139
mov dword [edi + 0x19c], 0
mov esi, dword [esi + 0x12c]
cdq
idiv dword [esi + 0x160]
cmp dword [esi + 0x15c], 0
je 0x4783cb
mov eax, dword [esi + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4783bf
cmp dword [ecx + 4], edx
je 0x4783c5
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x478167
jmp 0x4783bf
cmp dword [edi + 0x198], 0
je 0x478308
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2bc], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2b0], eax
test eax, eax
jle 0x4783cb
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 - 0x2bc]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2b0]
mov eax, edx
push eax
mov dword [ebp - 0x2b4], eax
mov eax, dword [0x5a942c]
push dword [eax + 0x2a3d8]
call fcn.0045f250
mov esi, dword [ebp - 0x2cc]
mov edx, dword [esi + 0x124]
cmp dword [edx + 0x15c], 0
je 0x47824a
mov eax, dword [edx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47823e
mov edx, dword [ebp - 0x2b4]
cmp dword [ecx + 4], edx
je 0x4782f7
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x478225
mov edx, dword [esi + 0x124]
mov eax, dword [edx + 0x154]
mov dword [edx + 0x158], eax
mov eax, dword [ebp - 0x2b4]
cmp eax, 1
je 0x47825e
cmp eax, 8
jne 0x4783cb
cmp dword [edi + 0x220], eax
je 0x4783cb
call fcn.0052ab4e
and eax, reloc.WS2_32.dll_closesocket
jns 0x47827b
dec eax
or eax, 0xfffffffc
inc eax
cmp dword [0x5a944c], 0
mov edx, dword [ebp - 0x2b4]
movq xmm0, qword [edi + 0x114]
mov ecx, dword [edi + 0x11c]
mov dword [ebp - 0x2bc], eax
mov dword [edi + 0x220], edx
mov eax, dword [esi + eax*4 + 0x4e0]
je 0x4782e0
cmp dword [eax + 4], 0
je 0x4782e0
movq qword [eax + 0x10], xmm0
mov dword [eax + 0x18], ecx
mov ecx, dword [eax + 8]
mov dword [eax + 0x44], 0x42480000
mov dword [eax + 0x40], 0x40000000
add eax, 0xc
push 1
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x30]
mov dword [0x593e78], 0x42480000
mov ecx, dword [ebp - 0x2bc]
mov ecx, dword [esi + ecx*4 + 0x4e0]
call fcn.00469420
jmp 0x4783cb
mov ecx, dword [esi + 0x124]
mov dword [ecx + 0x158], eax
jmp 0x47824a
mov ecx, dword [esi + 0x120]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4783cb
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 [0x5a942c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
mov eax, dword [ebp - 0x2cc]
mov eax, dword [eax + 0x120]
mov dword [ebp - 0x2bc], eax
mov eax, dword [edi + 0x190]
cdq
and edx, 3
add eax, edx
sar eax, 2
sub eax, esi
mov esi, dword [ebp - 0x2bc]
add eax, edi
cdq
idiv dword [esi + 0x160]
cmp dword [esi + 0x15c], 0
je 0x4783cb
mov eax, dword [esi + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4783bf
nop
cmp dword [ecx + 4], edx
je 0x4783c5
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4783b0
mov eax, dword [esi + 0x154]
mov dword [esi + 0x158], eax
cmp dword [edi + 0x254], 0xffffffff
jle 0x478602
inc dword [edi + 0x258]
mov eax, dword [edi + 0x258]
cmp eax, 0x1e
jle 0x4783f5
mov dword [edi + 0x254], 0xffffffff
jmp 0x4783fe
cmp eax, 0xa
jle 0x478602
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 [0x581318]
mov dword [ebp - 0x2bc], eax
jb 0x47843a
mov dword [ebp - 0x2b4], 0xff
jmp 0x478469
comiss xmm1, xmm0
jb 0x47844b
mov dword [ebp - 0x2b4], 0
jmp 0x478469
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov dword [ebp - 0x2b4], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x581318]
jb 0x478486
mov dword [ebp - 0x2b0], 0xff
jmp 0x4784b2
comiss xmm1, xmm0
jb 0x478497
mov dword [ebp - 0x2b0], 0
jmp 0x4784b2
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov dword [ebp - 0x2b0], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x581318]
jb 0x4784cd
mov esi, 0xff
jmp 0x4784f0
comiss xmm1, xmm0
jb 0x4784d6
xor esi, esi
jmp 0x4784f0
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov esi, eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x581318]
jb 0x478508
mov eax, 0xff
jmp 0x478526
comiss xmm1, xmm0
jb 0x478511
xor eax, eax
jmp 0x478526
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2b4]
shl eax, 8
or eax, dword [ebp - 0x2b0]
shl eax, 8
or eax, esi
mov dword [ebp - 0x2b0], eax
call fcn.0052ab4e
mov ecx, dword [ebp - 0x2bc]
sub esp, 0x10
mov esi, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [0x5a9510]
push 5
mov dword [eax + 0x2c], 1
mulss xmm0, dword [0x581338]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x358]
movss dword [ebp - 0x358], xmm0
movq xmm0, qword [ebp - 0x35c]
movq qword [eax + 0x14], xmm0
movd xmm0, dword [ebp - 0x2b0]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x2b0]
mov ecx, eax
mov edx, eax
shr ecx, 0x18
shr edx, 8
shr eax, 0x10
movd xmm2, ecx
movd xmm1, edx
movd xmm3, eax
punpckldq xmm3, xmm0
xorps xmm0, xmm0
punpckldq xmm1, xmm2
punpckldq xmm3, xmm1
andps xmm3, xmmword [0x581610]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
cvtdq2ps xmm0, xmm3
mulps xmm0, xmmword [0x581660]
movups xmmword [esi], xmm0
call fcn.004b9f30
cmp dword [edi + 0x26c], 0
je 0x47883f
mov eax, dword [edi + 0x19c]
mov esi, dword [ebp - 0x2cc]
cmp eax, 1
jne 0x4786a1
mov ecx, dword [esi + 0x128]
mov edx, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], edx
test edx, edx
jle 0x4786a1
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2bc]
cmp dword [ecx + 0x15c], 0
je 0x478686
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x478674
cmp dword [ecx + 4], edx
je 0x47868d
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x478665
mov ecx, dword [esi + 0x128]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
jmp 0x4787d7
mov ecx, dword [esi + 0x128]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x4787d7
cmp eax, 2
jne 0x47872c
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x47872c
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2bc]
cmp dword [ecx + 0x15c], 0
je 0x478711
mov eax, dword [ecx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4786ff
nop
cmp dword [ecx + 4], edx
je 0x478718
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4786f0
mov ecx, dword [esi + 0x12c]
mov eax, dword [ecx + 0x154]
mov dword [ecx + 0x158], eax
xor eax, eax
jmp 0x4787d7
mov ecx, dword [esi + 0x12c]
mov dword [ecx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x4787d7
cmp dword [edi + 0x198], 0
je 0x478a5b
mov eax, dword [esi + 0x124]
mov dword [ebp - 0x2b0], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x478a5b
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 - 0x2bc]
mov esi, edx
mov edx, dword [ebp - 0x2b0]
cmp dword [edx + 0x15c], 0
je 0x4787cf
mov eax, dword [edx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4787c3
nop dword [eax]
cmp dword [ecx + 4], esi
je 0x478aea
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4787b0
mov eax, dword [edx + 0x154]
mov dword [edx + 0x158], eax
xor eax, eax
mov esi, dword [ebp - 0x2cc]
movss xmm0, dword [edi + 0x11c]
sub esp, 8
movss xmm2, dword [edi + 0x108]
mov ecx, esi
mulss xmm2, dword [0x581568]
movss xmm3, dword [edi + 0x114]
movss dword [esp + 4], xmm0
movss xmm0, dword [edi + 0x118]
movss dword [esp], xmm0
push eax
call fcn.00480130
lea eax, [edi + 0x274]
test eax, eax
je 0x478827
push edi
mov ecx, esi
call fcn.00482b30
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x26c]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
lea eax, [edi + 0x108]
mov dword [ebp - 0x2bc], 0
lea esi, [edi + 0x34c]
mov dword [ebp - 0x2b0], eax
mov edi, dword [ebp - 0x2bc]
cmp dword [esi], 0
je 0x478875
push edi
push eax
mov ecx, esi
call fcn.00485260
mov eax, dword [ebp - 0x2b0]
inc edi
add esi, 0xd0
cmp edi, 2
jl 0x478861
mov edi, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x2f4]
sub eax, dword [edi + 0x164]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x479f38
mov eax, dword [ebp - 0x2e4]
sub eax, dword [edi + 0x168]
mov esi, dword [ebp - 0x2cc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x479f3e
or ecx, 0xffffffff
mov dword [ebp - 0x2b4], ecx
cmp edi, dword [esi + 0x10]
jne 0x4788f1
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 - 0x2b4], ecx
movss xmm2, dword [0x581568]
movss dword [ebp - 0x2b0], xmm2
cmp edi, dword [esi + 8]
jne 0x478939
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [0x581318]
movss dword [ebp - 0x2b0], xmm1
jb 0x478939
movss dword [ebp - 0x2b0], xmm2
push 0x12c
call fcn.004c8b9c
movss xmm0, dword [ebp - 0x2b0]
add esp, 4
mov dword [ebp - 0x2bc], eax
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x581420]
addss xmm3, dword [0x581318]
subss xmm1, dword [esi + 0x1f4]
movss xmm2, dword [edi + 0x114]
push 0
push dword [ebp - 0x2b4]
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.0046ffa0
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x478a17
mov esi, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2d0]
push 0xc
mov dword [ebp - 0x2d0], eax
mov esi, dword [esi]
mov dword [ebp - 0x30c], esi
call fcn.004c8b9c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c8], ecx
mov dword [ecx + 8], 0
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [esi + 4], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0x2cc]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x30c], ecx
cmp byte [edi + 0x1d0], 0
lea eax, [edi + 0x1d0]
je 0x478c15
push 0xd
push str.Administrator
push eax
call fcn.00528dbb
add esp, 0xc
test eax, eax
jne 0x478af8
push 0x12c
call fcn.004c8b9c
add esp, 4
push 1
push 0xff64ff64
jmp 0x478b56
mov eax, dword [esi + 0x120]
mov dword [ebp - 0x2b0], eax
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x478827
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]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2bc]
mov esi, edx
mov edx, dword [ebp - 0x2b0]
cmp dword [edx + 0x15c], 0
je 0x4787cf
mov eax, dword [edx + 0x154]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4787c3
cmp dword [ecx + 4], esi
je 0x478aea
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x478ad6
jmp 0x4787c3
mov dword [edx + 0x158], eax
mov eax, dword [eax + 8]
jmp 0x4787d1
push 9
lea eax, [edi + 0x1d0]
push str.Moderator
push eax
call fcn.00528dbb
add esp, 0xc
test eax, eax
je 0x478b42
push 0xf
lea eax, [edi + 0x1d0]
push str.Trial_Moderator
push eax
call fcn.00528dbb
add esp, 0xc
test eax, eax
je 0x478b42
push 0x12c
call fcn.004c8b9c
add esp, 4
push 1
push 0xff00bfff
jmp 0x478b56
push 0x12c
call fcn.004c8b9c
add esp, 4
push 1
push 0xffffff00
mov dword [ebp - 0x2bc], eax
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x581420]
addss xmm3, dword [0x581328]
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.0046ffa0
mov dword [ebp - 0x2b0], eax
push 0xc
mov dword [eax + 0x118], 0x41a00000
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
mov eax, dword [ebp - 0x2c4]
mov esi, dword [eax]
mov dword [ebp - 0x30c], esi
call fcn.004c8b9c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x2b0]
mov dword [ebp - 0x2bc], ecx
mov dword [ecx + 8], 0
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov dword [ecx], esi
mov dword [esi + 4], ecx
mov eax, dword [ecx + 4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x30c], ecx
mov esi, dword [ebp - 0x2cc]
xor eax, eax
mov dword [ebp - 0x2b0], eax
cmp edi, dword [esi + 0x10]
jne 0x479f3e
imul ecx, eax, 0xd0
mov dword [ebp - 0x2b4], ecx
cmp dword [ecx + edi + 0x34c], 0
je 0x478e00
movss xmm0, dword [0x58133c]
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0xbe4ccccd
cmp eax, 1
jne 0x478c79
movss xmm0, dword [0x581578]
subss xmm0, dword [edi + 0x108]
movss dword [ebp - 0x2bc], xmm0
cvtps2pd xmm0, xmm0
call fcn.00555080
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
push ecx
movss xmm0, dword [edi + 0x118]
mulss xmm1, dword [0x5812dc]
addss xmm0, dword [0x5812f8]
addss xmm1, dword [edi + 0x11c]
movss dword [ebp - 0x2c8], xmm0
movss dword [esp], xmm1
movss xmm1, dword [ebp - 0x2bc]
cvtps2pd xmm0, xmm1
call fcn.00555240
movss xmm1, dword [edi + 0x108]
xorps xmm2, xmm2
mulss xmm1, dword [0x581568]
mov ecx, esi
movss xmm3, dword [ebp - 0x2c8]
cvtsd2ss xmm2, xmm0
mulss xmm2, dword [0x5812dc]
addss xmm2, dword [edi + 0x114]
call fcn.0047fff0
lea eax, [esi + 0x1b4]
push eax
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.00405150
push 0x12c
call fcn.004c8b9c
add esp, 4
mov dword [ebp - 0x2bc], eax
movss xmm1, dword [0x581420]
subss xmm1, dword [esi + 0x1f4]
movss xmm0, dword [ebp - 0x2a4]
movss xmm3, dword [ebp - 0x2a8]
movss xmm2, dword [ebp - 0x2ac]
push 0
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x2b4]
add ecx, 0x354
mov dword [esp], 0xbf800000
add ecx, edi
push ecx
push ecx
mov ecx, eax
movss dword [esp], xmm0
call fcn.0046ffa0
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x478dfa
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
mov eax, dword [ebp - 0x2c4]
push 0xc
mov esi, dword [eax]
mov dword [ebp - 0x30c], esi
call fcn.004c8b9c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c8], ecx
mov dword [ecx + 8], 0
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov dword [esi + 4], ecx
mov eax, dword [ecx + 4]
mov esi, dword [ebp - 0x2cc]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x30c], ecx
mov eax, dword [ebp - 0x2b0]
inc eax
mov dword [ebp - 0x2b0], eax
cmp eax, 2
jl 0x478c23
jmp 0x479f3e
mov eax, dword [edi + 0x160]
cmp eax, 1
jne 0x479547
mov eax, dword [0x5a942c]
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 0x478e50
cmp eax, 8
jle 0x478e50
push 2
jmp 0x478e52
push 1
mov eax, dword [0x5a942c]
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [edi + 0x338]
mov dword [ebp - 0x2b4], eax
test eax, eax
jne 0x478e97
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 + 0x5a9580]
mov dword [ebp - 0x2b4], ecx
mov edx, dword [edi + 0x33c]
mov dword [ebp - 0x2b0], edx
test edx, edx
jne 0x478ec6
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 + 0x5a98b0]
mov dword [ebp - 0x2b0], edx
mov ecx, dword [edi + 0x340]
test ecx, ecx
jne 0x478ee9
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 + 0x5a9be0]
cmp dword [edi + 0x180], 0x1b
jne 0x478eff
cmp dword [edi + 0x1ac], 0
jne 0x4791c1
cmp dword [edi + 0x1a4], 0
je 0x478f42
mov eax, dword [edi + 0x190]
cmp eax, 0x14
jle 0x478f42
test al, 1
je 0x4791c1
mov ecx, dword [ebp - 0x2b4]
test ecx, ecx
je 0x4791a9
mov eax, dword [ecx + 0x160]
test eax, eax
jle 0x4791a9
cdq
sub eax, edx
sar eax, 1
push eax
jmp 0x479197
cmp dword [edi + 0x19c], 0
je 0x478fe9
test ecx, ecx
je 0x478f88
mov eax, dword [ecx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x478f88
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ebp - 0x2bc]
mov eax, dword [0x5a942c]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
jmp 0x478fa0
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
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 + 0x5a9be0]
mov eax, dword [edi + 0x190]
cdq
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x160]
jl 0x4791c1
mov dword [edi + 0x19c], 0
mov dword [edi + 0x190], 0
jmp 0x4791c1
cmp dword [edi + 0x1a0], 0
je 0x4790e4
test edx, edx
je 0x479084
cmp dword [edx + 0x160], 0
lea eax, [edx + 0x160]
mov dword [ebp - 0x2bc], eax
jle 0x479084
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 [0x58146c]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [edi + 0x190]
mov ecx, dword [ebp - 0x2bc]
cdq
sub eax, edx
sar eax, 1
cdq
idiv dword [ecx]
mov eax, dword [0x5a942c]
mov ecx, dword [ebp - 0x2b0]
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
jmp 0x47909c
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
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 + 0x5a98b0]
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 0x4791c1
mov dword [edi + 0x1a0], 0
jmp 0x4791c1
cmp dword [edi + 0x198], 0
je 0x479140
test edx, edx
je 0x4791a9
mov eax, dword [edx + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4791a9
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 - 0x2b0]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2bc]
jmp 0x479196
mov eax, dword [ebp - 0x2b4]
test eax, eax
je 0x4791a9
mov eax, dword [eax + 0x160]
mov dword [ebp - 0x2bc], eax
test eax, eax
jle 0x4791a9
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 - 0x2b4]
add eax, eax
sub esi, eax
lea eax, [edi + esi]
cdq
idiv dword [ebp - 0x2bc]
push edx
mov eax, dword [0x5a942c]
push dword [eax + 0x2a3d8]
call fcn.0045f250
jmp 0x4791c1
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xc8]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
cmp dword [edi + 0x180], 0x1b
jne 0x47930b
cmp dword [edi + 0x1ac], 0
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x2dc], xmm0
jne 0x479264
call fcn.0052ab4e
mov ecx, dword [0x5a9540]
sub esp, 0x10
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mov dword [ecx + 0x2c], 1
push 5
mulss xmm0, dword [0x5812c0]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x2d8]
movss dword [ebp - 0x2d8], xmm0
movq xmm0, qword [ebp - 0x2dc]
movq qword [ecx + 0x14], xmm0
cvtdq2ps xmm0, xmmword [0x581610]
mov dword [ecx + 0x1c], esi
mulps xmm0, xmmword [0x581660]
movups xmmword [eax], xmm0
call fcn.004b7e80
jmp 0x47930b
call fcn.0052ab4e
mov ecx, dword [0x5a9574]
sub esp, 0x10
movd xmm0, eax
mov eax, esp
cvtdq2ps xmm0, xmm0
mov dword [ecx + 0x2c], 1
push 5
mulss xmm0, dword [0x5812f8]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x2d8]
movss dword [ebp - 0x2d8], xmm0
movq xmm0, qword [ebp - 0x2dc]
movq qword [ecx + 0x14], xmm0
cvtdq2ps xmm0, xmmword [0x581610]
mov dword [ecx + 0x1c], esi
mulps xmm0, xmmword [0x581660]
movaps xmmword [ebp - 0x350], xmm0
movups xmmword [eax], xmm0
call fcn.004b7e80
mov eax, dword [0x5a9510]
sub esp, 0x10
movq xmm0, qword [ebp - 0x2dc]
movq qword [eax + 0x14], xmm0
movaps xmm0, xmmword [ebp - 0x350]
mov dword [eax + 0x2c], 1
mov dword [eax + 0x1c], esi
mov eax, esp
push 5
movups xmmword [eax], xmm0
call fcn.004b9f30
cmp dword [edi + 0x254], 0xffffffff
jle 0x479da8
inc dword [edi + 0x258]
mov eax, dword [edi + 0x258]
cmp eax, 0x1e
jle 0x479335
mov dword [edi + 0x254], 0xffffffff
jmp 0x47933e
cmp eax, 0xa
jle 0x479da8
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 [0x581318]
mov dword [ebp - 0x2bc], eax
jb 0x47937a
mov dword [ebp - 0x2b0], 0xff
jmp 0x4793a9
comiss xmm1, xmm0
jb 0x47938b
mov dword [ebp - 0x2b0], 0
jmp 0x4793a9
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov dword [ebp - 0x2b0], eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x260]
comiss xmm0, dword [0x581318]
jb 0x4793c6
mov dword [ebp - 0x2b4], 0xff
jmp 0x4793f2
comiss xmm1, xmm0
jb 0x4793d7
mov dword [ebp - 0x2b4], 0
jmp 0x4793f2
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov dword [ebp - 0x2b4], eax
movss xmm0, dword [edi + 0x264]
xorps xmm1, xmm1
comiss xmm0, dword [0x581318]
jb 0x47940d
mov esi, 0xff
jmp 0x479430
comiss xmm1, xmm0
jb 0x479416
xor esi, esi
jmp 0x479430
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
mov esi, eax
xorps xmm1, xmm1
movss xmm0, dword [edi + 0x268]
comiss xmm0, dword [0x581318]
jb 0x479448
mov eax, 0xff
jmp 0x479466
comiss xmm1, xmm0
jb 0x479451
xor eax, eax
jmp 0x479466
mulss xmm0, dword [0x581504]
addss xmm0, dword [0x5812e0]
call fcn.00554730
or eax, 0x5f
shl eax, 8
or eax, dword [ebp - 0x2b0]
shl eax, 8
or eax, dword [ebp - 0x2b4]
shl eax, 8
or eax, esi
mov dword [ebp - 0x2b0], eax
call fcn.0052ab4e
mov ecx, dword [ebp - 0x2bc]
sub esp, 0x10
mov esi, esp
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [0x5a9510]
push 5
mov dword [eax + 0x2c], 1
mulss xmm0, dword [0x581338]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x364]
movss dword [ebp - 0x364], xmm0
movq xmm0, qword [ebp - 0x368]
movq qword [eax + 0x14], xmm0
movd xmm0, dword [ebp - 0x2b0]
mov dword [eax + 0x1c], ecx
mov eax, dword [ebp - 0x2b0]
mov ecx, eax
mov edx, eax
shr ecx, 0x18
shr edx, 8
shr eax, 0x10
movd xmm2, ecx
movd xmm1, edx
movd xmm3, eax
punpckldq xmm3, xmm0
xorps xmm0, xmm0
punpckldq xmm1, xmm2
punpckldq xmm3, xmm1
andps xmm3, xmmword [0x581610]
packuswb xmm3, xmm3
packuswb xmm3, xmm3
punpcklbw xmm3, xmm0
punpcklwd xmm3, xmm0
cvtdq2ps xmm0, xmm3
mulps xmm0, xmmword [0x581660]
movups xmmword [esi], xmm0
call fcn.004b9f30
jmp 0x479da8
cmp eax, 0xe
je 0x479da8
cmp eax, 0x17
je 0x479da8
cmp eax, 6
jne 0x47957b
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xb0]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
cmp eax, 0xc
jne 0x47959d
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0x118]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
cmp eax, 0xd
jne 0x4795b1
mov ecx, dword [edi + 0x17c]
mov ecx, dword [esi + ecx*4 + 0xe8]
jmp 0x4795bc
cmp eax, 0x14
jne 0x4795eb
mov ecx, dword [esi + 0x10c]
mov eax, dword [0x5a942c]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
movss xmm0, dword [edi + 0x108]
addss xmm0, dword [0x581278]
movss dword [edi + 0x108], xmm0
jmp 0x479da8
cmp eax, 5
jne 0x47960d
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xd4]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
cmp eax, 7
jne 0x479664
mov cl, byte [edi + 0x18c]
cmp cl, 0xff
jne 0x47963a
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0xe4]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
cmp cl, 5
jae 0x479da8
mov eax, dword [0x5a942c]
movzx ecx, cl
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xb4]
call fcn.00464c90
jmp 0x479da8
cmp eax, 0x12
jne 0x479690
mov eax, dword [0x5a942c]
mov dword [edi + 0x108], 0
mov ecx, dword [esi + 0x110]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
cmp eax, 0x13
jne 0x4796b2
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 0x114]
push 0
push dword [eax + 0x2a3d8]
call fcn.00464c90
jmp 0x479da8
mov eax, dword [edi + 0x160]
cmp eax, 0xa
jne 0x4796fb
mov ecx, dword [0x5a956c]
sub esp, 0x10
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov eax, esp
mov dword [ecx + 0x2c], 1
movups xmm0, xmmword [edi + 0x224]
push 1
movups xmmword [eax], xmm0
call fcn.004b7e80
jmp 0x479da8
cmp eax, 0x11
jne 0x479bfa
mov eax, dword [edi + 0x238]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x581790]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x581318]
divss xmm1, dword [0x58146c]
comiss xmm0, xmm1
movss dword [ebp - 0x2b4], xmm1
jbe 0x47977a
call fcn.0052ab4e
cdq
mov ecx, 0xa
idiv ecx
mov eax, dword [esi + 0x20c]
mov esi, 0xa
mov ecx, edx
cdq
idiv esi
cmp ecx, edx
jge 0x479772
movss xmm1, dword [0x581318]
movss dword [ebp - 0x2b4], xmm1
jmp 0x47977a
movss xmm1, dword [ebp - 0x2b4]
mov eax, dword [edi + 0x234]
test eax, eax
jne 0x4797c5
mov ecx, dword [0x5a956c]
sub esp, 0x10
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov eax, esp
mov dword [ecx + 0x2c], 1
movups xmm0, xmmword [edi + 0x224]
movups xmmword [eax], xmm0
cvttss2si eax, xmm1
push eax
call fcn.004b7e80
jmp 0x479da8
cmp eax, 1
jne 0x47986b
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x330], xmm0
mov dword [ebp - 0x328], eax
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x330]
movss dword [ebp - 0x330], xmm0
call fcn.0052ab4e
mov ecx, dword [0x5a956c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x328]
movss dword [ebp - 0x328], xmm0
movq xmm0, qword [ebp - 0x330]
mov eax, dword [ebp - 0x328]
jmp 0x479a64
cmp eax, 2
jne 0x4798fc
movq xmm0, qword [edi + 0x114]
mov esi, dword [edi + 0x11c]
movq qword [ebp - 0x374], xmm0
call fcn.0052ab4e
sub esp, 0x10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [0x5a9510]
mov dword [eax + 0x2c], 1
mulss xmm0, dword [0x581338]
divss xmm0, dword [0x58153c]
addss xmm0, dword [0x581224]
addss xmm0, dword [ebp - 0x370]
movss dword [ebp - 0x370], xmm0
movq xmm0, qword [ebp - 0x374]
movq qword [eax + 0x14], xmm0
mov dword [eax + 0x1c], esi
mov eax, esp
movups xmm0, xmmword [edi + 0x224]
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2b4]
push eax
call fcn.004b9f30
jmp 0x479da8
cmp eax, 3
jne 0x4799a2
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x304], xmm0
mov dword [ebp - 0x2fc], eax
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x304]
movss dword [ebp - 0x304], xmm0
call fcn.0052ab4e
mov ecx, dword [0x5a9574]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x2fc]
movss dword [ebp - 0x2fc], xmm0
movq xmm0, qword [ebp - 0x304]
mov eax, dword [ebp - 0x2fc]
jmp 0x479a64
cmp eax, 4
jne 0x479a95
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x33c], xmm0
movss xmm0, dword [ebp - 0x338]
addss xmm0, dword [0x581350]
mov dword [ebp - 0x334], eax
movss dword [ebp - 0x2bc], xmm0
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x33c]
movups xmmword [ebp - 0x350], xmm0
call fcn.0052ab4e
movss xmm1, dword [ebp - 0x2bc]
mov ecx, dword [0x5a9560]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x334]
movss dword [ebp - 0x334], xmm0
movups xmm0, xmmword [ebp - 0x350]
mov eax, dword [ebp - 0x334]
unpcklps xmm0, xmm1
movq qword [ecx + 0x14], xmm0
sub esp, 0x10
mov dword [ecx + 0x2c], 1
mov dword [ecx + 0x1c], eax
mov eax, esp
movups xmm0, xmmword [edi + 0x224]
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2b4]
push eax
call fcn.004b7e80
jmp 0x479da8
cmp eax, 5
jne 0x479b07
movq xmm0, qword [edi + 0x114]
sub esp, 0x10
mov ecx, dword [0x5a9570]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0x320], xmm0
movss xmm0, dword [ebp - 0x31c]
addss xmm0, dword [0x5812e4]
mov dword [ecx + 0x2c], 1
movss dword [ebp - 0x31c], xmm0
movq xmm0, qword [ebp - 0x320]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov eax, esp
movups xmm0, xmmword [edi + 0x224]
movups xmmword [eax], xmm0
cvttss2si eax, xmm1
push eax
call fcn.004b7e80
jmp 0x479da8
cmp eax, 6
jne 0x479da8
movq xmm0, qword [edi + 0x114]
mov eax, dword [edi + 0x11c]
movq qword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0xe0]
addss xmm0, dword [0x5812e8]
mov dword [ebp - 0xdc], eax
movss dword [ebp - 0x2bc], xmm0
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0xe4]
movups xmmword [ebp - 0x350], xmm0
call fcn.0052ab4e
mov ecx, dword [0x5a9558]
sub esp, 0x10
movss xmm1, dword [ebp - 0x2bc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ecx + 0x2c], 1
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0xdc]
movss dword [ebp - 0xdc], xmm0
movups xmm0, xmmword [ebp - 0x350]
mov eax, dword [ebp - 0xdc]
unpcklps xmm0, xmm1
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov eax, esp
movups xmm0, xmmword [edi + 0x224]
movups xmmword [eax], xmm0
cvttss2si eax, dword [ebp - 0x2b4]
push eax
call fcn.004b8e90
jmp 0x479da8
cmp eax, 8
jne 0x479c24
mov eax, dword [0x5a942c]
movzx ecx, byte [edi + 0x18e]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [esi + ecx*4 + 0xcc]
call fcn.00464c90
jmp 0x479da8
cmp eax, 3
jne 0x479c34
push dword [esi + 0x140]
jmp 0x479cd7
cmp eax, 4
jne 0x479c44
push dword [esi + 0x144]
jmp 0x479cd7
cmp eax, 0x10
jne 0x479c90
mov eax, dword [esi + 0x224]
test eax, eax
jle 0x479c62
mov ecx, dword [esi + 0x138]
dec eax
mov dword [esi + 0x224], eax
jmp 0x479c68
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 [0x5a942c]
push edx
mov eax, dword [eax + 0x2a3d8]
push eax
jmp 0x479da3
mov ecx, str.Community_Merchant
lea eax, [edi + 0x1b0]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x479cc0
test dl, dl
je 0x479cbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x479cc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x479ca0
xor eax, eax
jmp 0x479cc5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x479cd1
push dword [esi + 0x150]
jmp 0x479cd7
push dword [esi + 0x13c]
mov eax, dword [0x5a942c]
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov eax, dword [0x5a942c]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 2
push 2
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 0
push 3
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
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 0x479d82
xor edx, edx
jmp 0x479d95
cmp edx, 7
jle 0x479d95
sub edx, 5
mov eax, 7
cmp edx, 7
cmovl edx, eax
mov eax, dword [0x5a942c]
mov ecx, esi
push edx
push dword [eax + 0x2a3d8]
call fcn.0045f250
mov eax, dword [ebp - 0x2f4]
cmp eax, dword [edi + 0x164]
jne 0x479f38
mov eax, dword [ebp - 0x2e4]
mov esi, dword [ebp - 0x2cc]
cmp eax, dword [edi + 0x168]
jne 0x479f3e
or ecx, 0xffffffff
mov dword [ebp - 0x2b0], ecx
cmp edi, dword [esi + 0x10]
jne 0x479e02
mov eax, 0x2aaaaaab
imul dword [esi + 0x20c]
mov eax, edx
shr eax, 0x1f
add eax, edx
test al, 1
je 0x479e02
mov dword [ebp - 0x2b0], 0xff50ff50
jmp 0x479e25
mov eax, dword [esi + 0x210]
cmp eax, dword [edi + 0x17c]
jne 0x479e25
cmp dword [0x5a9520], 0
mov eax, 0xffff0050
cmove ecx, eax
mov dword [ebp - 0x2b0], ecx
cmp dword [edi + 0x218], 0
movss xmm0, dword [0x581568]
movss dword [ebp - 0x2b4], xmm0
jle 0x479e60
movd xmm1, dword [edi + 0x210]
movd xmm0, dword [edi + 0x214]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x2b4], xmm1
push 0x12c
call fcn.004c8b9c
movss xmm0, dword [ebp - 0x2b4]
add esp, 4
mov dword [ebp - 0x2bc], eax
movss xmm3, dword [edi + 0x118]
movss xmm1, dword [0x581420]
addss xmm3, dword [0x581318]
subss xmm1, dword [esi + 0x1f4]
movss xmm2, dword [edi + 0x114]
push 0
push dword [ebp - 0x2b0]
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.0046ffa0
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x479f3e
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2d0], eax
mov eax, dword [ebp - 0x2c4]
push 0xc
mov esi, dword [eax]
mov dword [ebp - 0x30c], esi
call fcn.004c8b9c
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x2c8], ecx
mov dword [ecx + 8], 0
mov dword [ecx + 4], ecx
mov dword [ecx], ecx
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov dword [ecx], esi
mov dword [esi + 4], ecx
mov eax, dword [ecx + 4]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x30c], ecx
mov esi, dword [ebp - 0x2cc]
inc dword [edi + 0x190]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0xc], 0
je 0x479f67
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov edi, dword [eax + 8]
mov dword [ebp - 0x2c8], edi
test edi, edi
jne 0x477d90
mov esi, dword [0x5a9528]
mov eax, dword [esi + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
cmp dword [0x5a955c], 0x64
mov dword [esi + 0xc], 0
jle 0x479fba
mov ecx, dword [0x5a943c]
lea edx, [ebp - 0x2f4]
mov eax, dword [0x5a952c]
push 0
push 0
mov dword [ebp - 0x2f3], eax
mov eax, dword [ecx]
push edx
push 5
mov dword [0x5a955c], 0
mov byte [ebp - 0x2f4], 0x2f
call dword [eax + 4]
mov eax, dword [0x5a9550]
cmp eax, 1
je 0x47aac9
cmp eax, 3
je 0x47aac9
mov eax, dword [0x5a942c]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov edi, dword [ebp - 0x2cc]
mov ecx, dword [edi + 0x1c]
cmp dword [ecx + 0xc], 0
je 0x47a9bb
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov esi, dword [eax + 8]
mov dword [ebp - 0x2c8], esi
test esi, esi
je 0x47a9bb
movss xmm3, dword [0x5817a0]
movss xmm4, dword [0x5814a8]
mov dword [ebp - 0x2b4], 0xff
nop dword [eax + eax]
movss xmm1, dword [esi + 0x114]
movaps xmm0, xmm1
subss xmm0, dword [0x5aa910]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x47aaba
movss xmm2, dword [esi + 0x11c]
movaps xmm0, xmm2
subss xmm0, dword [0x5aa918]
andps xmm0, xmm3
comiss xmm4, xmm0
jbe 0x47aaba
addss xmm1, dword [ebp - 0x2f8]
addss xmm2, dword [ebp - 0x2ec]
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x2bc], xmm1
movsd qword [ebp - 0x2e8], xmm0
movaps xmm0, xmm2
xorps xmm0, xmmword [0x5817d0]
fld qword [ebp - 0x2e8]
cvtss2sd xmm0, xmm0
movss dword [ebp - 0x2b0], xmm2
movsd qword [ebp - 0x2e8], xmm0
fld qword [ebp - 0x2e8]
call fcn.00554b20
movsd xmm1, qword [0x5813e0]
xorps xmm2, xmm2
fstp qword [ebp - 0x2e8]
movsd xmm0, qword [ebp - 0x2e8]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
comisd xmm2, xmm0
jbe 0x47a140
addsd xmm0, xmm1
comisd xmm2, xmm0
ja 0x47a136
comisd xmm0, xmm1
jb 0x47a150
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x47a146
movsd xmm2, qword [0x5813c0]
cvtsd2ss xmm0, xmm0
subss xmm0, dword [edi + 0x1f4]
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x47a17a
nop
subsd xmm0, xmm1
comisd xmm0, xmm2
ja 0x47a170
movsd xmm2, qword [0x581598]
comisd xmm2, xmm0
jb 0x47a19a
nop dword [eax + eax]
addsd xmm0, xmm1
comisd xmm2, xmm0
jae 0x47a190
movsd xmm1, qword [0x5817b0]
movsd xmm2, qword [0x581388]
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
andps xmm0, xmm1
comisd xmm2, xmm0
ja 0x47a1f3
movss xmm0, dword [ebp - 0x2bc]
movsd xmm2, qword [0x5813f8]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x47a908
movss xmm0, dword [ebp - 0x2b0]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
comisd xmm2, xmm0
jbe 0x47a908
mov eax, dword [0x5a9550]
cmp eax, 4
je 0x47a590
cmp eax, 2
je 0x47a33e
cmp dword [esi + 4], 0x10
jbe 0x47a2e8
mov eax, dword [0x593f90]
mov ecx, dword [esi + 0x17c]
mov dword [ebp - 0x2b0], ecx
test eax, eax
je 0x47a908
cmp eax, 1
je 0x47a239
cmp eax, 2
jne 0x47a24d
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x2b0], ecx
xor edx, edx
mov dword [ebp - 0x2c8], edx
test ecx, ecx
jle 0x47a908
xor ecx, ecx
mov dword [ebp - 0x2e4], ecx
nop word [eax + eax]
movd xmm1, edx
mov eax, dword [esi + 0x174]
cvtdq2ps xmm1, xmm1
push ecx
movss xmm0, dword [eax + ecx + 8]
divss xmm1, dword [0x581488]
movss xmm3, dword [eax + ecx + 4]
movss xmm2, dword [eax + ecx]
mov ecx, edi
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 4]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx*4 + 0x5aa240]
call fcn.00464c90
mov edx, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2e4]
inc edx
add ecx, 0xc
mov dword [ebp - 0x2c8], edx
mov dword [ebp - 0x2e4], ecx
cmp edx, dword [ebp - 0x2b0]
jl 0x47a270
jmp 0x47a908
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [esi + 4]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx*4 + 0x5aa240]
call fcn.00464c90
jmp 0x47a908
mov eax, dword [esi + 0x11c]
movq xmm0, qword [esi + 0x114]
mov dword [ebp - 0x2bc], eax
mov eax, dword [esi + 4]
movq qword [ebp - 0x320], xmm0
cmp eax, 6
jne 0x47a3be
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.00464c90
jmp 0x47a908
cmp eax, 7
jne 0x47a41f
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.00464c90
jmp 0x47a908
cmp eax, 0xc
jne 0x47a488
movss xmm3, dword [esi + 0x118]
movss xmm1, dword [esi + 0x108]
subss xmm3, dword [0x581318]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.00464c90
jmp 0x47a908
test eax, eax
jne 0x47a915
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x16c]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1d0]
call fcn.00464c90
call fcn.0052ab4e
and eax, reloc.WS2_32.dll_closesocket
jns 0x47a4f6
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x47a908
test byte [0x5a58a0], 2
je 0x47a908
movss xmm0, dword [ebp - 0x31c]
sub esp, 0x10
addss xmm0, dword [0x5813b0]
mov ecx, dword [0x5a9574]
mov eax, dword [ebp - 0x2bc]
movss dword [ebp - 0x31c], xmm0
movq xmm0, qword [ebp - 0x320]
movq qword [ecx + 0x14], xmm0
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x2c], 1
mov eax, dword [edi + 0x16c]
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 0x47a57f
mov dword [eax + 4], 0x3e70f0f2
call fcn.004b7e80
jmp 0x47a908
mov dword [eax + 4], 0x3f800000
call fcn.004b7e80
jmp 0x47a908
mov eax, dword [esi + 0x11c]
movq xmm0, qword [esi + 0x114]
mov dword [ebp - 0x2d4], eax
mov eax, dword [esi + 4]
movq qword [ebp - 0x2dc], xmm0
cmp eax, 0xc
jne 0x47a6fd
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x5812a0]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x58128c]
addss xmm0, dword [ebp - 0x2dc]
movss dword [ebp - 0x2bc], xmm0
movss dword [ebp - 0x2dc], xmm0
call fcn.0052ab4e
cvttss2si ecx, dword [ebp - 0x2bc]
mov esi, dword [0x5a9574]
sub esp, 0x10
mov dword [esi + 0x2c], 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm1, dword [0x581250]
mulss xmm0, dword [0x5812a0]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x58128c]
addss xmm0, dword [ebp - 0x2d4]
movss dword [ebp - 0x2d4], xmm0
movq xmm0, qword [ebp - 0x2dc]
mov eax, dword [ebp - 0x2d4]
movq qword [esi + 0x14], xmm0
mov dword [esi + 0x1c], eax
lea eax, [ecx + 0x50]
cdq
idiv dword [ebp - 0x2b4]
movzx eax, dl
mov dword [ebp - 0x2bc], eax
mov eax, ecx
cdq
mov ecx, 0xff
idiv ecx
mov ecx, dword [ebp - 0x2bc]
movzx eax, dl
mov edx, esp
shl eax, 8
or ecx, eax
shl ecx, 8
or ecx, 0x370000ff
mov eax, ecx
shr eax, 0x10
movzx eax, al
push 1
movd xmm0, eax
mov eax, ecx
cvtdq2ps xmm0, xmm0
shr eax, 8
movzx eax, al
mulss xmm0, xmm1
movss dword [edx], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movzx eax, cl
shr ecx, 0x18
mulss xmm0, xmm1
movss dword [edx + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [edx + 8], xmm0
movd xmm0, ecx
mov ecx, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [edx + 0xc], xmm0
call fcn.004b7e80
mov esi, dword [ebp - 0x2c8]
jmp 0x47a908
test eax, eax
jne 0x47a75d
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c8]
call fcn.00464c90
jmp 0x47a908
cmp eax, 1
jne 0x47a7be
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1cc]
call fcn.00464c90
jmp 0x47a908
cmp eax, 0xd
jne 0x47a81f
movss xmm1, dword [esi + 0x108]
mulss xmm1, dword [0x581568]
push ecx
movss xmm0, dword [esi + 0x11c]
mov ecx, edi
movss xmm3, dword [esi + 0x118]
movss xmm2, dword [esi + 0x114]
movss dword [esp], xmm0
call fcn.0047fff0
mov eax, dword [0x5a942c]
mov ecx, dword [edi + 0x168]
push 0
push dword [eax + 0x2a3d8]
mov ecx, dword [ecx + 0x1c4]
call fcn.00464c90
jmp 0x47a908
call fcn.0052ab4e
and eax, reloc.WS2_32.dll_closesocket
jns 0x47a832
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x47a908
test byte [0x5a58a0], 2
je 0x47a908
call fcn.0052ab4e
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x2dc]
movups xmmword [ebp - 0x350], xmm0
call fcn.0052ab4e
mov ecx, dword [0x5a9558]
sub esp, 0x10
movups xmm1, xmmword [ebp - 0x350]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ecx + 0x2c], 1
mulss xmm0, dword [0x58146c]
divss xmm0, dword [0x58153c]
subss xmm0, dword [0x581448]
addss xmm0, dword [ebp - 0x2d4]
movss dword [ebp - 0x2d4], xmm0
movss xmm0, dword [ebp - 0x2d8]
addss xmm0, dword [0x5812e8]
mov eax, dword [ebp - 0x2d4]
unpcklps xmm1, xmm0
movq qword [ecx + 0x14], xmm1
mov dword [ecx + 0x1c], eax
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.004b8e90
cmp dword [0x5a9550], 2
jne 0x47a988
cmp dword [esi + 4], 0
jne 0x47a988
test byte [0x5a58a0], 2
je 0x47a988
mov eax, dword [edi + 0x16c]
sub esp, 0x10
movss xmm2, dword [esi + 0x118]
mov ecx, edi
movss xmm3, dword [esi + 0x11c]
movss xmm1, dword [esi + 0x114]
cmp dword [eax + 0x1c0], 4
addss xmm2, dword [0x5813b0]
mov dword [esp + 0xc], 0x41f00000
mov dword [esp + 8], 0x3e4ccccd
jne 0x47aaad
mov dword [esp + 4], 0x3e4ccccd
mov dword [esp], 0x3f800000
call fcn.00483a10
movss xmm3, dword [0x5817a0]
movss xmm4, dword [0x5814a8]
mov ecx, dword [edi + 0x1c]
cmp dword [ecx + 0xc], 0
je 0x47a9bb
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov esi, dword [eax + 8]
mov dword [ebp - 0x2c8], esi
test esi, esi
jne 0x47a080
mov ecx, dword [edi + 0x1c]
cmp dword [ecx + 0xc], 0
je 0x47aacf
mov eax, dword [ecx + 4]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov esi, dword [eax + 8]
mov dword [ebp - 0x2c8], esi
test esi, esi
je 0x47aacf
cmp dword [esi + 0x160], 0
je 0x47aa88
mov edx, dword [edi + 0x1c]
mov dword [ebp - 0x2bc], edx
cmp dword [edx + 0xc], 0
je 0x47aa58
mov eax, dword [edx + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x47aa1e
nop
cmp ecx, esi
je 0x47aa21
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x47aa10
mov eax, dword [edx + 4]
mov dword [edx + 8], eax
cmp dword [eax + 8], 0
je 0x47aa58
mov esi, dword [eax]
mov eax, dword [eax + 4]
push 0xc
mov dword [esi + 4], eax
mov eax, dword [edx + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [ecx], eax
push dword [edx + 8]
call fcn.004c8bcc
mov eax, dword [ebp - 0x2bc]
add esp, 8
mov dword [eax + 8], esi
mov esi, dword [ebp - 0x2c8]
cmp dword [esi + 0x16c], 0xffffffff
jle 0x47aa80
mov ecx, dword [edi + 4]
push dword [esi + 0x170]
mov ecx, dword [ecx + 4]
call fcn.0044f240
test eax, eax
je 0x47aa80
mov dword [eax + 0x130], 0
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [edi + 0x1c]
cmp dword [ecx + 0xc], 0
je 0x47aacf
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ecx + 8], eax
mov esi, dword [eax + 8]
mov dword [ebp - 0x2c8], esi
test esi, esi
jne 0x47a9e2
jmp 0x47aacf
mov dword [esp + 4], 0x3f800000
jmp 0x47a97c
mov dword [esi + 0x160], 1
jmp 0x47a998
mov edi, dword [ebp - 0x2cc]
mov eax, dword [0x5a942c]
lea edx, [ebp - 0xd8]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x9c], 0x3f800000
mov dword [ebp - 0xb0], 0x3f800000
mov dword [ebp - 0xc4], 0x3f800000
mov dword [ebp - 0xd8], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
cmp dword [0x5a9550], 0
jne 0x47ae95
cmp dword [0x593f90], 0
je 0x47ae95
mov eax, dword [0x5a942c]
push 0
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x1b
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 2
push 0x11
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 2
push 0x10
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 4
push 1
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 4
push 4
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 1
push 1
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 1
push 4
push 1
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov eax, dword [0x5a942c]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 2
push 9
mov eax, dword [eax + 0x2a3d8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
mov esi, dword [0x5a9530]
mov eax, dword [eax + 0x2a3d8]
push dword [esi + 0xc]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0xf4]
mov eax, dword [0x5a942c]
push 0x18
push dword [esi + 8]
mov eax, dword [eax + 0x2a3d8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14c]
mov eax, dword [0x5a942c]
push 0x142
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x130]
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
mov eax, dword [esi]
add eax, eax
push eax
mov edx, dword [ecx]
push 0
push 4
push ecx
call dword [edx + 0x118]
mov eax, dword [0x5a942c]
mov esi, dword [0x5a9534]
mov eax, dword [eax + 0x2a3d8]
push dword [esi + 0xc]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0xf4]
mov eax, dword [0x5a942c]
push 0x18
push dword [esi + 8]
mov eax, dword [eax + 0x2a3d8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14c]
mov eax, dword [0x5a942c]
push 0x142
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x130]
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
mov eax, dword [esi]
add eax, eax
push eax
mov edx, dword [ecx]
push 0
push 4
push ecx
call dword [edx + 0x118]
mov eax, dword [0x5a942c]
mov esi, dword [0x5a9538]
mov eax, dword [eax + 0x2a3d8]
push dword [esi + 0xc]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0xf4]
mov eax, dword [0x5a942c]
push 0x18
push dword [esi + 8]
mov eax, dword [eax + 0x2a3d8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14c]
mov eax, dword [0x5a942c]
push 0x142
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x130]
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
mov eax, dword [esi]
add eax, eax
push eax
mov edx, dword [ecx]
push 0
push 4
push ecx
call dword [edx + 0x118]
mov eax, dword [0x5a942c]
mov esi, dword [0x5a953c]
mov eax, dword [eax + 0x2a3d8]
push dword [esi + 0xc]
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0xf4]
mov eax, dword [0x5a942c]
push 0x18
push dword [esi + 8]
mov eax, dword [eax + 0x2a3d8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14c]
mov eax, dword [0x5a942c]
push 0x142
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x130]
mov eax, dword [0x5a942c]
mov ecx, dword [eax + 0x2a3d8]
mov eax, dword [esi]
add eax, eax
push eax
mov edx, dword [ecx]
push 0
push 4
push ecx
call dword [edx + 0x118]
mov eax, dword [0x5a942c]
push 0
push 0x1c
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 0x2c4]
mov esi, dword [eax + 4]
mov dword [ebp - 0x30c], esi
mov eax, dword [esi + 8]
test eax, eax
je 0x47af05
nop
push dword [edi + 0x14c]
mov ecx, eax
push dword [edi + 0x148]
call fcn.004700b0
mov eax, dword [esi + 4]
mov esi, eax
mov dword [ebp - 0x30c], esi
mov eax, dword [eax + 8]
test eax, eax
jne 0x47aee0
mov eax, dword [0x5a942c]
push 0
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
lea edx, [ebp - 0xd8]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x9c], 0x3f800000
mov dword [ebp - 0xb0], 0x3f800000
mov dword [ebp - 0xc4], 0x3f800000
mov dword [ebp - 0xd8], 0x3f800000
mov eax, dword [eax + 0x2a3d8]
push edx
push 0x100
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
call fcn.004b8200
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9524]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9574]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9540]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
mov ecx, dword [0x5a9560]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9570]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9518]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9558]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b9320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a956c]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004b8320
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a954c]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004bb5e0
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9510]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004ba5a0
movups xmm0, xmmword [ebp - 0x128]
sub esp, 0x40
mov eax, esp
mov ecx, dword [0x5a9548]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004c0a80
mov eax, dword [0x5a942c]
mov esi, dword [0x5a9528]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov dword [ebp - 0x2bc], esi
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 0x10
push dword [esi + 8]
mov eax, dword [eax + 0x2a3d8]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14c]
mov eax, dword [0x5a942c]
push 0x42
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x130]
mov eax, dword [0x5a942c]
push 0
push 0
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf4]
mov edx, dword [esi]
lea eax, [edx + edx]
test eax, eax
jle 0x47b354
mov ecx, dword [0x5a942c]
mov esi, dword [ecx + 0x2a490]
shr esi, 2
xor edi, edi
mov ecx, dword [ecx + 0x2a3d8]
lea eax, [edx + edx]
sub eax, edi
cmp esi, eax
mov edx, dword [ecx]
cmovae esi, eax
push esi
push edi
push 4
push ecx
call dword [edx + 0x118]
mov eax, dword [ebp - 0x2bc]
mov ecx, dword [0x5a942c]
mov edx, dword [eax]
mov esi, dword [ecx + 0x2a490]
shr esi, 2
add edi, esi
lea eax, [edx + edx]
cmp edi, eax
jl 0x47b311
mov edi, dword [ebp - 0x2cc]
movups xmm0, xmmword [ebp - 0x128]
mov ecx, dword [0x5a9514]
sub esp, 0x40
mov eax, esp
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x118]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x108]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [eax + 0x30], xmm0
call fcn.004bc610
mov eax, dword [0x5a942c]
push 1
push 0xe
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x89
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 1
push 0x16
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 5
push 0x13
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
push 6
push 0x14
mov eax, dword [eax + 0x2a3d8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [0x5a942c]
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]
mov esi, eax
mov eax, dword [0x5a9564]
test eax, eax
je 0x47b4e6
cmp dword [edi + 0x28c], 0
je 0x47b4e6
mov ecx, dword [0x5a942c]
mov edi, dword [ecx + 0x2a63c]
mov ecx, esi
sub ecx, eax
jne 0x47b46c
lea eax, [ebp - 0x98]
push str.FPS_38
push eax
call fcn.004623f0
add esp, 8
jmp 0x47b48a
xor edx, edx
mov eax, 0x3e8
div ecx
push eax
lea eax, [ebp - 0x98]
push str.FPS__d
push eax
call fcn.004623f0
add esp, 0xc
mov ecx, dword [0x5a942c]
push 0
mov edx, dword [ecx + 0x2a398]
mov ecx, dword [ecx + 0x2a39c]
mov dword [ebp - 0x318], ecx
lea eax, [edx - 0xb4]
mov dword [ebp - 0x324], eax
lea eax, [ecx - 0xc]
mov dword [ebp - 0x320], eax
mov ecx, edi
lea eax, [edx - 0x82]
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x98]
movups xmm0, xmmword [ebp - 0x324]
push eax
push 0xffffffffffffffff
push 0
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.004545e0
cmp dword [0x5a9418], 0
mov dword [0x5a9564], esi
je 0x47b521
push 0x576ca8
push str.autolog.dat
call fcn.0052537a
mov esi, eax
add esp, 8
test esi, esi
je 0x47b521
push str.BBOClient::Draw_13__n
push esi
call fcn.00446630
push esi
call fcn.00525539
add esp, 0xc
mov eax, dword [ebp - 0x2c4]
mov esi, dword [eax + 4]
cmp dword [esi + 8], 0
je 0x47b559
mov ecx, dword [esi + 8]
mov edi, dword [esi + 4]
test ecx, ecx
je 0x47b540
mov eax, dword [ecx]
push 1
call dword [eax]
push 0xc
push esi
call fcn.004c8bcc
add esp, 8
mov esi, edi
cmp dword [edi + 8], 0
jne 0x47b530
mov eax, dword [ebp - 0x2c4]
push 0xc
push eax
call fcn.004c8bcc
add esp, 8
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.004c8873
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret