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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x6163a0
push ebx
push esi
push edi
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x20]
mov edx, dword [0x4e40b4]
call fcn.0040603c
xor eax, eax
push ebp
push 0x617cb5
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x616410
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x6163f7
mov dword [ebp - 0x34], 0x3e8
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x48]
mov dword [ebp - 0x34], 0x3e9
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call dword [ecx + 0x3c]
test al, al
jne 0x6163de
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x616445
xor edx, edx
push ebp
push 0x616909
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2a0], 0
je 0x616487
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x120], ax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3d8]
mov ecx, 0x14
xor edx, edx
div ecx
mov ebx, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x3d8], eax
mov edx, dword [ebp - 0x24]
mov eax, ebx
add dword [edx + 0x378], eax
mov edx, dword [ebp - 0x24]
add dword [edx + 0x37c], eax
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2ec], 0
jne 0x616857
mov dword [ebp - 0x34], 0x7d3
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x11e], 0
jne 0x6166f6
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x388], 0
jne 0x61658a
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x324], 0
je 0x616633
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x328]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x5f60]
jbe 0x616633
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x328], eax
mov dword [ebp - 0x34], 0x3ee
mov eax, dword [ebp - 0x24]
call fcn.00616234
mov dword [ebp - 0x34], 0x3ef
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov eax, dword [ebp - 0x24]
call fcn.006127e0
mov dword [ebp - 0x34], 0x3f0
push 1
mov edx, dword [0x6c0560]
mov edx, dword [edx]
mov cl, 1
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
jmp 0x616633
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x388], 0
je 0x616633
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x388]
cmp byte [eax + 0x325], 0
jne 0x616633
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x324], 0
je 0x616633
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x328]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x5f60]
jbe 0x616633
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x328], eax
mov dword [ebp - 0x34], 0x3ee
mov eax, dword [ebp - 0x24]
call fcn.00616234
mov dword [ebp - 0x34], 0x3ef
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov eax, dword [ebp - 0x24]
call fcn.006127e0
mov dword [ebp - 0x34], 0x3f0
push 1
mov edx, dword [0x6c0560]
mov edx, dword [edx]
mov cl, 1
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
mov dword [ebp - 0x34], 0x7d4
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x11e], 0
jne 0x616807
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2e4], 0
jne 0x616807
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x6166b9
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4844], 0
je 0x6166b9
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x4848], 0
je 0x6166b9
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x484c], 2
jne 0x6166b9
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov eax, dword [ebp - 0x24]
call fcn.006127e0
mov edx, 2
mov eax, dword [ebp - 0x24]
call fcn.005dbbdc
jmp 0x616807
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xb8], 0
je 0x6166e9
mov eax, dword [setsockopt]
movzx eax, byte [eax + 0x64d0]
mov edx, dword [ebp - 0x24]
mov byte [edx + 0xa5f], al
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.0060c0b8
jmp 0x616807
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x54]
jmp 0x616807
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 0x122]
mov eax, dword [ebp - 0x24]
cmp cx, word [eax + 0x11e]
jbe 0x61676f
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x378]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x22c]
jl 0x61676f
movzx eax, cx
mov ebx, 0x4b
xor edx, edx
div ebx
inc eax
mov edx, dword [ebp - 0x24]
movzx edx, word [edx + 0x11e]
add edx, eax
movzx ebx, cx
cmp edx, ebx
jge 0x61674f
mov edx, dword [ebp - 0x24]
add word [edx + 0x11e], ax
jmp 0x616759
mov eax, dword [ebp - 0x24]
mov word [eax + 0x11e], cx
mov dword [ebp - 0x34], 0x3ea
mov eax, dword [ebp - 0x24]
call fcn.006127e0
mov dword [ebp - 0x34], 0x3eb
mov dword [ebp - 0x34], 0x7d2
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov edx, dword [ebp - 0x24]
cmp ax, word [edx + 0x120]
jbe 0x616807
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x37c]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x230]
jl 0x616807
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov ecx, 0x12
xor edx, edx
div ecx
inc eax
mov edx, dword [ebp - 0x24]
movzx edx, word [edx + 0x120]
add edx, eax
mov ecx, dword [ebp - 0x24]
movzx ecx, word [ecx + 0x124]
cmp edx, ecx
jge 0x6167dd
mov edx, dword [ebp - 0x24]
add word [edx + 0x120], ax
jmp 0x6167f1
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov edx, dword [ebp - 0x24]
mov word [edx + 0x120], ax
mov dword [ebp - 0x34], 0x3ec
mov eax, dword [ebp - 0x24]
call fcn.006127e0
mov dword [ebp - 0x34], 0x3ed
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x378]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x22c]
jl 0x616829
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x378], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x37c]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x230]
jl 0x61684b
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x37c], edx
mov dword [ebp - 0x34], 0x3f1
jmp 0x6168ff
mov dword [ebp - 0x34], 0x3f2
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x6168d4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2e0]
cmp byte [eax + 0xd5], 0
je 0x6168ae
cmp dword [eax + 0xd8], 0
jbe 0x6168ae
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2f0]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0x2e0]
cmp eax, dword [edx + 0xd8]
jbe 0x6168f8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x50]
jmp 0x6168f8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2f0]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x1aac]
jbe 0x6168f8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x50]
jmp 0x6168f8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2f0]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x1ab0]
jbe 0x6168f8
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x50]
mov dword [ebp - 0x34], 0x3f3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x616976
xor edx, edx
push ebp
push 0x616d2a
push dword fs:[edx]
mov dword fs:[edx], esp
xor ebx, ebx
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2ec], 0
jne 0x616d20
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x616d20
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2e0]
cmp byte [eax + 0xd4], 0
jne 0x616d20
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xbde], 2
je 0x616d20
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xc8], 0
jne 0x616b5e
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x980], 0
jbe 0x616b5e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0xd4]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x58]
jbe 0x616b5e
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x11e]
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fdivp st(1)
fmul dword [0x617cd0]
mov eax, dword [setsockopt]
movzx eax, byte [eax + 0x53]
mov dword [ebp - 0x58], eax
fild dword [ebp - 0x58]
fcompp
wait
fnstsw ax
sahf
jbe 0x616b5e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xd4], eax
mov eax, dword [ebp - 0x24]
movzx edx, word [eax + 0x980]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
call fcn.005bf910
cmp byte [eax + 0x12], 5
jne 0x616b5e
movzx eax, byte [eax + 0x14]
sub al, 1
je 0x616a8b
sub al, 2
jne 0x616b5e
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x988]
mov esi, eax
add esi, esi
lea esi, [esi + esi*4]
mov dword [ebp - 0x50], esi
fild dword [ebp - 0x50]
mov eax, dword [setsockopt]
movzx eax, byte [eax + 0x60]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fdivp st(1)
call fcn.0040356c
mov edx, dword [ebp - 0x24]
movzx ebx, word [edx + 0x122]
mov edx, dword [ebp - 0x24]
movzx edx, word [edx + 0x11e]
sub ebx, edx
cmp eax, ebx
jge 0x616ad4
mov ebx, eax
cmp ebx, esi
jge 0x616afe
mov eax, dword [ebp - 0x24]
add dword [eax + 0xc8], ebx
mov dword [ebp - 0x50], ebx
fild dword [ebp - 0x50]
fdiv dword [0x617cd4]
call fcn.00403560
mov edx, dword [ebp - 0x24]
sub word [edx + 0x988], ax
jmp 0x616b15
xor esi, esi
mov eax, dword [ebp - 0x24]
add dword [eax + 0xc8], esi
mov eax, dword [ebp - 0x24]
mov word [eax + 0x988], 0
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x988], 0x3e8
jb 0x616b27
mov bl, 1
jmp 0x616b5e
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov word [eax + 0x988], 0
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x616b52
mov eax, dword [ebp - 0x24]
lea edx, [eax + 0x97c]
mov eax, dword [ebp - 0x24]
call fcn.005fadd8
mov eax, dword [ebp - 0x24]
mov word [eax + 0x980], 0
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xcc], 0
jne 0x616cee
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x980], 0
jbe 0x616cee
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0xd8]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x5c]
jbe 0x616cee
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x120]
mov dword [ebp - 0x50], eax
fild dword [ebp - 0x50]
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fdivp st(1)
fmul dword [0x617cd0]
mov eax, dword [setsockopt]
movzx eax, byte [eax + 0x54]
mov dword [ebp - 0x58], eax
fild dword [ebp - 0x58]
fcompp
wait
fnstsw ax
sahf
jbe 0x616cee
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xd8], eax
mov eax, dword [ebp - 0x24]
movzx edx, word [eax + 0x980]
mov eax, dword [0x6c0ec4]
mov eax, dword [eax]
call fcn.005bf910
cmp byte [eax + 0x12], 5
jne 0x616cee
movzx eax, byte [eax + 0x14]
add al, 0xfe
sub al, 2
jae 0x616cee
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x988]
mov esi, eax
add esi, esi
lea esi, [esi + esi*4]
mov dword [ebp - 0x50], esi
fild dword [ebp - 0x50]
mov eax, dword [setsockopt]
movzx eax, byte [eax + 0x61]
mov dword [ebp - 0x54], eax
fild dword [ebp - 0x54]
fdivp st(1)
call fcn.0040356c
mov edx, dword [ebp - 0x24]
movzx ebx, word [edx + 0x124]
mov edx, dword [ebp - 0x24]
movzx edx, word [edx + 0x120]
sub ebx, edx
cmp eax, ebx
jge 0x616c64
mov ebx, eax
cmp ebx, esi
jge 0x616c8e
mov eax, dword [ebp - 0x24]
add dword [eax + 0xcc], ebx
mov dword [ebp - 0x50], ebx
fild dword [ebp - 0x50]
fdiv dword [0x617cd4]
call fcn.00403560
mov edx, dword [ebp - 0x24]
sub word [edx + 0x988], ax
jmp 0x616ca5
xor esi, esi
mov eax, dword [ebp - 0x24]
add dword [eax + 0xcc], esi
mov eax, dword [ebp - 0x24]
mov word [eax + 0x988], 0
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x988], 0x3e8
jb 0x616cb7
mov bl, 1
jmp 0x616cee
xor ebx, ebx
mov eax, dword [ebp - 0x24]
mov word [eax + 0x988], 0
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x616ce2
mov eax, dword [ebp - 0x24]
lea edx, [eax + 0x97c]
mov eax, dword [ebp - 0x24]
call fcn.005fadd8
mov eax, dword [ebp - 0x24]
mov word [eax + 0x980], 0
test bl, bl
je 0x616d20
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x616d20
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x98a]
push eax
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 0x988]
mov edx, 0xc
mov eax, dword [ebp - 0x24]
call fcn.00609290
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x616d49
xor edx, edx
push ebp
push 0x6170b2
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2ec], 0
jne 0x616ff8
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xcc], 0
jg 0x616d8f
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xc8], 0
jg 0x616d8f
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xd0], 0
jle 0x616ff8
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x34]
mov edx, eax
add edx, edx
lea edx, [edx + edx*4]
mov eax, 0x190
call fcn.004e3dd8
mov ebx, 0x258
sub ebx, eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x254]
cmp ebx, eax
ja 0x617006
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2ec], 0
jne 0x617006
call sub.kernel32.dll_GetTickCount_1
mov edx, eax
mov eax, dword [ebp - 0x24]
sub edx, dword [eax + 0x254]
sub edx, ebx
mov eax, 0xc8
call fcn.004e3dd8
mov ebx, eax
call sub.kernel32.dll_GetTickCount_1
add ebx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x254], ebx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xcc], 0
jg 0x616e2a
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xc8], 0
jg 0x616e2a
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x24c], 0
jle 0x617006
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x248], 0
jg 0x616e43
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x248], 1
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x250], 0
jg 0x616e5c
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x250], 1
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x24c], 0
jg 0x616e75
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x24c], 1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0xc8]
jle 0x616ea2
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xc8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xc8], edx
jmp 0x616ec0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x248]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x24]
sub dword [edx + 0xc8], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x250]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0xcc]
jle 0x616eed
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xcc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xcc], edx
jmp 0x616f0b
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x250]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x250]
mov edx, dword [ebp - 0x24]
sub dword [edx + 0xcc], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x24c]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0xd0]
jle 0x616f38
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xd0]
add dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xd0], edx
jmp 0x616f56
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x24c]
add dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x24c]
mov edx, dword [ebp - 0x24]
sub dword [edx + 0xd0], eax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x34]
mov ecx, 0xa
xor edx, edx
div ecx
add eax, 5
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x248], eax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x34]
mov ecx, 0xa
xor edx, edx
div ecx
add eax, 5
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x250], eax
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x24c], 5
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.006161d0
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x11e]
mov edx, dword [ebp - 0x24]
cmp ax, word [edx + 0x122]
jne 0x616fd5
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xc8], edx
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xd0], edx
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x120]
mov edx, dword [ebp - 0x24]
cmp ax, word [edx + 0x124]
jne 0x617006
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0xcc], edx
jmp 0x617006
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x254], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x378]
mov edx, dword [setsockopt]
mov edx, dword [edx + 0x22c]
neg edx
cmp eax, edx
jge 0x617054
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x11e], 1
jbe 0x617054
mov eax, dword [ebp - 0x24]
dec word [eax + 0x11e]
mov eax, dword [setsockopt]
mov eax, dword [eax + 0x22c]
mov edx, dword [ebp - 0x24]
add dword [edx + 0x378], eax
mov eax, dword [ebp - 0x24]
call fcn.006127e0
xor ebx, ebx
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x122]
mov edx, dword [ebp - 0x24]
cmp ax, word [edx + 0x11e]
jae 0x617079
mov bl, 1
dec eax
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x124]
mov edx, dword [ebp - 0x24]
cmp ax, word [edx + 0x120]
jae 0x61709c
mov bl, 1
dec eax
mov edx, dword [ebp - 0x24]
mov word [edx + 0x120], ax
test bl, bl
je 0x6170a8
mov eax, dword [ebp - 0x24]
call fcn.006127e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x6170d1
xor eax, eax
push ebp
push 0x617464
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x380], 0
je 0x617185
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x384]
cmp eax, 0x7530
ja 0x61717a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x380]
cmp byte [eax + 0x2ec], 0
jne 0x61717a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x380]
cmp byte [eax + 0x2e4], 0
jne 0x61717a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x380]
mov eax, dword [eax + 0x2e0]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2e0]
jne 0x61717a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x380]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x24]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jg 0x61717a
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x380]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x28]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xf
jle 0x617185
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x380], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x388], 0
je 0x6171ef
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x38c]
cmp eax, 0x7530
ja 0x6171e4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x388]
cmp byte [eax + 0x2ec], 0
jne 0x6171e4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x388]
cmp byte [eax + 0x2e4], 0
jne 0x6171e4
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x388]
mov eax, dword [eax + 0x2e0]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2e0]
je 0x6171ef
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x388], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x390], 0
je 0x617259
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x394]
cmp eax, 0x1770
ja 0x61724e
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x390]
cmp byte [eax + 0x2ec], 0
jne 0x61724e
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x390]
cmp byte [eax + 0x2e4], 0
jne 0x61724e
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x390]
mov eax, dword [eax + 0x2e0]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2e0]
je 0x617259
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x390], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x278], 0
je 0x61731f
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x2a4], 1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
cmp byte [eax + 0x2ec], 0
je 0x61729d
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0x1f
je 0x61729d
mov eax, dword [ebp - 0x24]
mov word [eax + 0x11e], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
cmp byte [eax + 0x2e4], 0
je 0x61731f
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0x1f
jne 0x617317
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
cmp byte [eax + 0x22a], 0
jne 0x617317
mov ebx, dword [ebp - 0x24]
lea eax, [ebx + 0xc00]
mov edx, dword [ebx + 0x278]
add edx, 0x15
call fcn.004055f8
call sub.kernel32.dll_GetTickCount_1
add eax, 0x493e0
mov dword [ebx + 0xc04], eax
mov eax, dword [ebx + 0x278]
mov eax, dword [eax + 0x35a4]
mov dword [ebx + 0xc08], eax
xor eax, eax
mov dword [ebx + 0x278], eax
mov eax, ebx
call fcn.006129b4
jmp 0x61731f
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x50]
mov dword [ebp - 0x34], 0xbc2
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28c]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x6173b7
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax + 0x28c]
cmp dword [ebx + 8], 0
jle 0x6173b7
mov eax, ebx
mov edx, esi
call fcn.0041fbfc
test eax, eax
je 0x6173b1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041fbfc
cmp byte [eax + 0x2ec], 0
jne 0x6173a1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041fbfc
cmp byte [eax + 0x2e4], 0
jne 0x6173a1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041fbfc
mov eax, dword [eax + 0x278]
cmp eax, dword [ebp - 0x24]
je 0x6173b1
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041faa0
dec esi
cmp esi, 0xffffffff
jne 0x617338
mov dword [ebp - 0x34], 0xbc3
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2b4], 0
je 0x6173eb
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2b8]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2bc]
jbe 0x6173eb
mov eax, dword [ebp - 0x24]
call fcn.0060f4c4
mov dword [ebp - 0x34], 0xbc4
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2c0], 0
je 0x61741f
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2c4]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2c8]
jbe 0x61741f
mov eax, dword [ebp - 0x24]
call fcn.0060f514
mov dword [ebp - 0x34], 0xbc5
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2cc], 0
je 0x617453
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x2d0]
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x2d4]
jbe 0x617453
mov eax, dword [ebp - 0x24]
call fcn.00616150
mov dword [ebp - 0x34], 0xbc6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x61749b
xor edx, edx
push ebp
push 0x617834
push dword fs:[edx]
mov dword fs:[edx], esp
mov dword [ebp - 0x34], 4
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3c4]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x1964]
jbe 0x6174fb
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x3c4], eax
mov eax, dword [ebp - 0x24]
cmp word [eax + 0xc4], 0
jbe 0x6174fb
mov edx, dword [setsockopt]
mov edx, dword [edx + 0x1968]
mov eax, dword [ebp - 0x24]
call fcn.006088e4
mov dword [ebp - 0x34], 0x29
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3c8]
mov ebx, dword [setsockopt]
mov ebx, dword [ebx + 0x1978]
cmp eax, ebx
jbe 0x617542
mov eax, dword [setsockopt]
mov eax, dword [ebp - 0x24]
add dword [eax + 0x3c8], ebx
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x617542
mov eax, dword [ebp - 0x24]
call fcn.00608858
mov dword [ebp - 0x34], 0x2a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3d0]
cmp eax, 0x2710
jbe 0x6177e2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x3d0], eax
mov dword [ebp - 0x34], 0x1ae
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x22a], 0
jne 0x6176bf
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x268], 0
je 0x6175dc
mov dword [ebp - 0x34], 0x1af
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x268]
cmp byte [eax + 0x2e4], 0
je 0x6175d5
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x268]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x268]
call fcn.00608934
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x268], edx
mov dword [ebp - 0x34], 0x1b0
mov dword [ebp - 0x34], 0x1b1
mov dword [ebp - 0x34], 0x2c
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x268]
cmp eax, dword [ebp - 0x24]
jne 0x617685
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x26c]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
cmp esi, 0
jl 0x617660
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x26c]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x617660
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x26c]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x61765a
cmp byte [eax + 0x2e4], 0
jne 0x617645
mov edx, dword [eax + 0x268]
cmp edx, dword [ebp - 0x24]
je 0x61765a
call fcn.0060f52c
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x26c]
mov edx, esi
mov ecx, dword [eax]
call dword [ecx + 0x48]
dec esi
cmp esi, 0xffffffff
jne 0x61760b
mov eax, dword [ebp - 0x24]
call fcn.005f9e34
test al, al
jne 0x617685
push 1
push 0
push 0
push 0
push 0
mov cx, 0x140a
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
call fcn.00609fdc
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
call fcn.005eee04
mov dword [ebp - 0x34], 0x2d
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x3678]
test eax, eax
je 0x6176b8
cmp byte [eax + 0x2e4], 0
je 0x6176b8
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x3678], edx
mov dword [ebp - 0x34], 0x2e
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x278], 0
je 0x6177e2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x6c05bc]
cmp eax, dword [edx]
jae 0x6176f5
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x288], 5
jae 0x6176f5
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x27c], edx
mov dword [ebp - 0x34], 0x1a7
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + 0x27c]
jbe 0x6177ae
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
mov eax, dword [eax + 0x28c]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x617777
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
mov ebx, dword [eax + 0x28c]
cmp dword [ebx + 8], 0
jle 0x617777
mov dword [ebp - 0x34], 0x1a8
mov eax, ebx
mov edx, esi
call fcn.0041fbfc
cmp eax, dword [ebp - 0x24]
jne 0x617771
mov dword [ebp - 0x34], 0x1a9
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x278]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041faa0
jmp 0x617777
dec esi
cmp esi, 0xffffffff
jne 0x617728
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x278], edx
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + 0x11e]
mov ecx, 0xa
xor edx, edx
div ecx
mov edx, dword [ebp - 0x24]
mov word [edx + 0x11e], ax
mov dword [ebp - 0x34], 0x1aa
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [ebp - 0x34], 0x1ab
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x280], 0
je 0x6177e2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x280]
cmp eax, 0xa4cb80
jbe 0x6177e2
mov eax, dword [ebp - 0x24]
mov word [eax + 0x11e], 0
mov dword [ebp - 0x34], 0x2b
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3cc]
cmp eax, 0x7530
jbe 0x61782a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x3cc], eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x28]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x2e0]
call fcn.0066e9d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x617884
xor edx, edx
push ebp
push 0x617b71
push dword fs:[edx]
mov dword fs:[edx], esp
mov byte [ebp - 0x25], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [ebp - 0x24]
movzx eax, word [eax + esi*2 + 0x1b4]
test ax, ax
jbe case.0x61790c.2
cmp ax, 0xea60
jae case.0x61790c.2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + esi*4 + 0x1cc]
cmp eax, 0x3e8
jbe case.0x61790c.2
mov eax, dword [ebp - 0x24]
dec word [eax + esi*2 + 0x1b4]
mov eax, dword [ebp - 0x24]
add dword [eax + esi*4 + 0x1cc], 0x3e8
mov eax, dword [ebp - 0x24]
cmp word [eax + esi*2 + 0x1b4], 0
jne case.0x61790c.2
mov byte [ebp - 0x25], 1
mov eax, esi
cmp eax, 0xb
ja case.0x61790c.2
jmp dword [eax*4 + 0x617913]
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x319], 0
xor ecx, ecx
mov edx, 5
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
mov bl, 1
push 1
mov cl, 1
mov edx, 0x617ce0
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 3
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
mov bl, 1
push 1
mov cl, 1
mov edx, 0x617cf8
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 9
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x361], 0
jmp case.0x61790c.2
mov eax, dword [ebp - 0x24]
mov byte [eax + 0x363], 0
jmp case.0x61790c.2
xor ecx, ecx
mov edx, 0xc
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
xor ecx, ecx
mov edx, 0xb
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
xor ecx, ecx
mov edx, 6
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.0x61790c.2
xor ecx, ecx
mov edx, 0xd
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
inc esi
cmp esi, 0xc
jne 0x61789a
xor esi, esi
mov eax, dword [ebp - 0x24]
cmp word [eax + esi*2 + 0x204], 0
jbe case.default.0x617a50
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
cmp eax, dword [edx + esi*4 + 0x210]
jbe case.default.0x617a50
mov eax, dword [ebp - 0x24]
mov word [eax + esi*2 + 0x204], 0
mov bl, 1
mov eax, esi
cmp eax, 5
ja case.default.0x617a50
jmp dword [eax*4 + 0x617a57]
push 1
mov cl, 1
mov edx, 0x617d10
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 4
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.default.0x617a50
push 1
mov cl, 1
mov edx, 0x617d28
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 7
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.default.0x617a50
push 1
mov cl, 1
mov edx, 0x617d40
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 2
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.default.0x617a50
push 1
mov cl, 1
mov edx, 0x617d58
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
jmp case.default.0x617a50
push 1
mov cl, 1
mov edx, 0x617d74
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 0xa
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
jmp case.default.0x617a50
push 1
mov cl, 1
mov edx, 0x617d8c
mov eax, dword [ebp - 0x24]
call fcn.0060cf8c
xor ecx, ecx
mov edx, 8
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
call dword [edi + 0xc]
inc esi
cmp esi, 6
jne 0x617a0f
cmp byte [ebp - 0x25], 0
je 0x617b53
mov eax, dword [ebp - 0x24]
call fcn.0060bde0
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x7c], eax
mov eax, dword [ebp - 0x24]
call fcn.0060bfc8
test bl, bl
je 0x617b67
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
call dword [edx + 0x5c]
mov eax, dword [ebp - 0x24]
call fcn.0060f130
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x617b90
xor eax, eax
push ebp
push 0x617c29
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 0x3c0]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x6438]
jbe 0x617c1f
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x3c0], eax
mov eax, dword [ebp - 0x24]
cmp word [eax + 0x1b4], 0
jbe 0x617c1f
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0x2a3], 0
je 0x617bee
mov eax, dword [ebp - 0x24]
sub dword [eax + 0x2ac], 0x3e8
mov eax, dword [ebp - 0x24]
movzx edx, byte [eax + 0x258]
inc edx
mov eax, dword [ebp - 0x24]
call fcn.0061305c
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x378], edx
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dword [eax + 0x37c], edx
mov eax, dword [ebp - 0x24]
call fcn.006127e0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x617c48
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xbd4]
test eax, eax
je 0x617c5d
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0x24]
mov dword [eax], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0xbd8]
test eax, eax
je 0x617c72
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0x28]
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x617cbc
lea eax, [ebp - 0x80]
mov edx, 2
call fcn.004053b8
lea eax, [ebp - 0x70]
mov edx, 6
call fcn.004053b8
lea eax, [ebp - 0x4c]
mov edx, 5
call fcn.004053b8
lea eax, [ebp - 0x20]
mov edx, dword [0x4e40b4]
call fcn.0040610c
ret