Function at 0x46adb8
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov edi, 0x50f43a
test ebx, ebx
jne 0x46add4
xor eax, eax
jmp 0x46b2a1
cmp dword [ebx + 0x420], 2
jne 0x46b0c7
mov edx, dword [ebx + 0x424]
sub edx, 0x82
je 0x46adf7
dec edx
je 0x46ae6a
jmp 0x46b0b8
mov dword [ebx + 0x424], 0x83
lea ecx, [ebx + 0x230]
push ecx
lea eax, [ebx + 0x130]
push eax
mov edx, dword [0x4fac34]
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add edx, 0x4fab6c
push edx
push 0x4f6a38
push edi
call sub.USER32.dll_wsprintfA
add esp, 0x14
push 0
push edi
call fcn.00401318
pop ecx
push eax
push edi
mov ecx, dword [ebx + 0x438]
push ecx
call sub.WSOCK32.dll_send
push 0x21
push 0x40f
mov eax, dword [0x4fd9ec]
push eax
mov edx, dword [ebx + 0x438]
push edx
call sub.WSOCK32.dll_WSAAsyncSelect
xor eax, eax
jmp 0x46b2a1
push 0
push 0
mov edx, dword [0x4fd9ec]
push edx
mov ecx, dword [ebx + 0x438]
push ecx
call sub.WSOCK32.dll_WSAAsyncSelect
push 0
push 0x1000
push edi
mov eax, dword [ebx + 0x438]
push eax
call sub.WSOCK32.dll_recv
mov esi, eax
test esi, esi
jle 0x46b0b8
mov byte [edi + esi], 0
push edi
call fcn.004a9028
test eax, eax
je 0x46b0b8
xor esi, esi
lea eax, [ebp - 0x14]
xor edx, edx
mov dword [eax], edx
inc esi
add eax, 4
cmp esi, 4
jl 0x46aeb6
push 0x4f6a47
push edi
call fcn.0040169c
add esp, 8
xor ecx, ecx
mov esi, ecx
mov dword [ebp + ecx*4 - 0x14], eax
jmp 0x46aee0
cmp esi, 3
jge 0x46aef8
push 0x4f6a4a
push 0
call fcn.0040169c
add esp, 8
inc esi
mov dword [ebp + esi*4 - 0x14], eax
test eax, eax
jne 0x46aedb
cmp esi, 2
jl 0x46b0b8
mov edx, dword [ebp - 0x10]
push edx
call fcn.004a9084
test eax, eax
je 0x46b0b8
mov eax, dword [ebp - 0x14]
push eax
call fcn.00409a14
pop ecx
mov esi, eax
cmp esi, 0x83
je 0x46af8f
mov esi, dword [0x4f2764]
test esi, esi
je 0x46af66
cmp dword [esi + 0x538], 0
je 0x46af5c
cmp dword [esi + 0x51c], 3
jne 0x46af5c
lea eax, [ebx + 0xcc]
push eax
lea edx, [esi + 0x4b8]
push edx
call fcn.004014a8
add esp, 8
test eax, eax
je 0x46af66
mov esi, dword [esi + 0x870]
test esi, esi
jne 0x46af30
test esi, esi
je 0x46b0b8
mov ecx, dword [0x4f29d4]
push ecx
push 0
push 0xb61
call fcn.0041f178
push eax
mov eax, dword [esi]
push eax
call fcn.004bc548
jmp 0x46b0b8
push 0xa
lea edx, [ebp - 4]
push edx
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0040af3c
add esp, 0xc
mov dword [ebx + 0x414], eax
cmp dword [0x515ee8], 0
jne 0x46afd0
jmp 0x46afb8
mov eax, dword [ebp - 4]
mov byte [eax], 0x5f
push 0x20
lea edx, [ebx + 0x230]
push edx
call fcn.00401278
add esp, 8
mov dword [ebp - 4], eax
test eax, eax
jne 0x46afb2
push 0
push 0
lea edx, [ebx + 0x130]
push edx
lea esi, [ebx + 0x230]
push esi
call fcn.004626c4
push esi
call fcn.0041f478
test eax, eax
jne 0x46b0b8
mov eax, dword [0x4f4750]
mov dword [0x4fdb80], eax
cmp dword [0x4f4fd8], 0
je 0x46b01e
push 0x453e30
push 0x81
mov edx, dword [0x4fd9ec]
push edx
call fcn.00451600
push ebx
call fcn.0046a228
test eax, eax
je 0x46b0b8
mov ecx, dword [0x4f4f3c]
mov dword [ebx + 0x418], ecx
xor eax, eax
mov dword [0x4f4f3c], eax
push 0
call fcn.0040ef0c
pop ecx
mov dword [ebx + 0x434], eax
push esi
lea edx, [ebx + 4]
push edx
push 0x4f6a4d
push edi
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push 2
push 3
push edi
call fcn.004ee374
mov esi, eax
mov dword [ebx], esi
test esi, esi
je 0x46b0b8
mov eax, dword [ebx + 0x418]
push eax
mov edx, dword [0x4fac34]
shl edx, 2
lea edx, [edx + edx*4]
lea edx, [edx + edx*4]
add edx, 0x4fab6c
push edx
push 0x4f6a58
push edi
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push edi
call fcn.00401318
pop ecx
push eax
push edi
mov ecx, dword [ebx + 0x438]
push ecx
call sub.WSOCK32.dll_send
jmp 0x46b0c7
push 0
push ebx
call fcn.00469ccc
xor eax, eax
jmp 0x46b2a1
xor edx, edx
mov dword [ebx + 0x408], edx
xor ecx, ecx
mov dword [ebx + 0x410], ecx
push 0
call fcn.0040ef0c
pop ecx
mov esi, eax
mov dword [ebx + 0x42c], esi
mov dword [ebx + 0x430], esi
mov dword [ebx + 0x3fc], 4
lea eax, [ebx + 0x130]
push edi
mov esi, edi
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
push 2
push edi
call fcn.0041f620
test eax, eax
jne 0x46b16d
push 0
push 0
push edi
push 0x4f6a65
call fcn.004626c4
push 2
push edi
call fcn.0041f620
test eax, eax
jne 0x46b16d
push edi
mov esi, edi
mov edi, 0x4f7cec
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
cmp byte [edi], 0
je 0x46b18e
push edi
call fcn.00401318
pop ecx
cmp byte [edi + eax - 1], 0x5c
je 0x46b18e
push 0x4f6a69
push edi
call fcn.0040123c
add esp, 8
lea eax, [ebx + 0x130]
push edi
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
lea eax, [ebx + 0x230]
push eax
push edi
call fcn.0040123c
add esp, 8
cmp dword [ebx + 0x418], 0
jbe 0x46b217
push 0x180
push 0
push 0x8901
push edi
call fcn.00406b7c
add esp, 0x10
mov dword [ebx + 0x3f8], eax
test eax, eax
jge 0x46b209
push 1
push ebx
push 0
push 0xb62
call fcn.0041f178
push eax
call fcn.0046a8f0
xor eax, eax
jmp 0x46b2a1
mov edx, dword [ebx + 0x418]
mov dword [ebx + 0x408], edx
jmp 0x46b24f
push 0x180
push 0
push 0x8301
push edi
call fcn.00406b7c
add esp, 0x10
mov dword [ebx + 0x3f8], eax
test eax, eax
jge 0x46b24f
push 1
push ebx
push 0
push 0xb62
call fcn.0041f178
push eax
call fcn.0046a8f0
xor eax, eax
jmp 0x46b2a1
push 0
push 0xb63
call fcn.0041f178
push eax
push 1
push 1
push 1
push 1
push ebx
call fcn.004e2c0c
push 0
push 0xb64
call fcn.0041f178
push eax
push 0
push 0
push 0
push 0
push ebx
call fcn.004e2c0c
push 0x21
push 0x411
mov edx, dword [0x4fd9ec]
push edx
mov ecx, dword [ebx + 0x438]
push ecx
call sub.WSOCK32.dll_WSAAsyncSelect
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4