Function at 0x406bb0
Capabilities:
Receive data
Receive data on socket
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4782ad
push eax
mov eax, 0x37a8
mov dword fs:[0], esp
call fcn.00457d20
push ebx
mov bl, byte [0x493b50]
push ebp
push esi
mov ebp, ecx
push edi
mov ecx, 0x400
xor eax, eax
lea edi, [esp + 0x3a9]
mov byte [esp + 0x3a8], bl
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x37d4]
mov dword [esp + 0x1c], ebp
mov esi, dword [eax]
cmp esi, 0xffffffff
je 0x407367
test esi, esi
jl 0x4072f5
mov eax, dword [ebp + 0x33e8]
test eax, eax
jne 0x406c1e
xor edx, edx
jmp 0x406c37
mov ecx, dword [ebp + 0x33ec]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jae 0x4072f5
mov eax, dword [ebp + 0x3414]
test eax, eax
je 0x407d78
cmp eax, 1
jne 0x407d78
mov ecx, dword [ebp + 0x33e8]
lea eax, [esi + esi*2]
shl eax, 6
mov edx, dword [eax + ecx + 0x8c]
test edx, edx
jne 0x406c74
xor eax, eax
jmp 0x407d7d
mov edx, dword [eax + ecx + 0xa4]
test edx, edx
je 0x406c86
xor eax, eax
jmp 0x407d7d
mov edx, dword [eax + ecx + 0x6c]
test edx, edx
jne 0x406c95
xor eax, eax
jmp 0x407d7d
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.00457c43
mov ecx, dword [esp + 0x37f4]
mov ebp, dword [ebp + 0x33e8]
add esp, 0x20
mov eax, dword [ecx]
lea eax, [eax + eax*2]
shl eax, 6
mov ecx, dword [eax + ebp + 0xa8]
test ecx, ecx
je 0x406d77
lea edi, [esp + 0x68]
lea esi, [eax + ebp + 0xac]
mov dl, byte [esi]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x406d67
test cl, cl
je 0x406d63
mov dl, byte [esi + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x406d67
add esi, 2
add edi, 2
test cl, cl
jne 0x406d3f
xor ecx, ecx
jmp 0x406d6c
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jge 0x406d77
xor eax, eax
jmp 0x407d7d
mov ebx, dword [esp + 0x37d0]
mov ecx, dword [eax + ebp + 0x68]
test ebx, ecx
je 0x4072fc
cmp dword [eax + ebp + 0x78], 0xffffffff
je 0x407d78
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x37d4]
mov edx, dword [esp + 0x5c]
mov esi, dword [eax + 0x33e8]
mov edi, dword [eax + 0x33f8]
mov eax, dword [ecx]
and edx, 0xffff
lea ecx, [eax + eax*2]
shl ecx, 6
mov eax, dword [ecx + esi + 0x78]
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 0x407d78
mov ecx, dword [ecx + esi + 0x78]
push 0x48d54c
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.00442a00
lea ecx, [esp + 0x17ac]
call fcn.00442ac0
test eax, eax
je 0x407291
lea ecx, [esp + 0x17ac]
call fcn.00442a60
mov bl, byte [0x493b50]
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 0x407006
mov al, byte [0x48d1cc]
test al, al
je 0x407006
mov edi, 0x48d1cc
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 0x407006
mov al, byte [esp + 0x90]
test al, al
je 0x407006
mov edi, 0x48d1cc
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 0x48d1cc
call fcn.00458090
add esp, 0xc
test eax, eax
jne 0x406f6b
mov edi, 0x48d1cc
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, 0x48d1cc
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.00457d50
add esp, 0xc
jmp 0x406ee3
mov al, byte [esp + 0x90]
test al, al
je 0x407006
mov edi, 0x48d1cc
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, 0x48d1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x406fd0
test al, al
je 0x406fcc
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x406fd0
add esi, 2
add edx, 2
test al, al
jne 0x406fa8
xor eax, eax
jmp 0x406fd5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407006
mov edi, 0x48d1cc
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 0x406f6b
lea eax, [esp + 0x90]
push 0x48d1a8
push eax
call fcn.00457ca0
add esp, 8
test eax, eax
je 0x4071b4
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 0x4071b4
mov al, byte [0x48d1cc]
test al, al
je 0x4071b4
lea edi, [esp + 0x198]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48d1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x4071b4
mov al, byte [esp + 0x198]
test al, al
je 0x4071b4
mov edi, 0x48d1cc
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 0x48d1cc
call fcn.00458090
add esp, 0xc
test eax, eax
jne 0x407119
mov edi, 0x48d1cc
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, 0x48d1cc
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.00457d50
add esp, 0xc
jmp 0x407091
mov al, byte [esp + 0x198]
test al, al
je 0x4071b4
mov edi, 0x48d1cc
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, 0x48d1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x40717e
test al, al
je 0x40717a
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x40717e
add esi, 2
add edx, 2
test al, al
jne 0x407156
xor eax, eax
jmp 0x407183
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4071b4
mov edi, 0x48d1cc
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 0x407119
mov al, byte [0x493b50]
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.00457c43
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 0x407231
test cl, cl
je 0x40722d
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407231
add eax, 2
add esi, 2
test cl, cl
jne 0x407209
xor eax, eax
jmp 0x407236
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jg 0x40727d
lea esi, [esp + 0x198]
lea eax, [esp + 0x2a0]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x407270
test cl, cl
je 0x40726c
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407270
add eax, 2
add esi, 2
test cl, cl
jne 0x407248
xor eax, eax
jmp 0x407275
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x407d78
lea ecx, [esp + 0x17ac]
call fcn.00442ac0
test eax, eax
jne 0x406e3b
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043e700
add esp, 4
test eax, eax
je 0x4072bb
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.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 0
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043e700
add esp, 4
test eax, eax
je 0x407326
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.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 1
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 0x3414]
xor ebx, ebx
cmp eax, ebx
je 0x407d78
cmp eax, 1
jne 0x407d98
mov cl, byte [0x493b50]
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 + 0x33e8]
cmp eax, ebx
je 0x407bb8
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x33ec]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jae 0x407bb8
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
mov eax, dword [ebx + 0x33e8]
mov ecx, dword [eax + ebp + 0x8c]
test ecx, ecx
je 0x407b9a
mov ecx, dword [eax + ebp + 0xa4]
test ecx, ecx
jne 0x407b9a
mov ecx, dword [eax + ebp + 0x6c]
test ecx, ecx
je 0x407b9a
xor edx, edx
mov cl, byte [0x493b50]
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.00457c43
mov edi, dword [ebx + 0x33e8]
add esp, 0x20
mov eax, dword [edi + ebp + 0xa8]
test eax, eax
je 0x407509
lea esi, [esp + 0x7c]
lea eax, [edi + ebp + 0xac]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4074fc
test cl, cl
je 0x4074f8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4074fc
add eax, 2
add esi, 2
test cl, cl
jne 0x4074d8
xor eax, eax
jmp 0x407501
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jl 0x407b9a
mov eax, dword [edi + ebp + 0x64]
test eax, eax
je 0x40755a
mov eax, dword [edi + ebp + 0x60]
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 0x407b9a
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx + 0x33e8]
mov ecx, dword [eax + ebp + 0x5c]
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 0x407b9a
jmp 0x407561
mov edi, dword [esp + 0x37cc]
mov eax, dword [ebx + 0x33e8]
mov ecx, dword [eax + ebp + 0x58]
test ecx, ecx
je 0x40763f
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x40761f
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 0x4075f5
cmp dword [esp + 0x14], esi
jne 0x4075f5
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.00457c43
mov edx, dword [esp + 0x20]
add esp, 0xc
add edi, eax
inc esi
dec edx
cmp esi, edx
jb 0x4075b8
xor eax, eax
lea ecx, [esp + edi + 0x30]
mov al, byte [esp + esi + 0x28]
push eax
push str._02x
push ecx
call fcn.00457c43
jmp 0x407608
lea edx, [esp + 0x13ac]
lea eax, [esp + 0x30]
push edx
push eax
push edi
call fcn.00408720
mov al, byte [esp + 0x3c]
add esp, 0xc
test al, al
je 0x407b9a
mov dword [esp + 0x40], 1
mov eax, dword [ebx + 0x33e8]
lea edx, [esp + 0x30]
lea ecx, [eax + ebp + 0x48]
push ecx
push edx
call fcn.0045c970
add esp, 8
test eax, eax
jne 0x407b9a
mov eax, dword [ebx + 0x33e8]
mov ecx, dword [eax + ebp + 0x64]
test ecx, ecx
jne 0x40766e
mov ecx, dword [eax + ebp + 0x58]
test ecx, ecx
jne 0x40766e
mov ecx, dword [eax + ebp + 0x44]
test ecx, ecx
je 0x407b9a
mov dword [esp + 0x44], 1
jmp 0x407b9a
mov ecx, dword [esp + 0x37d0]
mov edx, dword [eax + ebp + 0x68]
test ecx, edx
je 0x407b92
cmp dword [eax + ebp + 0x78], 0xffffffff
je 0x407bb8
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 + 0x33e8]
mov esi, dword [eax + 0x33f8]
mov eax, dword [esp + 0x20]
mov eax, dword [edx + eax + 0x78]
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 0x407bb8
mov eax, dword [esp + 0x20]
push 0x48d54c
mov eax, dword [edx + eax + 0x78]
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.00442a00
lea ecx, [esp + 0x17ac]
call fcn.00442ac0
test eax, eax
je 0x407b84
lea ecx, [esp + 0x17ac]
call fcn.00442a60
mov bl, byte [0x493b50]
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 0x4078fd
mov al, byte [0x48d1cc]
test al, al
je 0x4078fd
lea edi, [esp + 0x90]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48d1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x4078fd
mov al, byte [esp + 0x90]
test al, al
je 0x4078fd
mov edi, 0x48d1cc
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 0x48d1cc
call fcn.00458090
add esp, 0xc
test eax, eax
jne 0x407862
mov edi, 0x48d1cc
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, 0x48d1cc
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.00457d50
add esp, 0xc
jmp 0x4077da
mov al, byte [esp + 0x90]
test al, al
je 0x4078fd
mov edi, 0x48d1cc
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, 0x48d1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x4078c7
test al, al
je 0x4078c3
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x4078c7
add esi, 2
add edx, 2
test al, al
jne 0x40789f
xor eax, eax
jmp 0x4078cc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4078fd
mov edi, 0x48d1cc
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 0x407862
lea eax, [esp + 0x90]
push 0x48d1a8
push eax
call fcn.00457ca0
add esp, 8
test eax, eax
je 0x407aab
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 0x407aab
mov al, byte [0x48d1cc]
test al, al
je 0x407aab
lea edi, [esp + 0x198]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, 0x48d1cc
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
ja 0x407aab
mov al, byte [esp + 0x198]
test al, al
je 0x407aab
mov edi, 0x48d1cc
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 0x48d1cc
call fcn.00458090
add esp, 0xc
test eax, eax
jne 0x407a10
mov edi, 0x48d1cc
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, 0x48d1cc
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.00457d50
add esp, 0xc
jmp 0x407988
mov al, byte [esp + 0x198]
test al, al
je 0x407aab
mov edi, 0x48d1cc
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, 0x48d1cc
add edx, ecx
mov cl, byte [esi]
mov bl, byte [edx]
mov al, cl
cmp cl, bl
jne 0x407a75
test al, al
je 0x407a71
mov cl, byte [esi + 1]
mov bl, byte [edx + 1]
mov al, cl
cmp cl, bl
jne 0x407a75
add esi, 2
add edx, 2
test al, al
jne 0x407a4d
xor eax, eax
jmp 0x407a7a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407aab
mov edi, 0x48d1cc
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 0x407a10
mov al, byte [0x493b50]
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.00457c43
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 0x407b28
test cl, cl
je 0x407b24
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407b28
add eax, 2
add esi, 2
test cl, cl
jne 0x407b00
xor eax, eax
jmp 0x407b2d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jg 0x407b70
lea esi, [esp + 0x198]
lea eax, [esp + 0x2a0]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x407b67
test cl, cl
je 0x407b63
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x407b67
add eax, 2
add esi, 2
test cl, cl
jne 0x407b3f
xor eax, eax
jmp 0x407b6c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jle 0x407bb8
lea ecx, [esp + 0x17ac]
call fcn.00442ac0
test eax, eax
jne 0x407732
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x24], 1
jmp 0x407b9a
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x18]
add ebp, 0xc0
inc ecx
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
xor ebx, ebx
jmp 0x4073b6
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x33e8]
test eax, eax
jne 0x407bca
xor edx, edx
jmp 0x407be3
mov ecx, dword [esi + 0x33ec]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jne 0x407d6f
mov eax, dword [esp + 0x37d0]
cmp eax, 2
je 0x407c00
cmp eax, 0x40
jne 0x407c78
mov ecx, dword [esp + 0x44]
test ecx, ecx
jne 0x407d78
mov ecx, dword [esi + 0x341c]
test ecx, ecx
jne 0x407d78
cmp eax, 2
jne 0x407c78
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043e700
add esp, 4
test eax, eax
je 0x407c49
push 0
lea ecx, [esp + 0x3ac]
push 0x1001
push ecx
push esi
call dword [sym.imp.WS2_32.dll_recv]
mov eax, dword [0x4965d8]
test eax, eax
jne 0x407c67
push 0x4961d8
push esi
call fcn.0043e7a0
add esp, 8
xor eax, eax
jmp 0x407d7d
push eax
push esi
call fcn.0043e7a0
add esp, 8
xor eax, eax
jmp 0x407d7d
mov esi, dword [esp + 0x37c8]
push esi
call fcn.0043e700
add esp, 4
test eax, eax
je 0x407ca2
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 0x407ceb
lea eax, [esp + 0x10]
push str.Invalid_time.
push eax
call fcn.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 2
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x407d31
lea ecx, [esp + 0x10]
push str.Invalid_service.
push ecx
call fcn.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 3
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
lea edx, [esp + 0x10]
push str.Invalid_user.
push edx
call fcn.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 4
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
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 0x407d78
mov eax, dword [ebp + 0x3418]
cmp eax, ebx
jne 0x407ea7
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x18], ebx
xor edi, edi
mov eax, dword [ebp + 0x33e8]
cmp eax, ebx
je 0x407d78
mov ecx, dword [ebp + 0x33ec]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x18]
cmp eax, edx
jae 0x407d78
mov eax, dword [ebp + 0x33e8]
mov ecx, dword [eax + edi + 0x60]
push ecx
call esi
mov edx, dword [esp + 0x37cc]
mov ebx, eax
push edx
call esi
cmp eax, ebx
ja 0x407e1c
mov eax, dword [ebp + 0x33e8]
mov eax, dword [eax + edi + 0x5c]
push eax
call esi
mov ecx, dword [esp + 0x37cc]
mov ebx, eax
push ecx
call esi
cmp eax, ebx
jae 0x407e2f
mov ecx, dword [esp + 0x18]
add edi, 0xc0
inc ecx
xor ebx, ebx
mov dword [esp + 0x18], ecx
jmp 0x407db7
mov eax, dword [esp + 0x37d4]
mov esi, dword [esp + 0x37c8]
mov edx, dword [esp + 0x18]
push esi
mov dword [eax], edx
call fcn.0043e700
add esp, 4
test eax, eax
je 0x407e66
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.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 5
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x10]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d
cmp eax, 1
jne 0x407d78
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 0x407f39
cmp dword [esp + 0x14], edi
jne 0x407f39
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.00457c43
add edi, eax
mov eax, dword [esp + 0x20]
add esp, 0xc
inc esi
dec eax
cmp esi, eax
jb 0x407efc
xor ecx, ecx
lea edx, [esp + edi + 0x48]
mov cl, byte [esp + esi + 0x28]
push ecx
push str._02x
push edx
call fcn.00457c43
jmp 0x407f4c
lea eax, [esp + 0x13ac]
lea ecx, [esp + 0x48]
push eax
push ecx
push esi
call fcn.00408720
mov al, byte [esp + 0x54]
add esp, 0xc
test al, al
je 0x407d78
xor edi, edi
xor ebx, ebx
mov eax, dword [ebp + 0x33e8]
test eax, eax
je 0x407d78
mov ecx, dword [ebp + 0x33ec]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jae 0x407d78
mov eax, dword [ebp + 0x33e8]
lea esi, [eax + ebx + 0x48]
lea eax, [esp + 0x48]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407fc0
test cl, cl
je 0x407fbc
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407fc0
add eax, 2
add esi, 2
test cl, cl
jne 0x407f9c
xor eax, eax
jmp 0x407fc5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x407fd2
inc edi
add ebx, 0xc0
jmp 0x407f5f
mov eax, dword [esp + 0x37d4]
mov esi, dword [esp + 0x37c8]
push esi
mov dword [eax], edi
call fcn.0043e700
add esp, 4
test eax, eax
je 0x408005
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.00408050
mov eax, dword [eax]
mov dword [esp + 0x37c8], 6
push eax
push esi
call fcn.0043e7a0
add esp, 0x10
lea ecx, [esp + 0x24]
mov dword [esp + 0x37c0], 0xffffffff
call fcn.0046e162
xor eax, eax
jmp 0x407d7d