Function at 0x459b20
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48ac56
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x288
mov eax, dword [sym.imp.WINMM.dll_timeGetTime]
push esi
mov esi, dword [0x4d56b4]
push edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x48], eax
call eax
cmp eax, dword [0x5bd79c]
jb 0x45a6d2
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x20]
call eax
mov edi, eax
test edi, edi
je 0x45a603
mov al, byte [ebp - 0x19]
mov byte [ebp - 0x19], al
nop dword [eax]
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x20], eax
mov cl, byte [eax]
mov byte [ebp - 0x14], cl
cmp cl, 0x28
jne 0x459bd9
cmp dword [edi + 8], 5
jbe 0x45a6d2
mov al, byte [eax + 5]
mov esi, dword [edi + 8]
mov byte [ebp - 0x14], al
mov dword [ebp - 0x178], 0
mov byte [ebp - 0x170], 1
lea eax, [esi*8]
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
jmp 0x459c07
mov esi, dword [edi + 8]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x178], 0
mov byte [ebp - 0x170], 1
lea eax, [esi*8]
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
test esi, esi
je 0x459c3f
cmp esi, 0x100
jae 0x459c21
lea eax, [ebp - 0x16f]
mov dword [ebp - 0x17c], 0x800
jmp 0x459c2a
push esi
call fcn.004684fa
add esp, 4
push esi
push dword [ebp - 0x20]
mov dword [ebp - 0x174], eax
push eax
call fcn.00462e50
add esp, 0xc
jmp 0x459c4c
mov dword [ebp - 0x174], 0
mov byte [ebp - 0x14], cl
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov dword [ebp - 4], 0
push edi
mov eax, dword [esi]
call dword [eax + 0x24]
sub esp, 0x18
xorps xmm0, xmm0
mov eax, esp
push 0xf
movups xmmword [eax], xmm0
push str.onReceivePacket
push eax
mov dword [eax + 0x10], 0xf
mov dword [eax + 0x14], 0xf
call fcn.00462e50
mov cl, byte [ebp - 0x14]
lea edx, [ebp - 0x180]
add esp, 0xc
call fcn.004242d0
add esp, 0x18
test al, al
je case.0x459cc3.13
movzx eax, byte [ebp - 0x14]
add eax, 0xfffffff4
mov dword [ebp - 0x178], 0
cmp eax, 0xc7
ja case.0x459cc3.13
movzx eax, byte [eax + 0x45a72c]
jmp dword [eax*4 + 0x45a6e8]
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
mov eax, 0x10624dd3
imul dword [0x5bd319]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__Connection_was_closed_by_the_server._Reconnecting_in__d_seconds.
call fcn.00456d60
mov ecx, dword [0x5bd319]
call fcn.00459a20
sub esp, 0x10
xorps xmm0, xmm0
mov eax, esp
push 0xc
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0xc
push str.onDisconnect
push eax
mov dword [eax + 0x14], 0xf
call fcn.00462e50
add esp, 0xc
call fcn.004297d0
add esp, 0x18
jmp case.0x459cc3.13
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
mov eax, 0x10624dd3
imul dword [0x5bd319]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__You_are_banned._Reconnecting_in__d_seconds.
call fcn.00456d60
mov ecx, dword [0x5bd319]
add esp, 8
call fcn.00459a20
jmp case.0x459cc3.13
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
lea eax, [ebp - 0x287]
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0x800
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], eax
mov byte [ebp - 0x288], 1
push 1
push 8
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x298]
mov byte [ebp - 0x14], 0x18
call fcn.00402210
push 1
push 0x20
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x69
push eax
lea ecx, [ebp - 0x298]
call fcn.00402210
push 1
push 0x20
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x69
push eax
lea ecx, [ebp - 0x298]
call fcn.00402210
mov ecx, dword [0x4d56b4]
lea edx, [ebp - 0x298]
push 1
push 0
push 8
mov eax, dword [ecx]
push 1
push edx
call dword [eax + 0x18]
mov byte [ebp - 4], 0
cmp byte [ebp - 0x288], 0
je 0x459e43
cmp dword [ebp - 0x294], 0x800
jle 0x459e43
push dword [ebp - 0x28c]
call fcn.004684df
add esp, 4
mov eax, 0x10624dd3
imul dword [0x5bd315]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__Connection_attempt_failed._Reconnecting_in__d_seconds.
call fcn.00456d60
mov ecx, dword [0x5bd315]
add esp, 8
call fcn.00459a20
jmp case.0x459cc3.13
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
mov eax, 0x10624dd3
imul dword [0x5bd315]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__The_server_is_full._Reconnecting_in__d_seconds.
jmp 0x459e5e
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
mov eax, 0x10624dd3
imul dword [0x5bd319]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__Invalid_password._Reconnecting_in__d_seconds.
jmp 0x459d5e
cmp esi, dword [0x4d56b4]
jne case.0x459cc3.13
mov eax, 0x10624dd3
imul dword [0x5bd319]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str._NET__The_connection_was_lost._Reconnecting_in__d_seconds.
jmp 0x459cf1
mov edx, esi
lea ecx, [ebp - 0x180]
call fcn.004590e0
sub esp, 0x18
xorps xmm0, xmm0
mov eax, esp
push 9
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 9
push str.onConnect
jmp 0x459d1a
mov edx, esi
lea ecx, [ebp - 0x180]
call fcn.00458f20
jmp case.0x459cc3.13
lea ecx, [ebp - 0x180]
call fcn.00459430
jmp case.0x459cc3.13
lea ecx, [ebp - 0x180]
call fcn.004596c0
jmp case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x28]
mov dword [ebp - 0x5c], 0
push eax
lea ecx, [ebp - 0x180]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x178], 8
call fcn.00402340
mov si, word [ebp - 0x28]
mov eax, 0x3ec
cmp si, ax
jae case.0x45a4b8.35
test byte [ebp - 0x178], 7
jne 0x459fd7
mov eax, dword [ebp - 0x178]
lea ecx, [eax + 0xc0]
cmp ecx, dword [ebp - 0x180]
jg 0x459fed
sar eax, 3
add eax, dword [ebp - 0x174]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x68], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x58], xmm0
mov dword [ebp - 0x178], ecx
jmp 0x459fed
push 1
push 0xc0
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
movzx eax, si
mov esi, dword [ebp - 0x18]
imul edx, eax, 0x15e
mov ax, word [ebp - 0x68]
movzx ecx, ax
mov word [edx + 0x4ea9ac], ax
movsx eax, word [0x5bd3a7]
cmp ecx, eax
je case.0x459cc3.13
movq xmm0, qword [ebp - 0x5c]
imul eax, ecx, 0x43
mov ecx, dword [ebp - 0x54]
movq qword [edx + 0x4ea915], xmm0
mov dword [edx + 0x4ea91d], ecx
add eax, 0x59a7f1
movq qword [eax], xmm0
mov dword [eax + 8], ecx
jmp case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x178], 8
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
mov ax, word [ebp - 0x2c]
mov ecx, 0x3ec
cmp ax, cx
jae case.0x459cc3.13
movzx eax, ax
xorps xmm0, xmm0
imul eax, eax, 0x15e
test byte [ebp - 0x178], 7
lea ecx, [eax + 0x4ea9c4]
movups xmmword [ecx], xmm0
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], 0
mov word [ecx + 0x1c], 0
mov byte [ecx + 0x1e], 0
jne 0x45a0f3
mov edx, dword [ebp - 0x178]
lea esi, [edx + 0xf8]
cmp esi, dword [ebp - 0x180]
jg case.0x45a4b8.35
sar edx, 3
add edx, dword [ebp - 0x174]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [ecx + 0x10], xmm0
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x18], eax
mov ax, word [edx + 0x1c]
mov word [ecx + 0x1c], ax
mov al, byte [edx + 0x1e]
mov byte [ecx + 0x1e], al
mov dword [ebp - 0x178], esi
jmp case.0x45a4b8.35
push 1
push 0xf8
push ecx
lea ecx, [ebp - 0x180]
call fcn.00402340
jmp case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x178], 8
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
jmp case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x30]
mov dword [ebp - 0x178], 8
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
mov ax, word [ebp - 0x30]
mov ecx, 0x3ec
cmp ax, cx
jae case.0x459cc3.13
movzx eax, ax
imul edi, eax, 0x15e
push 0x43
push 0
lea esi, [edi + 0x4ea9e3]
push esi
call fcn.004633e0
add esp, 0xc
test byte [ebp - 0x178], 7
jne 0x45a1d2
mov ecx, dword [ebp - 0x178]
lea edx, [ecx + 0x218]
cmp edx, dword [ebp - 0x180]
jg 0x45a1e5
sar ecx, 3
add ecx, dword [ebp - 0x174]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [esi + 0x30], xmm0
mov ax, word [ecx + 0x40]
mov word [esi + 0x40], ax
mov al, byte [ecx + 0x42]
mov byte [esi + 0x42], al
mov dword [ebp - 0x178], edx
jmp 0x45a1e5
push 1
push 0x218
push esi
lea ecx, [ebp - 0x180]
call fcn.00402340
movzx eax, word [esi]
movq xmm0, qword [edi + 0x4ea9fe]
imul ecx, eax, 0x43
mov eax, dword [edi + 0x4eaa06]
add ecx, 0x59a7f1
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
jmp case.0x45a4b8.35
push 1
push 0x20
lea eax, [ebp - 0x50]
mov dword [ebp - 0x178], 8
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x24], eax
cmp eax, 0x3ec
ja case.0x459cc3.13
mov dword [ebp - 0x20], 0
test eax, eax
jle case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
mov di, word [ebp - 0x34]
mov eax, 0x3ec
cmp di, ax
jae case.0x45a4b8.35
mov edx, dword [ebp - 0x178]
lea esi, [edx + 1]
cmp esi, dword [ebp - 0x180]
jg 0x45a36f
mov ecx, edx
and ecx, 0x80000007
jns 0x45a291
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, dword [ebp - 0x174]
sar edx, 3
mov dl, byte [eax + edx]
mov eax, 0x80
sar eax, cl
mov dword [ebp - 0x178], esi
test dl, al
je 0x45a369
mov byte [ebp - 0x19], 1
push 1
push 0x10
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
push 1
push 0x10
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
push 1
push 0x10
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
movzx eax, di
imul ecx, eax, 0x15e
movsx eax, word [ebp - 0x38]
movd xmm2, eax
movsx eax, word [ebp - 0x3c]
cvtdq2ps xmm2, xmm2
mov byte [ecx + 0x4ea8f2], 1
movd xmm1, eax
movsx eax, word [ebp - 0x40]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x4ea92f], xmm0
movss dword [ecx + 0x4ea933], xmm2
movss dword [ecx + 0x4ea937], xmm1
movq xmm0, qword [ecx + 0x4ea92f]
movq qword [ecx + 0x4ea915], xmm0
mov eax, dword [ecx + 0x4ea937]
mov dword [ecx + 0x4ea91d], eax
mov esi, dword [ebp - 0x20]
inc esi
mov dword [ebp - 0x20], esi
cmp esi, dword [ebp - 0x24]
jl 0x45a248
jmp case.0x45a4b8.35
mov byte [ebp - 0x19], 0
jmp 0x45a379
cmp byte [ebp - 0x19], 0
jne 0x45a2b6
movzx eax, di
imul eax, eax, 0x15e
mov byte [eax + 0x4ea8f2], 0
jmp 0x45a354
cmp byte [0x4d56c9], 0
je case.0x459cc3.13
push 1
push 0x10
lea eax, [ebp - 0x44]
mov dword [ebp - 0x178], 8
push eax
lea ecx, [ebp - 0x180]
call fcn.00402340
mov eax, dword [ebp - 0x44]
mov ecx, 0x3ec
cmp ax, cx
jae case.0x459cc3.13
movzx eax, ax
xorps xmm0, xmm0
imul edi, eax, 0x15e
test byte [ebp - 0x178], 7
lea esi, [edi + 0x4eaa26]
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm0
movq qword [esi + 0x20], xmm0
jne 0x45a42a
mov eax, dword [ebp - 0x178]
lea ecx, [eax + 0x140]
cmp ecx, dword [ebp - 0x180]
jg 0x45a43d
sar eax, 3
add eax, dword [ebp - 0x174]
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esi + 0x20], xmm0
mov dword [ebp - 0x178], ecx
jmp 0x45a43d
push 1
push 0x140
push esi
lea ecx, [ebp - 0x180]
call fcn.00402340
cmp byte [0x5bd306], 0
jne case.0x45a4b8.35
cmp dword [0x4d56ac], 0
jne case.0x45a4b8.35
cmp byte [esi], 1
jne case.0x45a4b8.35
mov ax, word [0x4d56a8]
cmp word [edi + 0x4eaa27], ax
jne case.0x45a4b8.35
movzx eax, ax
imul eax, eax, 0x15e
mov cl, byte [eax + 0x4ea913]
cmp cl, 0xff
je 0x45a499
mov al, byte [edi + 0x4ea913]
cmp al, 0xff
je 0x45a499
cmp cl, al
je case.0x45a4b8.35
mov cl, byte [edi + 0x4eaa4d]
movzx eax, cl
add eax, 0xffffffea
mov byte [ebp - 0x14], cl
cmp eax, 0x10
ja case.0x45a4b8.35
movzx eax, byte [eax + 0x45a81c]
jmp dword [eax*4 + 0x45a7f4]
movss xmm0, dword [0x4a2b6c]
jmp 0x45a552
movss xmm0, dword [0x4a2b50]
jmp 0x45a552
movss xmm0, dword [0x4a2b60]
jmp 0x45a552
movss xmm0, dword [0x4a2b38]
jmp 0x45a552
movss xmm0, dword [0x4a2b54]
jmp 0x45a552
movss xmm0, dword [0x4a2b64]
jmp 0x45a552
movss xmm0, dword [0x4a2b68]
jmp 0x45a552
mov edx, 0xf
lea ecx, [edx - 7]
call fcn.00459990
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4a2b1c]
jmp 0x45a542
mov edx, 8
lea ecx, [edx - 3]
call fcn.00459990
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x4a2b20]
ucomiss xmm0, dword [0x4a2aa8]
lahf
test ah, 0x44
jnp case.0x45a4b8.35
mov cl, byte [ebp - 0x14]
movss xmm1, dword [0x5bd389]
comiss xmm1, dword [0x4a2aa8]
jbe 0x45a595
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [0x5bd389], xmm1
jbe 0x45a58b
addss xmm1, dword [0x5bd385]
mov dword [0x5bd389], 0
jmp 0x45a5a4
movss xmm1, dword [0x5bd385]
jmp 0x45a5ac
movss xmm1, dword [0x5bd385]
subss xmm1, xmm0
xorps xmm0, xmm0
movss dword [0x5bd385], xmm1
comiss xmm0, xmm1
jb case.0x45a4b8.35
mov edx, dword [ebp - 0x44]
mov dword [0x5bd385], 0
call fcn.004559e0
mov esi, dword [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
cmp byte [ebp - 0x170], 0
je 0x45a5f0
cmp dword [ebp - 0x17c], 0x800
jle 0x45a5f0
push dword [ebp - 0x174]
call fcn.004684df
add esp, 4
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x20]
call eax
mov edi, eax
test edi, edi
jne 0x459b90
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp eax, dword [0x5bd798]
jb 0x45a6c4
cmp byte [0x4d56ab], 0
je 0x45a6c4
cmp byte [0x4d56aa], 0
je 0x45a6c4
lea eax, [ebp - 0x287]
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0x800
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], eax
mov byte [ebp - 0x288], 1
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x298]
push 1
push 0
mov dword [ebp - 4], 2
push dword [0x49c8e0]
mov eax, dword [ecx]
push dword [0x49c8dc]
push 0
push 0
push 8
push 1
push edx
push 0x4b1970
call dword [eax + 0x64]
call esi
add eax, 0xbb8
cmp byte [ebp - 0x288], 0
mov dword [0x5bd798], eax
je 0x45a6c4
cmp dword [ebp - 0x294], 0x800
jle 0x45a6c4
push dword [ebp - 0x28c]
call fcn.004684df
add esp, 4
call dword [ebp - 0x48]
add eax, dword [0x5bd31d]
mov dword [0x5bd79c], eax
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret