Function at 0x480780
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
sub esp, 0x50
mov dword [0x7bad78], 0
push ebx
push esi
push str.Opening_connection_to_SOCKS_server._n
call fcn.0044a560
add esp, 4
mov esi, 2
push 6
push 1
push esi
call dword [sym.imp.WSOCK32.dll_socket]
cmp eax, 0xffffffff
mov dword [0x7b9cf8], eax
jne 0x4807d5
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.WARNING:_NET_OpenSocks:_socket:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
mov eax, dword [0x7bad14]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.WSOCK32.dll_gethostbyname]
test eax, eax
jne 0x480807
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.WARNING:_NET_OpenSocks:_gethostbyname:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
cmp word [eax + 8], si
je 0x480820
push str.WARNING:_NET_OpenSocks:_gethostbyname:_address_type_was_not_AF_INET_n
call fcn.0044a560
add esp, 4
pop esi
pop ebx
add esp, 0x50
ret
mov word [esp + 8], si
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
mov edx, dword [0x7bad1c]
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov ax, word [edx + 0x20]
push eax
call dword [sym.imp.WSOCK32.dll_htons]
mov edx, dword [0x7b9cf8]
lea ecx, [esp + 8]
push 0x10
push ecx
push edx
mov word [esp + 0x16], ax
call dword [sym.imp.WSOCK32.dll_connect]
cmp eax, 0xffffffff
jne 0x48087e
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.NET_OpenSocks:_connect:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
mov eax, dword [0x7bad00]
mov ecx, dword [eax + 4]
cmp byte [ecx], 0
jne 0x48089d
mov edx, dword [0x7bad70]
mov eax, dword [edx + 4]
cmp byte [eax], 0
jne 0x48089d
xor ecx, ecx
jmp 0x4808a2
mov ecx, 1
test ecx, ecx
mov byte [esp + 0x18], 5
je 0x4808b7
mov byte [esp + 0x19], 2
mov eax, 4
jmp 0x4808c1
mov byte [esp + 0x19], 1
mov eax, 3
test ecx, ecx
mov byte [esp + 0x1a], 0
je 0x4808cf
mov byte [esp + 0x1a], 2
mov edx, dword [0x7b9cf8]
mov ebx, dword [sym.imp.WSOCK32.dll_send]
push 0
lea ecx, [esp + 0x1c]
push eax
push ecx
push edx
call ebx
cmp eax, 0xffffffff
jne 0x48090a
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.NET_OpenSocks:_send:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
mov ecx, dword [0x7b9cf8]
push 0
lea eax, [esp + 0x1c]
push 0x40
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
je 0x480acd
cmp eax, esi
jne 0x480b83
cmp byte [esp + 0x18], 5
jne 0x480b83
mov eax, dword [esp + 0x19]
and eax, 0xff
sub eax, 0
je 0x480961
sub eax, esi
je 0x480961
push str.NET_OpenSocks:_request_denied_n
call fcn.0044a560
add esp, 4
pop esi
pop ebx
add esp, 0x50
ret
cmp byte [esp + 0x19], 2
jne 0x480a51
mov esi, dword [0x7bad00]
push ebp
push edi
or ecx, 0xffffffff
mov edi, dword [esi + 4]
xor eax, eax
repne scasb al, byte es:[edi]
mov ebp, dword [0x7bad70]
not ecx
mov edi, dword [ebp + 4]
dec ecx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x20], 1
test edx, edx
mov eax, ecx
mov byte [esp + 0x21], dl
je 0x4809c0
mov esi, dword [esi + 4]
mov ecx, edx
mov ebx, ecx
lea edi, [esp + 0x22]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [sym.imp.WSOCK32.dll_send]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, eax
mov byte [esp + edx + 0x22], al
je 0x4809df
mov esi, dword [ebp + 4]
mov ecx, eax
mov ebp, ecx
lea edi, [esp + edx + 0x23]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x7b9cf8]
lea edx, [eax + edx + 3]
push 0
lea eax, [esp + 0x24]
push edx
push eax
push ecx
call ebx
pop edi
cmp eax, 0xffffffff
pop ebp
je 0x4808eb
mov eax, dword [0x7b9cf8]
push 0
lea edx, [esp + 0x1c]
push 0x40
push edx
push eax
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
je 0x480acd
cmp eax, 2
jne 0x480b83
cmp byte [esp + 0x18], 1
jne 0x480b83
mov al, byte [esp + 0x19]
test al, al
je 0x480a4c
push str.NET_OpenSocks:_authentication_failed_n
call fcn.0044a560
add esp, 4
pop esi
pop ebx
add esp, 0x50
ret
mov esi, 2
mov ecx, dword [esp + 0x5c]
mov byte [esp + 0x18], 5
push ecx
mov byte [esp + 0x1d], 3
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1f], 1
mov dword [esp + 0x20], 0
call dword [sym.imp.WSOCK32.dll_htons]
mov word [esp + 0x20], ax
mov eax, dword [0x7b9cf8]
push 0
lea edx, [esp + 0x1c]
push 0xa
push edx
push eax
call ebx
cmp eax, 0xffffffff
jne 0x480ab2
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.NET_OpenSocks:_send:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
mov edx, dword [0x7b9cf8]
push 0
lea ecx, [esp + 0x1c]
push 0x40
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_recv]
cmp eax, 0xffffffff
jne 0x480aec
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call fcn.0047fb80
push eax
push str.NET_OpenSocks:_recv:__s_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
cmp eax, esi
jl 0x480b83
cmp byte [esp + 0x18], 5
jne 0x480b83
mov al, byte [esp + 0x19]
test al, al
je 0x480b24
mov eax, dword [esp + 0x19]
and eax, 0xff
push eax
push str.NET_OpenSocks:_request_denied:__i_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
cmp byte [esp + 0x1b], 1
je 0x480b49
mov ecx, dword [esp + 0x1b]
and ecx, 0xff
push ecx
push str.NET_OpenSocks:_relay_address_is_not_IPV4:__i_n
call fcn.0044a560
add esp, 8
pop esi
pop ebx
add esp, 0x50
ret
mov edx, dword [esp + 0x1c]
mov ax, word [esp + 0x20]
xor ecx, ecx
mov word [0x7bad04], si
mov dword [0x7bad0c], ecx
pop esi
mov dword [0x7bad08], edx
mov word [0x7bad06], ax
mov dword [0x7bad10], ecx
mov dword [0x7bad78], 1
pop ebx
add esp, 0x50
ret
push str.NET_OpenSocks:_bad_response_n
call fcn.0044a560
add esp, 4
pop esi
pop ebx
add esp, 0x50
ret