Function at 0x406e80
Capabilities:
Receive data
Receive data on socket

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x478bfd
push eax
mov eax, 0x37a8
mov dword fs:[0], esp
call fcn.00458680
push ebx
mov bl, byte [0x494b70]
push ebp
push esi
mov esi, dword [esp + 0x37d0]
mov ebp, ecx
push edi
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x3a9]
mov byte [esp + 0x3a8], bl
mov dword [esp + 0x1c], ebp
rep stosd dword es:[edi], eax
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x407663
test ecx, ecx
jl 0x4075f1
mov eax, dword [ebp + 0x122f8]
test eax, eax
jne 0x406eee
xor edx, edx
jmp 0x406f07
mov edx, dword [ebp + 0x122fc]
sub edx, eax
mov eax, 0x60f25deb
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
jae 0x4075f1
mov eax, dword [ebp + 0x12324]
test eax, eax
je 0x40809b
cmp eax, 1
jne 0x40809b
lea eax, [ecx*8]
mov edx, dword [ebp + 0x122f8]
sub eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
shl eax, 2
mov ecx, dword [eax + edx + 0x17c]
test ecx, ecx
jne 0x406f50
xor eax, eax
jmp 0x4080a0
mov ecx, dword [eax + edx + 0x288]
test ecx, ecx
je 0x406f62
xor eax, eax
jmp 0x4080a0
mov ecx, dword [eax + edx + 0x15c]
test ecx, ecx
jne 0x406f74
xor eax, eax
jmp 0x4080a0
xor ecx, ecx
lea edx, [esp + 0x30]
mov dword [esp + 0x69], ecx
push edx
mov dword [esp + 0x71], ecx
mov byte [esp + 0x6c], bl
mov dword [esp + 0x75], ecx
mov dword [esp + 0x79], ecx
mov word [esp + 0x7d], cx
mov byte [esp + 0x7f], cl
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3a]
mov edx, dword [esp + 0x38]
and eax, 0xffff
and ecx, 0xffff
push eax
mov eax, dword [esp + 0x3a]
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x3a]
push edx
mov edx, dword [esp + 0x3c]
and eax, 0xffff
and ecx, 0xffff
push eax
and edx, 0xffff
push ecx
push edx
lea eax, [esp + 0x80]
push str._04d__02d__02d__02d:_02d:_02d
push eax
call fcn.004585a3
mov ecx, dword [esi]
mov ebp, dword [ebp + 0x122f8]
add esp, 0x20
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*2]
lea eax, [ecx + edx*8]
shl eax, 2
mov ecx, dword [eax + ebp + 0x28c]
test ecx, ecx
je 0x40705b
lea edi, [esp + 0x68]
lea esi, [eax + ebp + 0x290]
mov dl, byte [esi]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x40704b
test cl, cl
je 0x407047
mov dl, byte [esi + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x40704b
add esi, 2
add edi, 2
test cl, cl
jne 0x407023
xor ecx, ecx
jmp 0x407050
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jge 0x40705b
xor eax, eax
jmp 0x4080a0
mov ebx, dword [esp + 0x37d0]
mov ecx, dword [eax + ebp + 0x158]
test ebx, ecx
je 0x4075f8
cmp dword [eax + ebp + 0x168], 0xffffffff
je 0x40809b
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, dword [esp + 0x37d4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ecx]
mov esi, dword [eax + 0x122f8]
mov edi, dword [eax + 0x12308]
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*2]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x5c]
shl ecx, 2
and edx, 0xffff
mov eax, dword [ecx + esi + 0x168]
lea ebp, [eax*8]
sub ebp, eax
shl ebp, 6
add ebp, eax
lea ebp, [eax + ebp*4]
add eax, edx
lea eax, [eax + ebp*4]
test dword [edi + eax*4 + 0x7038], ebx
je 0x40809b
mov ecx, dword [ecx + esi + 0x168]
push 0x48e54c
lea eax, [ecx*8]
sub eax, ecx
shl eax, 6
add eax, ecx
lea eax, [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov eax, edx
shl eax, 0xc
add eax, edi
add eax, edx
lea ecx, [eax + ecx*4 + 0x31]
push ecx
lea ecx, [esp + 0x17b4]
call fcn.00443360
lea ecx, [esp + 0x17ac]
call fcn.00443420
test eax, eax
je 0x40758d
lea ecx, [esp + 0x17ac]
call fcn.004433c0
mov bl, byte [0x494b70]
mov edx, eax
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x91]
mov byte [esp + 0x90], bl
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x199]
mov byte [esp + 0x198], bl
lea ebx, [esp + 0x90]
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x90]
test al, al
je 0x407302
mov al, byte [0x48e1cc]
test al, al
je 0x407302
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x90]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
ja 0x407302
mov al, byte [esp + 0x90]
test al, al
je 0x407302
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
push eax
push 0x48e1cc
call fcn.004589f0
add esp, 0xc
test eax, eax
jne 0x407267
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, 1
sub edx, ecx
lea edi, [esp + 0x90]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [esp + ecx + 0x94]
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.004586b0
add esp, 0xc
jmp 0x4071df
mov al, byte [esp + 0x90]
test al, al
je 0x407302
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x90]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x90]
sub edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 0x48e1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x4072cc
test al, al
je 0x4072c8
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x4072cc
add esi, 2
add edx, 2
test al, al
jne 0x4072a4
xor eax, eax
jmp 0x4072d1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407302
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x90]
sub edx, ecx
lea edi, [esp + 0x90]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [edx + ecx], al
jmp 0x407267
lea eax, [esp + 0x90]
push 0x48e1a8
push eax
call fcn.00458600
add esp, 8
test eax, eax
je 0x4074b0
mov byte [eax], 0
lea edi, [eax + 1]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x198]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x198]
test al, al
je 0x4074b0
mov al, byte [0x48e1cc]
test al, al
je 0x4074b0
lea edi, [esp + 0x198]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x4074b0
mov al, byte [esp + 0x198]
test al, al
je 0x4074b0
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x198]
push ecx
push eax
push 0x48e1cc
call fcn.004589f0
add esp, 0xc
test eax, eax
jne 0x407415
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, 1
sub edx, ecx
lea edi, [esp + 0x198]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [esp + ecx + 0x19c]
lea ecx, [esp + 0x19c]
push eax
push ecx
call fcn.004586b0
add esp, 0xc
jmp 0x40738d
mov al, byte [esp + 0x198]
test al, al
je 0x4074b0
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x198]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x198]
sub edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 0x48e1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x40747a
test al, al
je 0x407476
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x40747a
add esi, 2
add edx, 2
test al, al
jne 0x407452
xor eax, eax
jmp 0x40747f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4074b0
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x198]
sub edx, ecx
lea edi, [esp + 0x198]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [edx + ecx], al
jmp 0x407415
mov al, byte [0x494b70]
mov edx, dword [esp + 0x60]
mov byte [esp + 0x2a0], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x2a1]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x62]
and edx, 0xffff
and ecx, 0xffff
lea eax, [esp + 0x2a0]
push ecx
push edx
push str._02d:_02d
push eax
call fcn.004585a3
add esp, 0x10
lea esi, [esp + 0x2a0]
lea eax, [esp + 0x90]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40752d
test cl, cl
je 0x407529
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40752d
add eax, 2
add esi, 2
test cl, cl
jne 0x407505
xor eax, eax
jmp 0x407532
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jg 0x407579
lea esi, [esp + 0x198]
lea eax, [esp + 0x2a0]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x40756c
test cl, cl
je 0x407568
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x40756c
add eax, 2
add esi, 2
test cl, cl
jne 0x407544
xor eax, eax
jmp 0x407571
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x40809b
lea ecx, [esp + 0x17ac]
call fcn.00443420
test eax, eax
jne 0x407137
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043f050
add esp, 4
test eax, eax
je 0x4075b7
push 0
lea eax, [esp + 0x3ac]
push 0x1001
push eax
push esi
call dword [sym.imp.WS2_32.dll_recv]
lea ecx, [esp + 0x10]
push str.Invalid_time.
push ecx
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 0
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043f050
add esp, 4
test eax, eax
je 0x407622
push 0
lea edx, [esp + 0x3ac]
push 0x1001
push edx
push esi
call dword [sym.imp.WS2_32.dll_recv]
lea eax, [esp + 0x10]
push str.Invalid_service.
push eax
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 1
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
mov dword [esi], 0xffffffff
mov eax, dword [ebp + 0x12324]
xor ebx, ebx
cmp eax, ebx
je 0x40809b
cmp eax, 1
jne 0x4080bb
mov cl, byte [0x494b70]
xor edx, edx
mov dword [esp + 0x31], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x35], edx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x30], cl
mov dword [esp + 0x39], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov eax, dword [ebp + 0x122f8]
cmp eax, ebx
je 0x407edb
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x122fc]
sub ecx, eax
mov eax, 0x60f25deb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jae 0x407edb
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov eax, dword [ebx + 0x122f8]
mov ecx, dword [eax + ebp + 0x17c]
test ecx, ecx
je 0x407ebd
mov ecx, dword [eax + ebp + 0x288]
test ecx, ecx
jne 0x407ebd
mov ecx, dword [eax + ebp + 0x15c]
test ecx, ecx
je 0x407ebd
xor edx, edx
mov cl, byte [0x494b70]
mov dword [esp + 0x7d], edx
lea eax, [esp + 0x58]
mov dword [esp + 0x81], edx
push eax
mov dword [esp + 0x89], edx
mov byte [esp + 0x80], cl
mov dword [esp + 0x8d], edx
mov word [esp + 0x91], dx
mov byte [esp + 0x93], dl
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x62]
mov eax, dword [esp + 0x60]
and ecx, 0xffff
and edx, 0xffff
push ecx
mov ecx, dword [esp + 0x62]
and eax, 0xffff
push edx
mov edx, dword [esp + 0x62]
push eax
mov eax, dword [esp + 0x64]
and ecx, 0xffff
and edx, 0xffff
push ecx
and eax, 0xffff
push edx
push eax
lea ecx, [esp + 0x94]
push str._04d__02d__02d__02d:_02d:_02d
push ecx
call fcn.004585a3
mov edi, dword [ebx + 0x122f8]
add esp, 0x20
mov eax, dword [edi + ebp + 0x28c]
test eax, eax
je 0x407808
lea esi, [esp + 0x7c]
lea eax, [edi + ebp + 0x290]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4077fb
test cl, cl
je 0x4077f7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4077fb
add eax, 2
add esi, 2
test cl, cl
jne 0x4077d7
xor eax, eax
jmp 0x407800
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x407ebd
mov eax, dword [edi + ebp + 0x154]
test eax, eax
je 0x407862
mov eax, dword [edi + ebp + 0x150]
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
push eax
call esi
mov edi, dword [esp + 0x37cc]
mov ebx, eax
push edi
call esi
cmp eax, ebx
ja 0x407ebd
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x122f8]
mov ecx, dword [eax + ebp + 0x14c]
push ecx
call esi
mov edx, eax
push edi
mov dword [esp + 0x18], edx
call esi
mov edx, dword [esp + 0x14]
cmp eax, edx
jb 0x407ebd
jmp 0x407869
mov edi, dword [esp + 0x37cc]
mov eax, dword [ebx + 0x122f8]
mov ecx, dword [eax + ebp + 0x148]
test ecx, ecx
je 0x40794d
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x40792a
lea ecx, [esp + 0x14]
lea edx, [esp + 0x28]
or eax, 0xffffffff
push ecx
push edx
mov dword [esp + 0x30], eax
mov esi, 6
push 0
push edi
mov byte [esp + 0x40], 0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], esi
call sub.iphlpapi.dll_SendARP
test eax, eax
jne 0x407900
cmp dword [esp + 0x14], esi
jne 0x407900
xor esi, esi
xor edi, edi
xor eax, eax
lea ecx, [esp + edi + 0x30]
mov al, byte [esp + esi + 0x28]
push eax
push str._02x
push ecx
call fcn.004585a3
mov edx, dword [esp + 0x20]
add esp, 0xc
add edi, eax
inc esi
dec edx
cmp esi, edx
jb 0x4078c3
xor eax, eax
lea ecx, [esp + edi + 0x30]
mov al, byte [esp + esi + 0x28]
push eax
push str._02x
push ecx
call fcn.004585a3
jmp 0x407913
lea edx, [esp + 0x13ac]
lea eax, [esp + 0x30]
push edx
push eax
push edi
call fcn.00408a50
mov al, byte [esp + 0x3c]
add esp, 0xc
test al, al
je 0x407ebd
mov dword [esp + 0x40], 1
mov eax, dword [ebx + 0x122f8]
lea edx, [esp + 0x30]
lea ecx, [eax + ebp + 0x138]
push ecx
push edx
call fcn.0045d2f0
add esp, 8
test eax, eax
jne 0x407ebd
mov eax, dword [ebx + 0x122f8]
mov ecx, dword [eax + ebp + 0x154]
test ecx, ecx
jne 0x407985
mov ecx, dword [eax + ebp + 0x148]
test ecx, ecx
jne 0x407985
mov ecx, dword [eax + ebp + 0x134]
test ecx, ecx
je 0x407ebd
mov dword [esp + 0x44], 1
jmp 0x407ebd
mov ecx, dword [esp + 0x37d0]
mov edx, dword [eax + ebp + 0x158]
test ecx, edx
je 0x407eb5
cmp dword [eax + ebp + 0x168], 0xffffffff
je 0x407edb
lea edx, [esp + 0x68]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
and ecx, 0xffff
mov edx, dword [eax + 0x122f8]
mov esi, dword [eax + 0x12308]
mov eax, dword [esp + 0x20]
mov eax, dword [edx + eax + 0x168]
lea edi, [eax*8]
sub edi, eax
shl edi, 6
add edi, eax
lea edi, [eax + edi*4]
add eax, ecx
lea eax, [eax + edi*4]
mov edi, dword [esp + 0x37d0]
test dword [esi + eax*4 + 0x7038], edi
je 0x407edb
mov eax, dword [esp + 0x20]
push 0x48e54c
mov eax, dword [edx + eax + 0x168]
lea edx, [eax*8]
sub edx, eax
shl edx, 6
add edx, eax
lea edx, [eax + edx*4]
lea eax, [eax + edx*4]
mov edx, ecx
shl edx, 0xc
add edx, esi
add edx, ecx
lea ecx, [esp + 0x17b0]
lea eax, [edx + eax*4 + 0x31]
push eax
call fcn.00443360
lea ecx, [esp + 0x17ac]
call fcn.00443420
test eax, eax
je 0x407ea7
lea ecx, [esp + 0x17ac]
call fcn.004433c0
mov bl, byte [0x494b70]
mov edx, eax
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x91]
mov byte [esp + 0x90], bl
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x199]
mov byte [esp + 0x198], bl
lea ebx, [esp + 0x90]
rep stosd dword es:[edi], eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x90]
test al, al
je 0x407c20
mov al, byte [0x48e1cc]
test al, al
je 0x407c20
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x407c20
mov al, byte [esp + 0x90]
test al, al
je 0x407c20
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x90]
push ecx
push eax
push 0x48e1cc
call fcn.004589f0
add esp, 0xc
test eax, eax
jne 0x407b85
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, 1
sub edx, ecx
lea edi, [esp + 0x90]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [esp + ecx + 0x94]
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.004586b0
add esp, 0xc
jmp 0x407afd
mov al, byte [esp + 0x90]
test al, al
je 0x407c20
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x90]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x90]
sub edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 0x48e1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x407bea
test al, al
je 0x407be6
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x407bea
add esi, 2
add edx, 2
test al, al
jne 0x407bc2
xor eax, eax
jmp 0x407bef
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407c20
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x90]
sub edx, ecx
lea edi, [esp + 0x90]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [edx + ecx], al
jmp 0x407b85
lea eax, [esp + 0x90]
push 0x48e1a8
push eax
call fcn.00458600
add esp, 8
test eax, eax
je 0x407dce
mov byte [eax], 0
lea edi, [eax + 1]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x198]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov al, byte [esp + 0x198]
test al, al
je 0x407dce
mov al, byte [0x48e1cc]
test al, al
je 0x407dce
lea edi, [esp + 0x198]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x407dce
mov al, byte [esp + 0x198]
test al, al
je 0x407dce
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x198]
push ecx
push eax
push 0x48e1cc
call fcn.004589f0
add esp, 0xc
test eax, eax
jne 0x407d33
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, 1
sub edx, ecx
lea edi, [esp + 0x198]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48e1cc
add edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push edx
lea eax, [esp + ecx + 0x19c]
lea ecx, [esp + 0x19c]
push eax
push ecx
call fcn.004586b0
add esp, 0xc
jmp 0x407cab
mov al, byte [esp + 0x198]
test al, al
je 0x407dce
mov edi, 0x48e1cc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x198]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x198]
sub edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, 0x48e1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x407d98
test al, al
je 0x407d94
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x407d98
add esi, 2
add edx, 2
test al, al
jne 0x407d70
xor eax, eax
jmp 0x407d9d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407dce
mov edi, 0x48e1cc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x198]
sub edx, ecx
lea edi, [esp + 0x198]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [edx + ecx], al
jmp 0x407d33
mov al, byte [0x494b70]
mov edx, dword [esp + 0x70]
mov byte [esp + 0x2a0], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x2a1]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x72]
and edx, 0xffff
and ecx, 0xffff
lea eax, [esp + 0x2a0]
push ecx
push edx
push str._02d:_02d
push eax
call fcn.004585a3
add esp, 0x10
lea esi, [esp + 0x2a0]
lea eax, [esp + 0x90]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x407e4b
test cl, cl
je 0x407e47
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407e4b
add eax, 2
add esi, 2
test cl, cl
jne 0x407e23
xor eax, eax
jmp 0x407e50
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jg 0x407e93
lea esi, [esp + 0x198]
lea eax, [esp + 0x2a0]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x407e8a
test cl, cl
je 0x407e86
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407e8a
add eax, 2
add esi, 2
test cl, cl
jne 0x407e62
xor eax, eax
jmp 0x407e8f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x407edb
lea ecx, [esp + 0x17ac]
call fcn.00443420
test eax, eax
jne 0x407a55
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], 1
jmp 0x407ebd
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x18]
add ebp, 0x2a4
inc ecx
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
xor ebx, ebx
jmp 0x4076b2
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x122f8]
test eax, eax
jne 0x407eed
xor edx, edx
jmp 0x407f06
mov ecx, dword [esi + 0x122fc]
sub ecx, eax
mov eax, 0x60f25deb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jne 0x408092
mov eax, dword [esp + 0x37d0]
cmp eax, 2
je 0x407f23
cmp eax, 0x40
jne 0x407f9b
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x40809b
mov ecx, dword [esi + 0x1232c]
test ecx, ecx
jne 0x40809b
cmp eax, 2
jne 0x407f9b
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043f050
add esp, 4
test eax, eax
je 0x407f6c
push 0
lea ecx, [esp + 0x3ac]
push 0x1001
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov eax, dword [0x4975f8]
test eax, eax
jne 0x407f8a
push 0x4971f8
push esi
call fcn.0043f0f0
add esp, 8
xor eax, eax
jmp 0x4080a0
push eax
push esi
call fcn.0043f0f0
add esp, 8
xor eax, eax
jmp 0x4080a0
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043f050
add esp, 4
test eax, eax
je 0x407fc5
push 0
lea edx, [esp + 0x3ac]
push 0x1001
push edx
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40800e
lea eax, [esp + 0x10]
push str.Invalid_time.
push eax
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 2
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x408054
lea ecx, [esp + 0x10]
push str.Invalid_service.
push ecx
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 3
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
lea edx, [esp + 0x10]
push str.Invalid_user.
push edx
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 4
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
mov ecx, dword [esp + 0x37d4]
mov dword [ecx], eax
mov eax, 1
mov ecx, dword [esp + 0x37b8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x37b4
ret 0x10
cmp eax, 2
jne 0x40809b
mov eax, dword [ebp + 0x12328]
cmp eax, ebx
jne 0x4081d0
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x18], ebx
xor edi, edi
mov eax, dword [ebp + 0x122f8]
cmp eax, ebx
je 0x40809b
mov ecx, dword [ebp + 0x122fc]
sub ecx, eax
mov eax, 0x60f25deb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jae 0x40809b
mov eax, dword [ebp + 0x122f8]
mov ecx, dword [eax + edi + 0x150]
push ecx
call esi
mov edx, dword [esp + 0x37cc]
mov ebx, eax
push edx
call esi
cmp eax, ebx
ja 0x408145
mov eax, dword [ebp + 0x122f8]
mov eax, dword [eax + edi + 0x14c]
push eax
call esi
mov ecx, dword [esp + 0x37cc]
mov ebx, eax
push ecx
call esi
cmp eax, ebx
jae 0x408158
mov ecx, dword [esp + 0x18]
add edi, 0x2a4
inc ecx
xor ebx, ebx
mov dword [esp + 0x18], ecx
jmp 0x4080da
mov eax, dword [esp + 0x37d4]
mov esi, dword [esp + 0x37c8]
mov edx, dword [esp + 0x18]
push esi
mov dword [eax], edx
call fcn.0043f050
add esp, 4
test eax, eax
je 0x40818f
push 0
lea ecx, [esp + 0x3ac]
push 0x1001
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
lea edx, [esp + 0x10]
push str.Invalid_user.
push edx
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 5
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0
cmp eax, 1
jne 0x40809b
xor eax, eax
mov esi, dword [esp + 0x37cc]
mov dword [esp + 0x49], eax
lea edx, [esp + 0x14]
mov dword [esp + 0x4d], eax
or ecx, 0xffffffff
mov dword [esp + 0x51], eax
mov byte [esp + 0x48], al
lea eax, [esp + 0x28]
push edx
push eax
mov dword [esp + 0x30], ecx
mov edi, 6
push ebx
push esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x24], edi
call sub.iphlpapi.dll_SendARP
cmp eax, ebx
jne 0x408262
cmp dword [esp + 0x14], edi
jne 0x408262
xor esi, esi
xor edi, edi
xor ecx, ecx
lea edx, [esp + edi + 0x48]
mov cl, byte [esp + esi + 0x28]
push ecx
push str._02x
push edx
call fcn.004585a3
add edi, eax
mov eax, dword [esp + 0x20]
add esp, 0xc
inc esi
dec eax
cmp esi, eax
jb 0x408225
xor ecx, ecx
lea edx, [esp + edi + 0x48]
mov cl, byte [esp + esi + 0x28]
push ecx
push str._02x
push edx
call fcn.004585a3
jmp 0x408275
lea eax, [esp + 0x13ac]
lea ecx, [esp + 0x48]
push eax
push ecx
push esi
call fcn.00408a50
mov al, byte [esp + 0x54]
add esp, 0xc
test al, al
je 0x40809b
xor edi, edi
xor ebx, ebx
mov eax, dword [ebp + 0x122f8]
test eax, eax
je 0x40809b
mov ecx, dword [ebp + 0x122fc]
sub ecx, eax
mov eax, 0x60f25deb
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jae 0x40809b
mov eax, dword [ebp + 0x122f8]
lea esi, [eax + ebx + 0x138]
lea eax, [esp + 0x48]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4082ec
test cl, cl
je 0x4082e8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4082ec
add eax, 2
add esi, 2
test cl, cl
jne 0x4082c8
xor eax, eax
jmp 0x4082f1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4082fe
inc edi
add ebx, 0x2a4
jmp 0x408288
mov eax, dword [esp + 0x37d4]
mov esi, dword [esp + 0x37c8]
push esi
mov dword [eax], edi
call fcn.0043f050
add esp, 4
test eax, eax
je 0x408331
push 0
lea ecx, [esp + 0x3ac]
push 0x1001
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
lea edx, [esp + 0x24]
push str.Invalid_user.
push edx
call fcn.00408380
mov eax, dword [eax]
mov dword [esp + 0x37c8], 6
push eax
push esi
call fcn.0043f0f0
add esp, 0x10
lea ecx, [esp + 0x24]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046eab2
xor eax, eax
jmp 0x4080a0