Function at 0x4010e0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d4
mov eax, dword [0x421c24]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x194]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [ebp - 0x1c8], eax
cmp dword [ebp - 0x1c8], 0
je 0x401132
mov ecx, dword [ebp - 0x1c8]
push ecx
push str.WSAStartup_failed:__d_n
call fcn.00401990
add esp, 8
mov eax, 1
jmp 0x401902
mov byte [ebp - 0x19a], 0
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1c4], 0x1f90
mov byte [ebp - 0x19b], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x1b4], 0
mov byte [ebp - 0x199], 0
mov dword [ebp - 0x198], 0
jmp 0x4011a8
mov edx, dword [ebp - 0x198]
add edx, 1
mov dword [ebp - 0x198], edx
mov eax, dword [ebp - 0x198]
cmp eax, dword [ebp + 8]
jge 0x40171c
push 0x4214f4
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
je 0x4011f3
push str.__quiet
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
jne 0x401268
push 0x421500
push 0x421504
call fcn.004066b3
add esp, 8
mov dword [ebp - 0x1cc], eax
push 1
call fcn.00406578
add esp, 4
push eax
call fcn.0040a039
add esp, 4
push eax
mov ecx, dword [ebp - 0x1cc]
push ecx
call fcn.0040a039
add esp, 4
push eax
call fcn.0040a2fc
add esp, 8
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.0040a039
add esp, 4
push eax
mov edx, dword [ebp - 0x1cc]
push edx
call fcn.0040a039
add esp, 4
push eax
call fcn.0040a2fc
add esp, 8
jmp 0x401717
push 0x421508
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00408750
add esp, 8
test eax, eax
je 0x4012a4
push str.__username_password
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00408750
add esp, 8
test eax, eax
jne 0x4012b0
mov byte [ebp - 0x19a], 1
jmp 0x401717
push 0x421520
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00408750
add esp, 8
test eax, eax
je 0x4012ec
push str.__username
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00408750
add esp, 8
test eax, eax
jne 0x401334
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + eax*4 + 4], 0
jne 0x40131c
push str.Error:__u___username_requires_an_argument._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 4]
mov dword [ebp - 0x1c0], ecx
jmp 0x401717
push 0x42155c
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00408750
add esp, 8
test eax, eax
je 0x401370
push str.__password
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00408750
add esp, 8
test eax, eax
jne 0x4013b8
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
cmp dword [eax + edx*4 + 4], 0
jne 0x4013a0
push str.Error:__p___password_requires_an_argument._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
mov dword [ebp - 0x1bc], eax
jmp 0x401717
push 0x421598
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
je 0x4013f8
push str.__reverse
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
jne 0x4014cb
mov dword [ebp - 0x1a8], 1
jmp 0x401413
mov ecx, dword [ebp - 0x1a8]
add ecx, 1
mov dword [ebp - 0x1a8], ecx
cmp dword [ebp - 0x1a8], 3
jge 0x401453
mov edx, dword [ebp - 0x198]
add edx, dword [ebp - 0x1a8]
mov eax, dword [ebp + 0xc]
cmp dword [eax + edx*4], 0
jne 0x401451
push str.Error:__r___reverse_requires_multiple_arguments._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
jmp 0x401404
mov byte [ebp - 0x19b], 1
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 8]
push eax
call fcn.00401090
add esp, 4
movzx ecx, al
test ecx, ecx
jne 0x4014aa
push str.Error:_Invalid_port__n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 8]
push ecx
call fcn.0040870b
add esp, 4
mov dword [ebp - 0x1a0], eax
jmp 0x401717
push 0x4215f4
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00408750
add esp, 8
test eax, eax
je 0x40150b
push str.__remote_server
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00408750
add esp, 8
test eax, eax
jne 0x401604
mov dword [ebp - 0x1ac], 1
jmp 0x401526
mov edx, dword [ebp - 0x1ac]
add edx, 1
mov dword [ebp - 0x1ac], edx
cmp dword [ebp - 0x1ac], 3
jge 0x401566
mov eax, dword [ebp - 0x198]
add eax, dword [ebp - 0x1ac]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + eax*4], 0
jne 0x401564
push str.Error:__rs___remote_server_requires_multiple_arguments._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
jmp 0x401517
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4 + 4]
push ecx
call fcn.00401090
add esp, 4
movzx edx, al
test edx, edx
je 0x4015a0
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 8]
push edx
call fcn.00401090
add esp, 4
movzx eax, al
test eax, eax
jne 0x4015c0
push str.Error:_Invalid_ports_provided._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov byte [ebp - 0x199], 1
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
push eax
call fcn.0040870b
add esp, 4
mov dword [ebp - 0x1a0], eax
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 8]
push eax
call fcn.0040870b
add esp, 4
mov dword [ebp - 0x1b4], eax
jmp 0x401717
push 0x421664
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
je 0x401644
push str.__port
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
jne 0x4016cf
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
cmp dword [edx + ecx*4 + 4], 0
jne 0x401674
push str.Error:__po___port_requires_a_port._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov eax, dword [ebp - 0x198]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4 + 4]
push edx
call fcn.00401090
add esp, 4
movzx eax, al
test eax, eax
jne 0x4016b1
push str.Error:_an_invalid_port_was_provided._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4 + 4]
push eax
call fcn.0040870b
add esp, 4
mov dword [ebp - 0x1c4], eax
jmp 0x401717
push 0x4216bc
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
je 0x40170b
push str.__help
mov ecx, dword [ebp - 0x198]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00408750
add esp, 8
test eax, eax
jne 0x401717
call fcn.00401070
xor eax, eax
jmp 0x401902
jmp 0x401199
movzx ecx, byte [ebp - 0x199]
test ecx, ecx
je 0x4017c6
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1a0]
push eax
call fcn.00402d30
add esp, 8
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1b8]
mov byte [ecx + 0x1a], 1
mov edx, dword [ebp - 0x1b4]
push edx
mov eax, dword [ebp - 0x1a0]
push eax
push str.Hosting_a_reverse_server__with_a_remote_port_of__d_and_a_local_port_of__d_n
call fcn.00401990
add esp, 0xc
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.00402e20
add esp, 4
mov dword [ebp - 0x1d0], eax
cmp dword [ebp - 0x1d0], 0
je 0x4017b2
mov edx, dword [ebp - 0x1d0]
push edx
call fcn.004088a9
add esp, 4
push eax
push str.Error_starting_RevSocksServer:__s_n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 0xc
mov eax, dword [ebp - 0x1b8]
push eax
call fcn.00402f50
add esp, 4
jmp 0x401900
movzx ecx, byte [ebp - 0x19a]
test ecx, ecx
je 0x401803
cmp dword [ebp - 0x1c0], 0
je 0x4017e3
cmp dword [ebp - 0x1bc], 0
jne 0x401803
push str.Error:_One_credential_provided__but_not_the_other._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
movzx edx, word [ebp - 0x1c4]
push edx
mov eax, dword [ebp - 0x1bc]
push eax
mov ecx, dword [ebp - 0x1c0]
push ecx
call fcn.00401ab0
add esp, 0xc
mov dword [ebp - 0x1a4], eax
mov edx, dword [ebp - 0x1a4]
mov byte [edx + 0x48], 1
cmp dword [ebp - 0x1a4], 0
jne 0x40185a
push str.There_was_an_error_initializing_the_SOCKS5_proxy_server._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
movzx eax, byte [ebp - 0x19b]
test eax, eax
je 0x4018ce
cmp dword [ebp - 0x1b0], 0
je 0x401877
cmp dword [ebp - 0x1a0], 0
jne 0x401894
push str.Error:_Parameters_required_for_reverse_SOCKS5_not_given._n
push 2
call fcn.00406578
add esp, 4
push eax
call fcn.00401950
add esp, 8
or eax, 0xffffffff
jmp 0x401902
mov ecx, dword [ebp - 0x1a0]
push ecx
mov edx, dword [ebp - 0x1b0]
push edx
push str.Hosting_a_reverse_SOCKS5_proxy_server_over_to__s:_d_n
call fcn.00401990
add esp, 0xc
mov eax, dword [ebp - 0x1a0]
push eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov edx, dword [ebp - 0x1a4]
push edx
call fcn.004025c0
add esp, 0xc
jmp 0x4018f1
mov eax, dword [ebp - 0x1c4]
push eax
push str.Hosting_a_regular_SOCKS5_proxy_server_on_port__d_n
call fcn.00401990
add esp, 8
mov ecx, dword [ebp - 0x1a4]
push ecx
call fcn.004023a0
add esp, 4
mov edx, dword [ebp - 0x1a4]
push edx
call fcn.00402950
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403553
mov esp, ebp
pop ebp
ret