Function at 0x40428e
Capabilities:
Create thread
Resolve function by parsing pe exports
Set socket configuration

Disassembly:
sub esp, 0x924
mov eax, dword [0x44f874]
xor eax, esp
mov dword [esp + 0x920], eax
push ebx
push ebp
mov eax, dword [esp + 0x934]
mov ecx, 0x10c
push esi
push edi
mov esi, str.__u_never_ask_for_username_n__u2_always_ask_for_username_n__fFORMAT_logging_format__see_documentation__n__l_log_to_stderr_n__lFILENAME_log_to_FILENAME_n__b_BUFSIZE__size_of_network_buffer__default_4096_for_TCP__16384_for_UDP__n__S_STACKSIZE__value_to_add_to_default_client_thread_stack_size_n__t_be_silent__do_not_log_service_start_stop__n_n__iIP_ip_address_or_internal_interface__clients_are_expected_to_connect__n__eIP_ip_address_or_external_interface__outgoing_connection_will_have_this__n__rHOST:PORT_Use_IP:port_for_connect_back_proxy_instead_of_listen_port_n__RHOST:PORT_Use_PORT_to_listen_connect_back_proxy_connection_to_pass_data_to_n__4_Use_IPv4_for_outgoing_connections_n__6_Use_IPv6_for_outgoing_connections_n__46_Prefer_IPv4_for_outgoing_connections__use_both_IPv4_and_IPv6_n__64_Prefer_IPv6_for_outgoing_connections__use_both_IPv4_and_IPv6_n__ocOPTIONS___osOPTIONS___olOPTIONS___orOPTIONS__oROPTIONS___options_for_n_to_client__oc___to_server__os___listening__ol__socket__connect_back_client_n__or__socket__connect_back_server__oR__listening_socket_n_where_possible_options_are:
mov dword [esp + 0x1c], eax
lea edi, [esp + 0x4fc]
mov dword [esp + 0x14], 0xffffffff
rep movsd dword es:[edi], dword [esi]
or eax, 0xffffffff
mov dword [esp + 0x10], 0
push 0x158
mov dword [esp + 0x1c], eax
mov ebp, 0x1388
lea eax, [esp + 0x58]
mov dword [esp + 0x40], 0
push 0
push eax
mov dword [esp + 0x38], 1
mov dword [esp + 0x4c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x58], 0
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x50], 1
call fcn.00422400
mov eax, dword [0x44f2b8]
add esp, 0xc
inc eax
cmp dword [0x45043c], 0
mov dword [esp + 0x84], eax
mov eax, dword [0x44f2a0]
mov dword [esp + 0x80], eax
mov eax, 0x41aa40
cmovne eax, dword [0x44f348]
mov dword [esp + 0x64], eax
mov eax, dword [0x44f2bc]
mov dword [esp + 0xc0], eax
mov eax, dword [0x44f358]
test eax, eax
je 0x403e0e
push eax
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x194], eax
jmp 0x403e19
mov dword [esp + 0x194], 0
mov eax, dword [fcn.00418d10]
mov dword [esp + 0x68], eax
mov eax, dword [0x44f2ac]
mov dword [esp + 0x7c], eax
mov eax, dword [0x44f28c]
push 0
mov dword [esp + 0x90], 0
mov dword [esp + 0xc0], eax
call fcn.00427644
add esp, 4
mov dword [esp + 0x1a4], eax
cmp dword [0x45043c], 0
mov dword [esp + 0x1a8], edx
je 0x403e7c
mov eax, dword [0x44f354]
test eax, eax
je 0x403e7c
push eax
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x198], eax
mov eax, dword [0x44f388]
mov dword [esp + 0xe0], eax
mov eax, dword [0x44f38c]
push 0x218
mov dword [esp + 0xe8], eax
lea eax, [esp + 0x1b0]
push 0
push eax
mov dword [esp + 0x7c], 0xffffffff
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x9c], 1
call fcn.00422400
lea eax, [esp + 0x60]
mov dword [esp + 0x1fc], 0xffffffff
mov dword [esp + 0x1c0], eax
add esp, 0xc
mov eax, dword [esp + 0x84]
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x268], eax
lea eax, [esp + 0x158]
push eax
mov dword [esp + 0x1f0], 0xffffffff
mov dword [esp + 0x1e8], 0xffffffff
mov dword [esp + 0x1ec], 0xffffffff
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
movups xmm0, xmmword [0x44f2e8]
mov eax, dword [0x44f300]
mov ebx, 2
mov dword [esp + 0x100], eax
mov eax, dword [0x44f338]
movups xmmword [esp + 0xe8], xmm0
mov dword [esp + 0x138], eax
movq xmm0, qword [0x44f2f8]
mov eax, dword [0x44f31c]
movq qword [esp + 0xf8], xmm0
movups xmm0, xmmword [0x44f320]
mov dword [esp + 0x11c], eax
mov eax, dword [0x44e194]
movups xmmword [esp + 0x120], xmm0
mov dword [esp + 0x6c], eax
movq xmm0, qword [0x44f330]
mov eax, dword [0x44e19c]
movq qword [esp + 0x130], xmm0
movups xmm0, xmmword [0x44f304]
mov dword [esp + 0x20], eax
mov eax, dword [0x44e1a0]
movups xmmword [esp + 0x104], xmm0
mov dword [esp + 0x1e0], eax
movq xmm0, qword [0x44f314]
mov dword [esp + 0x60], eax
mov eax, dword [0x44f270]
movq qword [esp + 0x114], xmm0
test eax, eax
je 0x403fff
push eax
call fcn.00402810
mov ecx, dword [0x450420]
add esp, 4
test eax, eax
mov dword [esp + 0x188], eax
cmove ecx, ebx
mov dword [0x450420], ecx
mov esi, dword [0x44f364]
test esi, esi
je 0x404072
push 0x10
call fcn.00429c81
mov edi, eax
add esp, 4
test edi, edi
je 0x404081
movups xmm0, xmmword [esi]
mov ebx, edi
movups xmmword [edi], xmm0
mov esi, dword [ebx]
test esi, esi
je 0x40403f
push 0x10
call fcn.00429c81
add esp, 4
test eax, eax
je 0x40404e
movups xmm0, xmmword [esi]
mov esi, eax
movups xmmword [eax], xmm0
mov dword [ebx], eax
mov ebx, esi
test ebx, ebx
jne 0x404021
mov dword [esp + 0x18c], edi
jmp 0x404072
mov dword [ebx], eax
mov esi, dword [edi]
push edi
call fcn.00429c66
add esp, 4
mov edi, esi
test esi, esi
jne 0x404050
mov dword [esp + 0x18c], esi
mov dword [0x450420], 2
mov eax, dword [0x44f288]
test eax, eax
jne 0x40408a
lea eax, [esp + 0x54]
jmp 0x40409d
mov dword [esp + 0x18c], edi
jmp 0x404068
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x54]
mov dword [eax + 4], ecx
mov eax, dword [0x44f288]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x938]
mov ebx, 1
mov edi, dword [sym.imp.WS2_32.dll_htons]
mov dword [0x44f288], eax
mov dword [esp + 0x30], ebx
cmp ecx, ebx
jle 0x404554
mov ebp, dword [esp + 0x1c]
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [ebp + ebx*4]
cmp byte [ecx], 0x2d
jne 0x404548
movsx eax, byte [ecx + 1]
lea edx, [ecx + 1]
add eax, 0xffffffcc
cmp eax, 0x41
ja case.0x4040f7.53
movzx eax, byte [eax + 0x405538]
jmp dword [eax*4 + 0x4054e4]
cmp dword [0x44f2a8], 0
jne 0x40410d
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x44f2a8], 1
jmp 0x40452c
mov eax, dword [esp + 0x198]
mov dword [esp + 0x64], 0x41a8c0
test eax, eax
je 0x40413c
push eax
call fcn.00429c66
mov ecx, dword [ebp + ebx*4]
add esp, 4
lea eax, [ecx + 2]
push eax
call fcn.00431b5e
mov ecx, dword [ebp + ebx*4]
add esp, 4
add ecx, 2
mov dword [esp + 0x198], eax
mov al, byte [ecx]
test al, al
je 0x40452c
cmp al, 0x40
je 0x40452c
push 0x4402bc
push ecx
call fcn.004237aa
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
je 0x40452c
mov dword [esp + 0x178], eax
jmp 0x40452c
lea eax, [esp + 0xe8]
push eax
lea eax, [ecx + 2]
push eax
push 0x2e
call fcn.00419310
add esp, 0xc
jmp 0x40452c
lea eax, [esp + 0x3c4]
mov dword [esp + 0x3dc], 0
push eax
lea eax, [ecx + 2]
xorps xmm0, xmm0
push eax
push 0x2e
movups xmmword [esp + 0x3d0], xmm0
movq qword [esp + 0x3e0], xmm0
call fcn.00419310
xor edx, edx
add esp, 0xc
test eax, eax
sete dl
mov dword [esp + 0x10], edx
test eax, eax
je 0x40452c
cmp word [esp + 0x3c4], 2
movups xmm0, xmmword [esp + 0x3c4]
mov eax, dword [esp + 0x3dc]
jne 0x404231
movups xmmword [esp + 0x120], xmm0
mov dword [esp + 0x138], eax
movq xmm0, qword [esp + 0x3d4]
movq qword [esp + 0x130], xmm0
jmp 0x40452c
movups xmmword [esp + 0x104], xmm0
mov dword [esp + 0x11c], eax
movq xmm0, qword [esp + 0x3d4]
movq qword [esp + 0x114], xmm0
jmp 0x40452c
lea eax, [esp + 0x13c]
push eax
lea eax, [ecx + 2]
push eax
push 0x2e
call fcn.00419310
add esp, 0xc
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
push eax
call edi
mov word [esp + 0xea], ax
jmp 0x40452c
push edx
call fcn.0042a87a
add esp, 4
mov dword [esp + 0xb8], eax
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
mov dword [esp + 0xdc], eax
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
mov dword [esp + 0x8c], eax
jmp 0x40452c
mov eax, dword [esp + 0x194]
test eax, eax
je 0x4042eb
push eax
call fcn.00429c66
mov ecx, dword [ebp + ebx*4]
add esp, 4
lea eax, [ecx + 2]
push eax
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x194], eax
jmp 0x40452c
mov dword [esp + 0x94], 1
jmp 0x40452c
lea eax, [ecx + 2]
mov dword [esp + 0x3c], eax
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], 1
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], 1
jmp 0x40452c
add ecx, 2
mov dword [esp + 0x90], 0
cmp byte [ecx], 0
je 0x40452c
push ecx
call fcn.0042a87a
add esp, 4
mov dword [esp + 0x90], eax
jmp 0x40452c
mov dword [esp + 0x98], 1
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
mov dword [esp + 0xbc], eax
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
inc eax
mov dword [esp + 0xc4], eax
jmp 0x40452c
lea eax, [ecx + 2]
push eax
call fcn.0042a87a
add esp, 4
inc eax
mov dword [esp + 0x88], eax
jmp 0x40452c
movsx eax, byte [ecx + 2]
add eax, 0xffffffae
cmp eax, 0x21
ja case.0x4040f7.53
movzx eax, byte [eax + 0x405594]
jmp dword [eax*4 + 0x40557c]
mov eax, dword [str.TCP_NODELAY]
lea ebx, [ecx + 3]
xor esi, esi
xor edi, edi
test eax, eax
je 0x40442d
nop dword [eax]
push eax
push ebx
call fcn.00421c10
add esp, 8
test eax, eax
je 0x404421
bts edi, esi
mov eax, dword [esi*8 + 0x44e074]
inc esi
test eax, eax
jne 0x404410
mov dword [esp + 0xcc], edi
jmp 0x404519
mov eax, dword [str.TCP_NODELAY]
lea ebx, [ecx + 3]
xor esi, esi
xor edi, edi
test eax, eax
je 0x40446d
nop dword [eax]
push eax
push ebx
call fcn.00421c10
add esp, 8
test eax, eax
je 0x404461
bts edi, esi
mov eax, dword [esi*8 + 0x44e074]
inc esi
test eax, eax
jne 0x404450
mov dword [esp + 0xc8], edi
jmp 0x404519
mov eax, dword [str.TCP_NODELAY]
lea ebx, [ecx + 3]
xor esi, esi
xor edi, edi
test eax, eax
je 0x4044ad
nop dword [eax]
push eax
push ebx
call fcn.00421c10
add esp, 8
test eax, eax
je 0x4044a1
bts edi, esi
mov eax, dword [esi*8 + 0x44e074]
inc esi
test eax, eax
jne 0x404490
mov dword [esp + 0xd0], edi
jmp 0x404519
mov eax, dword [str.TCP_NODELAY]
lea ebx, [ecx + 3]
xor esi, esi
xor edi, edi
test eax, eax
je 0x404512
push eax
push ebx
call fcn.00421c10
add esp, 8
test eax, eax
je 0x4044d7
bts edi, esi
mov eax, dword [esi*8 + 0x44e074]
inc esi
test eax, eax
jne 0x4044c6
jmp 0x404512
mov eax, dword [str.TCP_NODELAY]
lea ebx, [ecx + 3]
xor esi, esi
xor edi, edi
test eax, eax
je 0x404512
push eax
push ebx
call fcn.00421c10
add esp, 8
test eax, eax
je 0x404506
bts edi, esi
mov eax, dword [esi*8 + 0x44e074]
inc esi
test eax, eax
jne 0x4044f5
mov dword [esp + 0xd4], edi
cmp dword [esp + 0x10], 0
mov ebx, dword [esp + 0x30]
je 0x40452c
mov dword [esp + 0x10], 1
mov ecx, dword [esp + 0x938]
inc ebx
mov edi, dword [sym.imp.WS2_32.dll_htons]
mov dword [esp + 0x30], ebx
cmp ebx, ecx
jl 0x4040d0
jmp 0x40454f
mov ecx, dword [esp + 0x938]
mov ebp, 0x1388
cmp word [0x44e198], 0
je 0x4045c9
cmp dword [esp + 0x10], 0
jne 0x40456d
cmp ebx, ecx
je 0x40463f
mov eax, dword [0x44f370]
mov dword [0x450420], 1
mov dword [0x44f290], 0
test eax, eax
je 0x40458f
mov edi, dword [eax + 0xc]
jmp 0x404594
mov edi, str.3proxy_0.9.4___
mov eax, dword [esp + 0x1c]
push 0x4402a2
mov esi, dword [eax]
push esi
push dword [0x44e1a4]
push 0x4404f4
call fcn.00403b00
add esp, 4
push eax
lea eax, [esp + 0x50c]
push eax
push esi
push edi
push esi
push str._s_of__s_nUsage:__s_options_nAvailable_options_are:_n_s_n_t_s_n__pPORT___service_port_to_accept_connections_n_s_tExample:__s__i127.0.0.1_n_n_s
jmp 0x4054b3
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x1c]
jne 0x40545b
lea eax, [ebx + 3]
cmp ecx, eax
jne 0x40545b
mov eax, dword [esi + ebx*4]
cmp byte [eax], 0x2d
je 0x40545b
push eax
call fcn.0042a87a
add esp, 4
push eax
call edi
mov word [esp + 0xea], ax
test ax, ax
je 0x40545b
push dword [esi + ebx*4 + 8]
call fcn.0042a87a
add esp, 4
push eax
call edi
mov word [esp + 0x1a0], ax
test ax, ax
je 0x40545b
push dword [esi + ebx*4 + 4]
call fcn.00431b5e
add esp, 4
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x194]
test eax, eax
je 0x4046ac
cmp byte [eax], 0x2d
jne 0x4046ac
inc eax
push 0x2b
push eax
call fcn.00421ae0
mov edi, eax
add esp, 8
test edi, edi
je 0x4046ac
cmp byte [edi + 1], 0
je 0x4046ac
mov esi, dword [esp + 0x194]
mov byte [edi], 0
mov eax, dword [esp + 0x194]
inc eax
push eax
call fcn.00431b5e
mov dword [esp + 0x1a0], eax
mov al, byte [edi + 1]
mov byte [esp + 0x1a6], al
lea eax, [edi + 2]
push eax
call fcn.00431b5e
mov dword [esp + 0x19c], eax
push esi
mov byte [edi], 0x2b
call fcn.00429c66
add esp, 0xc
push 0x54
lea eax, [esp + 0x2f8]
push 0
push eax
call fcn.00422400
mov eax, dword [esp + 0x10c]
mov ebx, 2
movups xmm1, xmmword [esp + 0xf4]
add esp, 0xc
mov dword [esp + 0x2d4], eax
movq xmm0, qword [esp + 0xf8]
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0xb8]
mov word [esp + 0x2f4], bx
mov word [esp + 0x32c], bx
movq qword [esp + 0x2cc], xmm0
movq qword [esp + 0x2e8], xmm0
movups xmmword [esp + 0x2bc], xmm1
movups xmmword [esp + 0x2d8], xmm1
cmp eax, 6
je 0x404750
cmp eax, 0x40
je 0x404750
movups xmm0, xmmword [esp + 0x120]
mov eax, dword [esp + 0x138]
movups xmmword [esp + 0x310], xmm0
movq xmm0, qword [esp + 0x130]
jmp 0x404770
movups xmm0, xmmword [esp + 0x104]
mov eax, dword [esp + 0x11c]
movups xmmword [esp + 0x310], xmm0
movq xmm0, qword [esp + 0x114]
cmp word [esp + 0xe8], 0
mov dword [esp + 0x328], eax
movq qword [esp + 0x320], xmm0
jne 0x404793
mov word [esp + 0xe8], bx
cmp word [esp + 0xea], 0
jne 0x4047b4
movzx eax, word [0x44e198]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0xea], ax
mov ecx, dword [esp + 0x3c]
mov eax, 0x17
mov word [esp + 0x120], bx
mov word [esp + 0x104], ax
test ecx, ecx
je 0x4047ea
movzx eax, word [0x44e198]
push eax
lea eax, [esp + 0x1b0]
push eax
push ecx
call fcn.004196f0
add esp, 0xc
mov esi, dword [0x44f360]
xor ecx, ecx
test esi, esi
je 0x404911
mov eax, esi
mov dword [esp + 0x190], eax
mov eax, dword [eax]
inc ecx
mov dword [esp + 0x190], eax
test eax, eax
jne 0x404803
imul eax, ecx, 0x34
push eax
call fcn.00429c81
add esp, 4
mov dword [esp + 0x190], eax
test eax, eax
je 0x404911
nop dword [eax]
mov eax, dword [esi + 0xc]
test eax, eax
je 0x404907
lea ecx, [esp + 0x54]
push ecx
push dword [esi + 8]
call eax
mov edx, eax
add esp, 8
test edx, edx
je 0x404907
imul ecx, dword [esp + 0x9c], 0x34
movups xmm0, xmmword [esi]
add ecx, dword [esp + 0x190]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [ecx + 0x20], xmm0
mov eax, dword [esi + 0x30]
mov dword [ecx + 0x30], eax
imul ecx, dword [esp + 0x9c], 0x34
mov eax, dword [esp + 0x190]
mov dword [ecx + eax + 8], edx
mov eax, dword [esp + 0x9c]
test eax, eax
jle 0x4048b1
imul ecx, eax, 0x34
mov eax, dword [esp + 0x190]
add eax, ecx
mov dword [eax - 0x34], eax
mov eax, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x9c], eax
cmp dword [esi + 0x14], 0
je 0x4048c6
inc dword [esp + 0xa0]
cmp dword [esi + 0x1c], 0
je 0x4048d3
inc dword [esp + 0xa8]
cmp dword [esi + 0x18], 0
je 0x4048e0
inc dword [esp + 0xa4]
cmp dword [esi + 0x20], 0
je 0x4048ed
inc dword [esp + 0xac]
cmp dword [esi + 0x28], 0
je 0x4048fa
inc dword [esp + 0xb4]
cmp dword [esi + 0x24], 0
je 0x404907
inc dword [esp + 0xb0]
mov esi, dword [esi]
test esi, esi
jne 0x404830
cmp dword [esp + 0x24], 0
mov esi, 0x1c
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [0x44f290], 0
jne 0x404b90
cmp dword [esp + 0x70], 0xffffffff
jne 0x404a0d
cmp dword [esp + 0x20], 0
lea ecx, [esi - 5]
jne 0x404984
cmp word [esp + 0xe8], cx
mov eax, 1
mov word [esp + 0x48], ax
mov ax, word [0x44f24c]
mov word [esp + 0x4a], ax
mov eax, 2
push 6
push 1
cmove eax, ecx
push eax
call dword [0x44f1e0]
mov esi, eax
mov dword [esp + 0x14], esi
jmp 0x4049a6
cmp word [esp + 0xe8], 0x17
mov eax, 2
push 0x11
push 2
cmove eax, ecx
push eax
call dword [0x44f1e0]
mov esi, eax
mov dword [esp + 0x14], eax
cmp esi, 0xffffffff
jne 0x4049c2
push str.socket__
call fcn.004247b8
add esp, 4
mov eax, 0xfffffffe
jmp 0x4054cb
push dword [esp + 0xd0]
push esi
call fcn.00403a80
add esp, 8
lea eax, [esp + 0x44]
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push 4
lea eax, [esp + 0x30]
mov dword [esp + 0x74], esi
push eax
push 4
push 0xffff
push esi
call dword [0x44f200]
test eax, eax
je 0x404a0d
push str.setsockopt__
call fcn.004247b8
add esp, 4
cmp word [esp + 0xe8], 0x17
mov ecx, 0x1c
mov eax, 0x10
mov dword [esp + 0x28], 0x1c
cmove eax, ecx
mov esi, 0x64
push eax
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x1c]
call dword [0x44f1e8]
cmp eax, 0xffffffff
jne 0x404ac1
call ebx
push eax
call fcn.0042aa18
push eax
lea eax, [esp + 0x404]
push str.bind__:__s
push eax
call fcn.00405640
add esp, 0x10
cmp dword [esp + 0x94], 0
jne 0x404a88
lea eax, [esp + 0x3fc]
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00419c40
add esp, 8
add esi, esi
je 0x404b2a
push esi
call edi
cmp word [esp + 0xe8], 0x17
mov ecx, 0x1c
mov eax, 0x10
cmove eax, ecx
push eax
lea eax, [esp + 0xec]
push eax
push dword [esp + 0x1c]
call dword [0x44f1e8]
cmp eax, 0xffffffff
je 0x404a48
cmp dword [esp + 0x20], 0
jne 0x404b3e
mov eax, dword [esp + 0x7c]
sar eax, 4
inc eax
push eax
push dword [esp + 0x18]
call dword [0x44f1ec]
cmp eax, 0xffffffff
jne 0x404b49
call ebx
push eax
call fcn.0042aa18
push eax
lea eax, [esp + 0x404]
push str.listen__:__s
push eax
call fcn.00405640
add esp, 0x10
cmp dword [esp + 0x94], 0
jne 0x404b20
lea eax, [esp + 0x3fc]
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00419c40
add esp, 8
mov eax, 0xfffffffc
jmp 0x4054cb
push dword [esp + 0x14]
call dword [0x44f21c]
mov eax, 0xfffffffd
jmp 0x4054cb
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1e4], eax
cmp dword [esp + 0x94], 0
jne 0x404b8b
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [esp + 0x404]
push str.Accepting_connections___u__u_
push eax
call fcn.00405640
lea eax, [esp + 0x40c]
push eax
lea eax, [esp + 0x1c0]
push eax
call fcn.00419c40
add esp, 0x18
mov esi, 0x1c
cmp dword [esp + 0x40], 0
je 0x404cae
lea eax, [esp + 0x3e0]
push eax
push dword [esp + 0x3c]
push dword [esp + 0xc0]
call fcn.00419630
add esp, 0xc
mov ecx, 0x17
cmp word [esp + 0x3e0], 0x17
mov eax, 2
cmove eax, ecx
push 6
push 1
push eax
call dword [0x44f1e0]
mov dword [esp + 0x74], eax
cmp eax, 0xffffffff
jne 0x404bff
lea eax, [esp + 0x1ac]
push str.Failed_to_allocate_connect_back_socket
push eax
call fcn.00419c40
add esp, 8
mov eax, 0xfffffffa
jmp 0x4054cb
push 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], 1
push ecx
push 4
push 0xffff
push eax
call dword [0x44f200]
push dword [esp + 0xd8]
push dword [esp + 0x78]
call fcn.00403a80
add esp, 8
mov eax, 0x10
cmp word [esp + 0x3e0], 0x17
cmove eax, esi
push eax
lea eax, [esp + 0x3e4]
push eax
push dword [esp + 0x7c]
call dword [0x44f1e8]
cmp eax, 0xffffffff
jne 0x404c77
lea eax, [esp + 0x1ac]
push str.Failed_to_bind_connect_back_socket
push eax
call fcn.00419c40
add esp, 8
mov eax, 0xfffffff9
jmp 0x4054cb
mov eax, dword [esp + 0x7c]
sar eax, 4
inc eax
push eax
push dword [esp + 0x78]
call dword [0x44f1ec]
cmp eax, 0xffffffff
jne 0x404cae
lea eax, [esp + 0x1ac]
push str.Failed_to_listen_connect_back_socket
push eax
call fcn.00419c40
add esp, 8
mov eax, 0xfffffff8
jmp 0x4054cb
mov eax, dword [esp + 0x14]
mov dword [esp + 0x170], eax
mov eax, 0x300
mov word [esp + 0x174], ax
nop word [eax + eax]
mov eax, dword [0x44f2a0]
mov ecx, dword [esp + 0x80]
cmp eax, ecx
jne 0x404d41
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
cmp edx, esi
jl 0x404d41
inc ebp
cmp dword [esp + 0x94], 0
jne 0x404d2d
cmp ebp, 0x1388
jle 0x404d2d
push esi
push edx
lea eax, [esp + 0x404]
push str.Warning:_too_many_connected_clients___d__d_
push eax
call fcn.00405640
lea eax, [esp + 0x40c]
push eax
lea eax, [esp + 0x1c0]
push eax
call fcn.00419c40
add esp, 0x18
xor ebp, ebp
push 1
call edi
mov eax, dword [0x44f2a0]
mov ecx, dword [esp + 0x80]
cmp eax, ecx
je 0x404ce0
cmp dword [esp + 0x24], 0
jne 0x404dfd
cmp eax, ecx
jne 0x40528a
test dword [esp + 0x174], 0x300
je 0x404ec0
push 0x3e8
push 1
lea eax, [esp + 0x178]
push eax
call dword [0x44f204]
mov edx, eax
mov dword [esp + 0x10], edx
cmp edx, 1
jge 0x404ec9
test edx, edx
je 0x404cd0
call ebx
cmp eax, 0x2733
je 0x404cd0
call ebx
cmp eax, 0x2733
je 0x404cd0
call ebx
push eax
call ebx
push eax
call fcn.0042aa18
add esp, 4
push eax
lea eax, [esp + 0x404]
push str.poll__:__s__d
push eax
call fcn.00405640
add esp, 0x10
cmp dword [esp + 0x94], 0
jne 0x404df1
lea eax, [esp + 0x3fc]
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00419c40
add esp, 8
mov ecx, dword [esp + 0x80]
mov eax, dword [0x44f2a0]
mov edx, dword [esp + 0x10]
cmp eax, ecx
jne 0x40528a
test edx, edx
js 0x40528a
xor esi, esi
mov dword [esp + 0x10], esi
cmp dword [esp + 0x20], esi
jne 0x405075
mov dword [esp + 0x28], 0x1c
cmp dword [esp + 0x24], esi
je 0x404f0f
cmp word [esp + 0x2d8], 0x17
mov ecx, 0x17
push 6
mov eax, 2
push 1
cmove eax, ecx
push eax
call dword [0x44f1e0]
mov esi, eax
mov dword [esp + 0x18], esi
cmp esi, 0xffffffff
je 0x404ec0
push dword [esp + 0xd4]
push esi
call fcn.00403a80
lea eax, [esp + 0x2e0]
push eax
push dword [esp + 0x40]
push dword [esp + 0xc8]
call fcn.00419630
cmp word [esp + 0x2ec], 0x17
mov ecx, 0x1c
push 9
mov eax, 0x10
cmove eax, ecx
push eax
lea eax, [esp + 0x2f4]
push eax
push esi
call fcn.00419a90
add esp, 0x24
test eax, eax
je 0x404eda
push esi
call dword [0x44f21c]
or eax, 0xffffffff
mov dword [esp + 0x18], eax
push 1
call edi
jmp 0x404cd0
mov ecx, dword [esp + 0x80]
mov eax, dword [0x44f2a0]
jmp 0x404e01
push 0xea60
push 1
lea eax, [esp + 0x404]
push eax
lea eax, [esp + 0x2e4]
push eax
push esi
call fcn.00418680
add esp, 0x14
cmp eax, 1
jne 0x404eb2
cmp byte [esp + 0x3fc], 0x43
je 0x404fc9
jmp 0x404eb2
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x2dc]
push eax
push dword [esp + 0x1c]
call dword [0x44f1e4]
mov dword [esp + 0x18], eax
cmp eax, 0xffffffff
jne 0x404fb5
call ebx
add eax, 0xffffd8ec
cmp eax, 0x33
ja case.0x404f46.10005
movzx eax, byte [eax + 0x4055c4]
jmp dword [eax*4 + 0x4055b8]
push 0xa
call edi
jmp case.0x404f46.10005
mov esi, 1
mov dword [esp + 0x10], esi
inc ebp
cmp dword [esp + 0x94], 0
jne 0x404cd0
test esi, esi
jne 0x404f7b
cmp ebp, 0x1388
jle 0x404cd0
call ebx
push eax
call fcn.0042aa18
push eax
lea eax, [esp + 0x404]
push str.accept__:__s
push eax
call fcn.00405640
lea eax, [esp + 0x40c]
push eax
lea eax, [esp + 0x1c0]
push eax
call fcn.00419c40
add esp, 0x18
xor ebp, ebp
jmp 0x404cd0
push dword [esp + 0xc8]
mov esi, dword [esp + 0x1c]
push esi
call fcn.00403a80
add esp, 8
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x1c
push eax
lea eax, [esp + 0x2c0]
push eax
push esi
call dword [0x44f1f8]
test eax, eax
je 0x405032
call ebx
push eax
call fcn.0042aa18
push eax
lea eax, [esp + 0x404]
push str.getsockname__:__s
push eax
call fcn.00405640
add esp, 0x10
cmp dword [esp + 0x94], 0
jne 0x404cd0
lea eax, [esp + 0x3fc]
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00419c40
add esp, 8
jmp 0x404cd0
lea eax, [esp + 0x44]
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push 4
lea eax, [esp + 0x4c]
push eax
push 0x80
push 0xffff
push esi
call dword [0x44f200]
push 4
lea eax, [esp + 0x30]
push eax
push 0x100
push 0xffff
push esi
call dword [0x44f200]
jmp 0x405083
mov esi, dword [esp + 0x18]
xor eax, eax
mov word [esp + 0x174], ax
push 0x218
call fcn.00429c81
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4050dc
cmp dword [esp + 0x20], eax
jne 0x4050a3
push esi
call dword [0x44f21c]
cmp dword [esp + 0x94], 0
mov dword [esp + 0x240], 0x15
jne 0x4050cd
lea eax, [esp + 0x1ac]
push str.Memory_Allocation_Failed
push eax
call fcn.00419c40
add esp, 8
push 1
call edi
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x404cd0
mov ecx, 0x86
lea esi, [esp + 0x1ac]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x270]
test eax, eax
je 0x405106
push eax
call fcn.00431b5e
add esp, 4
mov dword [ebx + 0xc4], eax
push ebx
call fcn.0041aaf0
mov esi, dword [esp + 0x24]
add esp, 4
test esi, esi
jne 0x40511e
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x38], eax
lea eax, [esp + 0x54]
push ebx
push eax
call fcn.004031b0
add esp, 8
cmp eax, 1
jle 0x40514b
push ebx
call fcn.004025e0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 4
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x404cd0
lea eax, [esp + 0x158]
mov dword [ebx], 0
push eax
mov dword [ebx + 4], 0
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x40517f
mov dword [ebx], eax
mov eax, dword [esp + 0x5c]
mov dword [eax + 4], ebx
lea eax, [esp + 0x50]
mov dword [esp + 0x5c], ebx
push eax
mov eax, dword [esp + 0xc0]
push 0
push ebx
push 0x403b50
add eax, 0x4000
push eax
push 0
call fcn.0042ab7f
inc dword [esp + 0x90]
add esp, 0x18
test eax, eax
je 0x4051d3
mov ecx, dword [esp + 0x50]
push eax
mov dword [ebx + 0xa0], ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0x158]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x405231
push 0
call fcn.0042a998
push eax
lea eax, [esp + 0x404]
push str._beginthreadex__:__s
push eax
call fcn.00405640
add esp, 0x10
cmp dword [esp + 0x94], 0
jne 0x405212
lea eax, [esp + 0x3fc]
push eax
lea eax, [esp + 0x1b0]
push eax
call fcn.00419c40
add esp, 8
lea eax, [esp + 0x158]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ebx
call fcn.004025e0
add esp, 4
mov dword [esp + 0x10], 1
push 0x38
lea eax, [esp + 0x2c0]
push 0
push eax
call fcn.00422400
add esp, 0xc
test esi, esi
je 0x405254
cmp word [esp + 0x174], 0
je 0x405265
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x404cd0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax + eax]
push 1
call edi
cmp word [esp + 0x174], 0
je 0x405270
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x404cd0
cmp dword [esp + 0x94], 0
jne 0x4052a8
lea eax, [esp + 0x1ac]
push str.Exiting_thread
push eax
call dword [esp + 0x6c]
add esp, 8
mov eax, dword [esp + 0x70]
cmp eax, 0xffffffff
je 0x4052b8
push eax
call dword [0x44f21c]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], 0xffffffff
cmp eax, 0xffffffff
je 0x4052d0
push eax
call dword [0x44f21c]
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x60], 0xf
je 0x4052f2
push 0x64
call edi
cmp dword [esp + 0x5c], 0
jne 0x4052e7
mov esi, dword [esp + 0x190]
test esi, esi
je 0x405347
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x40533e
nop dword [eax + eax]
dec ecx
imul eax, ecx, 0x34
mov dword [esp + 0x9c], ecx
mov edx, dword [eax + esi + 0x30]
test edx, edx
je 0x40533a
push dword [eax + esi + 8]
call edx
mov esi, dword [esp + 0x194]
add esp, 4
mov ecx, dword [esp + 0x9c]
test ecx, ecx
jne 0x405310
push esi
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x188]
test eax, eax
je 0x40535b
push eax
call fcn.00402f40
add esp, 4
mov eax, dword [esp + 0x18c]
test eax, eax
je 0x405377
mov esi, dword [eax]
push eax
call fcn.00429c66
add esp, 4
mov eax, esi
test esi, esi
jne 0x405366
lea eax, [esp + 0x158]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x405399
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x198]
test eax, eax
je 0x4053ad
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x194]
test eax, eax
je 0x4053c1
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x19c]
test eax, eax
je 0x4053d5
push eax
call fcn.00429c66
add esp, 4
push 0x4513e0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x4053f3
mov eax, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4053ff
mov dword [eax], ecx
jmp 0x405405
mov dword [0x44f288], ecx
push 0x4513e0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x270]
test eax, eax
je 0x405424
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x405435
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x405446
push eax
call fcn.00429c66
add esp, 4
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x405457
push eax
call fcn.00423153
add esp, 4
xor eax, eax
jmp 0x4054cb
mov eax, dword [0x44f370]
mov dword [0x450420], 1
mov dword [0x44f290], 0
test eax, eax
je 0x40547d
mov edi, dword [eax + 0xc]
jmp 0x405482
mov edi, str.3proxy_0.9.4___
mov eax, dword [esp + 0x1c]
mov esi, dword [esi]
push 0x4402a2
push dword [eax]
push dword [0x44e1a4]
push 0x4404f4
call fcn.00403b00
add esp, 4
push eax
lea eax, [esp + 0x50c]
push eax
push esi
push edi
push esi
push str._s_of__s_nUsage:__s_options___e_external_ip____port_to_bind___target_hostname___target_port__nAvailable_options_are:_n_s_n_t_s_n_s_tExample:__s__d__i127.0.0.1_6666_serv.somehost.ru_6666_n_n_s
push 2
call fcn.00422fa8
add esp, 4
push eax
call fcn.004025a0
mov eax, 1
add esp, 0x28
mov ecx, dword [esp + 0x930]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00420c8f
add esp, 0x924
ret