Function at 0x18001a090
Capabilities:
Create thread
Set socket configuration

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x910]
sub rsp, 0xa10
mov rax, qword [0x180064c28]
xor rax, rsp
mov qword [rbp + 0x900], rax
xor esi, esi
mov qword [rbp - 0x78], 0xffffffffffffffff
mov edi, 1
mov qword [rbp - 0x68], 0xffffffffffffffff
mov r14, rdx
mov dword [rsp + 0x54], esi
mov r15d, ecx
mov dword [rsp + 0x60], edi
lea edx, [rsi + 8]
mov dword [rsp + 0x64], esi
mov r12d, esi
mov dword [rsp + 0x50], esi
mov qword [rsp + 0x78], rsi
lea rcx, [rbp + 0x4c0]
mov qword [rbp - 0x80], rsi
lea rax, 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 qword [rbp - 0x70], rsi
mov r13d, 0x1388
nop dword [rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, rdi
jne 0x18001a120
movups xmm0, xmmword [rax]
mov r8d, 0x180
mov dword [rsp + 0x68], edi
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movzx eax, byte [rax + 0x30]
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx + 0x20], xmm0
mov byte [rcx + 0x30], al
lea rcx, [rbp - 0x60]
call fcn.180027a80
mov eax, dword [0x1800648f4]
mov rcx, qword [0x180064988]
inc eax
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov dword [rbp - 0xc], eax
mov eax, dword [0x1800648dc]
mov dword [rbp - 0x10], eax
lea rax, [sym.ProxyProtocol.dll_lognone]
cmovne rax, qword [sym.ProxyProtocol.dll_lognone]
mov qword [rbp - 0x40], rax
mov eax, dword [0x1800648f8]
mov dword [rbp + 0x30], eax
test rcx, rcx
je 0x18001a1f2
call fcn.180033cd0
mov qword [rbp + 0xf8], rax
jmp 0x18001a1f9
mov qword [rbp + 0xf8], rsi
mov rax, qword [sym.ProxyProtocol.dll_doconnect]
xor ecx, ecx
mov qword [rbp - 0x38], rax
mov eax, dword [0x1800648e8]
mov dword [rbp - 0x14], eax
mov eax, dword [0x1800648c8]
mov dword [rbp + 0x2c], eax
mov dword [rbp - 4], esi
call fcn.180035b5c
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov qword [rbp + 0x118], rax
je 0x18001a247
mov rcx, qword [0x180064980]
test rcx, rcx
je 0x18001a247
call fcn.180033cd0
mov qword [rbp + 0x100], rax
mov eax, dword [0x1800649d0]
lea rcx, [rbp + 0x120]
mov dword [rbp + 0x50], eax
xor edx, edx
mov eax, dword [0x1800649d4]
mov r8d, 0x290
mov dword [rbp + 0x54], eax
mov qword [rbp - 0x28], 0xffffffffffffffff
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp], edi
call fcn.180027a80
mov ebx, 2
mov qword [rbp + 0x1a8], 0xffffffffffffffff
lea rax, [rbp - 0x60]
mov qword [rbp + 0x1a0], 0xffffffffffffffff
mov qword [rbp + 0x130], rax
lea rcx, [rbp + 0x88]
mov eax, dword [rbp - 0xc]
mov dword [rbp + 0x228], eax
mov eax, dword [rbp - 0x10]
mov dword [rbp + 0x224], eax
mov qword [rbp + 0x190], 0xffffffffffffffff
mov qword [rbp + 0x198], 0xffffffffffffffff
mov word [rbp + 0x298], bx
mov word [rbp + 0x2a8], bx
mov word [rbp + 0x2c8], bx
mov word [rbp + 0x2b8], bx
mov word [rbp + 0x2d8], bx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov rax, qword [sym.ProxyProtocol.dll_childdef]
movups xmm0, xmmword [reloc.WS2_32.dll_bind]
mov rcx, qword [0x180064890]
mov qword [rbp - 0x30], rax
mov eax, dword [0x18006480c]
mov dword [rsp + 0x58], eax
mov eax, dword [0x180064810]
mov dword [rbp + 0x188], eax
mov dword [rbp - 0x48], eax
movups xmm1, xmmword [reloc.WS2_32.dll_bind]
movups xmmword [rbp + 0x58], xmm0
movups xmmword [rbp + 0x68], xmm1
test rcx, rcx
je 0x18001a362
call sym.ProxyProtocol.dll_copyacl
mov ecx, dword [sym.ProxyProtocol.dll_haveerror]
test rax, rax
mov qword [rbp + 0xe0], rax
cmove ecx, ebx
mov dword [sym.ProxyProtocol.dll_haveerror], ecx
mov rbx, qword [0x1800649a0]
test rbx, rbx
je 0x18001a407
mov ecx, 0x20
call fcn.18002b164
mov rdi, rax
test rax, rax
je 0x18001a392
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov rsi, rax
test rax, rax
je 0x18001a3ec
nop word [rax + rax]
mov rbx, qword [rsi]
test rbx, rbx
je 0x18001a3ec
mov ecx, 0x20
call fcn.18002b164
test rax, rax
je 0x18001a3cd
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rsi], rax
mov rsi, rax
jmp 0x18001a3a0
mov qword [rsi], rax
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.18002b150
mov rdi, rbx
test rbx, rbx
jne 0x18001a3d0
mov qword [rbp + 0xe8], r12
jmp 0x18001a3f8
mov qword [rbp + 0xe8], rdi
test rdi, rdi
jne 0x18001a402
mov dword [sym.ProxyProtocol.dll_haveerror], 2
mov edi, 1
mov rax, qword [0x1800648c0]
test rax, rax
jne 0x18001a420
lea rax, [rbp - 0x60]
mov qword [0x1800648c0], rax
jmp 0x18001a433
lea rcx, [rbp - 0x60]
mov qword [rbp - 0x60], rax
mov qword [rax + 8], rcx
mov qword [0x1800648c0], rcx
mov esi, dword [rsp + 0x54]
cmp r15d, 1
jle 0x18001a6f2
lea rbx, [r14 + 8]
lea r9, [0x180000000]
lea r10, [sym.ProxyProtocol.dll_logstdout]
mov rdx, qword [rbx]
cmp byte [rdx], 0x2d
jne 0x18001a700
movsx eax, byte [rdx + 1]
add eax, 0xffffffcc
cmp eax, 0x41
ja case.0x18001a485.72
cdqe
movzx eax, byte [r9 + rax + 0x1b66c]
mov ecx, dword [r9 + rax*4 + 0x1b618]
add rcx, r9
jmp rcx
cmp dword [0x1800648e4], 0
jne 0x18001a496
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x1800648e4], 1
jmp 0x18001a6d3
mov rcx, qword [rbp + 0x100]
mov qword [rbp - 0x40], r10
test rcx, rcx
je 0x18001a4ba
call fcn.18002b150
mov rcx, qword [rbx]
add rcx, 2
call fcn.180033cd0
mov rcx, qword [rbx]
add rcx, 2
mov qword [rbp + 0x100], rax
test byte [rcx], 0xbf
je 0x18001a6d3
lea rdx, [0x180051a74]
call fcn.180035e74
mov qword [rbp - 0x70], rax
test rax, rax
je 0x18001a6d3
mov qword [rbp + 0xc0], rax
jmp 0x18001a6d3
add rdx, 2
lea r8, [rbp + 0x58]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001a6d3
add rdx, 2
lea r8, [rbp + 0x68]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
xor ecx, ecx
test eax, eax
sete cl
mov dword [rsp + 0x54], ecx
jmp 0x18001a6cf
add rdx, 2
lea r8, [rbp + 0x78]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
jmp 0x18001a6d3
lea rcx, [rdx + 1]
call fcn.180035aac
mov dword [rbp + 0x28], eax
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
mov dword [rbp + 0x4c], eax
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
mov dword [rbp - 4], eax
jmp 0x18001a6d3
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001a5b0
call fcn.18002b150
mov rcx, qword [rbx]
add rcx, 2
call fcn.180033cd0
mov qword [rbp + 0xf8], rax
jmp 0x18001a6d3
mov dword [rbp + 4], 1
jmp 0x18001a6d3
lea r12, [rdx + 2]
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180033cd0
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], 1
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180033cd0
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x64], 1
jmp 0x18001a6d3
lea rcx, [rdx + 2]
mov dword [rbp], 0
cmp byte [rcx], 0
je 0x18001a6d3
call fcn.180035aac
mov dword [rbp], eax
jmp 0x18001a6d3
mov dword [rbp + 8], 1
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
mov dword [rbp + 0x2c], eax
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
inc eax
mov dword [rbp + 0x34], eax
jmp 0x18001a6d3
lea rcx, [rdx + 2]
call fcn.180035aac
inc eax
mov dword [rbp - 8], eax
jmp 0x18001a6d3
movsx ecx, byte [rdx + 2]
sub ecx, 0x52
je 0x18001a6b7
sub ecx, 0x11
je 0x18001a6a9
sub ecx, 9
je 0x18001a69b
sub ecx, 6
je 0x18001a6b7
cmp ecx, 1
jne case.0x18001a485.72
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x3c], eax
jmp 0x18001a6c3
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x40], eax
jmp 0x18001a6c3
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x38], eax
jmp 0x18001a6c3
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x44], eax
test esi, esi
je 0x18001a6d3
mov dword [rsp + 0x54], 1
mov esi, dword [rsp + 0x54]
inc edi
lea r9, [0x180000000]
add rbx, 8
lea r10, [sym.ProxyProtocol.dll_logstdout]
cmp edi, r15d
jl 0x18001a453
jmp 0x18001a700
movdqu xmm0, xmmword [rbp + 0x58]
pextrw eax, xmm0, 1
mov word [rbp + 0x5a], ax
cmp word [0x180064808], 0
je 0x18001a7a7
test esi, esi
jne 0x18001a71b
cmp edi, r15d
je 0x18001a818
mov rsi, qword [0x1800649b8]
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
mov dword [0x1800648cc], 0
test rsi, rsi
je 0x18001a744
mov rsi, qword [rsi + 0x18]
jmp 0x18001a74b
lea rsi, str.3proxy_0.9.3___
mov rdi, qword [r14]
lea rcx, [0x180051a78]
call sym.ProxyProtocol.dll_printopts
mov ecx, 2
mov rbx, rax
call fcn.180035d30
mov rcx, rax
lea rdx, [rbp + 0x4c0]
lea rax, [0x18004d577]
mov qword [rsp + 0x48], rax
mov rax, qword [r14]
mov qword [rsp + 0x40], rax
mov rax, qword [0x180064818]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rdx
lea rdx, 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 0x18001b5d4
test esi, esi
jne 0x18001b54f
lea eax, [rdi + 3]
cmp r15d, eax
jne 0x18001b54f
movsxd rbx, edi
mov rcx, qword [r14 + rbx*8]
cmp byte [rcx], 0x2d
je 0x18001b54f
call fcn.180035aac
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
test ax, ax
je 0x18001b54f
mov rcx, qword [r14 + rbx*8 + 0x10]
call fcn.180035aac
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x110], ax
test ax, ax
je 0x18001b54f
mov rcx, qword [r14 + rbx*8 + 8]
call fcn.180033cd0
mov qword [rbp + 0xc8], rax
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001a889
cmp byte [rcx], 0x2d
jne 0x18001a889
inc rcx
mov edx, 0x2b
call fcn.180028598
mov rdi, rax
test rax, rax
je 0x18001a889
cmp byte [rax + 1], 0
je 0x18001a889
mov rbx, qword [rbp + 0xf8]
mov byte [rax], 0
mov rcx, qword [rbp + 0xf8]
inc rcx
call fcn.180033cd0
mov qword [rbp + 0x108], rax
lea rcx, [rdi + 2]
movzx eax, byte [rdi + 1]
mov byte [rbp + 0x112], al
call fcn.180033cd0
mov qword [rbp + 0xf8], rax
mov rcx, rbx
mov byte [rdi], 0x2b
call fcn.18002b150
movups xmm1, xmmword [rbp + 0x58]
mov esi, 2
xorps xmm0, xmm0
movups xmmword [rbp + 0x2b8], xmm0
mov word [rbp + 0x2b8], si
movups xmmword [rbp + 0x2d8], xmm0
mov word [rbp + 0x2d8], si
movups xmm0, xmmword [rbp + 0x68]
movd eax, xmm1
movups xmmword [rbp + 0x298], xmm1
movups xmmword [rbp + 0x2a8], xmm1
movups xmmword [rbp + 0x2c8], xmm0
test ax, ax
jne 0x18001a8d7
mov word [rbp + 0x58], si
cmp word [rbp + 0x5a], 0
jne 0x18001a8ef
movzx ecx, word [0x180064808]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
mov word [rbp + 0x68], si
test r12, r12
je 0x18001a90f
movzx r8d, word [0x180064808]
lea rdx, [rbp + 0x120]
mov rcx, r12
call sym.ProxyProtocol.dll_parsehostname
mov rbx, qword [0x180064998]
xor edi, edi
mov edx, edi
test rbx, rbx
je 0x18001aa53
mov rcx, rbx
mov qword [rbp + 0xf0], rbx
nop dword [rax]
mov rax, qword [rcx]
inc edx
mov qword [rbp + 0xf0], rax
mov rcx, rax
test rax, rax
jne 0x18001a930
movsxd rax, edx
imul rcx, rax, 0x68
call fcn.18002b164
mov qword [rbp + 0xf0], rax
test rax, rax
je 0x18001aa53
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x18001aa47
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp - 0x60]
call rax
mov rdx, rax
test rax, rax
je 0x18001aa47
movsxd rax, dword [rbp + 0xc]
movups xmm0, xmmword [rbx]
imul rcx, rax, 0x68
mov rax, qword [rbp + 0xf0]
movups xmmword [rcx + rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rcx + rax + 0x10], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rcx + rax + 0x20], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rcx + rax + 0x30], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rcx + rax + 0x40], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rcx + rax + 0x50], xmm1
movsd xmm0, qword [rbx + 0x60]
movsd qword [rcx + rax + 0x60], xmm0
movsxd rax, dword [rbp + 0xc]
imul rcx, rax, 0x68
mov rax, qword [rbp + 0xf0]
mov qword [rcx + rax + 0x10], rdx
movsxd rcx, dword [rbp + 0xc]
test ecx, ecx
jle 0x18001aa0c
mov rdx, qword [rbp + 0xf0]
lea eax, [rcx - 1]
imul r8, rcx, 0x68
movsxd rcx, eax
add r8, rdx
imul rax, rcx, 0x68
mov qword [rax + rdx], r8
mov ecx, dword [rbp + 0xc]
inc ecx
mov dword [rbp + 0xc], ecx
cmp qword [rbx + 0x28], rdi
je 0x18001aa1a
inc dword [rbp + 0x10]
cmp qword [rbx + 0x38], rdi
je 0x18001aa23
inc dword [rbp + 0x18]
cmp qword [rbx + 0x30], rdi
je 0x18001aa2c
inc dword [rbp + 0x14]
cmp qword [rbx + 0x40], rdi
je 0x18001aa35
inc dword [rbp + 0x1c]
cmp qword [rbx + 0x50], rdi
je 0x18001aa3e
inc dword [rbp + 0x24]
cmp qword [rbx + 0x48], rdi
je 0x18001aa47
inc dword [rbp + 0x20]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18001a960
mov ebx, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x58]
mov dword [0x1800648cc], edi
test ebx, ebx
jne 0x18001acb7
cmp qword [rbp - 0x28], 0xffffffffffffffff
jne 0x18001ab1b
test r15d, r15d
jne 0x18001aa98
movzx eax, word [0x18006486c]
lea r8d, [rbx + 6]
mov ecx, 1
mov word [rsp + 0x6e], ax
mov word [rsp + 0x6c], cx
mov edx, ecx
jmp 0x18001aaa0
mov r8d, reloc.WS2_32.dll_recvfrom
mov edx, esi
mov ecx, esi
call qword [sym.ProxyProtocol.dll_so]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x18001aac6
lea rcx, str.socket__
call fcn.180035fbc
lea eax, [r14 - 1]
jmp 0x18001b5e7
mov edx, dword [rbp + 0x40]
mov rcx, r14
call sym.ProxyProtocol.dll_setopts
lea r8, [rsp + 0x68]
mov edx, 0x8004667e
mov rcx, r14
call qword [sym.imp.WS2_32.dll_ioctlsocket]
lea r9, [rsp + 0x60]
mov qword [rbp - 0x28], r14
mov edx, 0xffff
mov dword [rsp + 0x20], 4
mov r8d, 4
mov rcx, r14
call qword [0x180064a40]
test eax, eax
je 0x18001ab1f
lea rcx, str.setsockopt__
call fcn.180035fbc
jmp 0x18001ab1f
mov r14, qword [rbp - 0x78]
mov ebx, 0x64
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x58]
mov rcx, r14
lea r8d, [rbx - 0x54]
call qword [0x180064a10]
cmp eax, 0xffffffff
jne 0x18001aba5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003616c
mov r8, rax
lea rdx, str.bind__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001ab7d
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
add ebx, ebx
je 0x18001ac05
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x58]
mov rcx, r14
call qword [0x180064a10]
cmp eax, 0xffffffff
je 0x18001ab42
test r15d, r15d
jne 0x18001ac18
mov edx, dword [rbp - 0x14]
mov rcx, r14
sar edx, 4
inc edx
call qword [0x180064a18]
cmp eax, 0xffffffff
jne 0x18001ac1f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003616c
mov r8, rax
lea rdx, str.listen__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001abfb
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffffc
jmp 0x18001b5e7
mov rcx, r14
call qword [0x180064a78]
mov eax, 0xfffffffd
jmp 0x18001b5e7
mov qword [rbp + 0x190], r14
cmp dword [rbp + 4], edi
jne 0x18001ac5e
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov r9d, ebx
lea rdx, str.Accepting_connections___u__u_
mov r8d, eax
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov ebx, dword [rsp + 0x50]
cmp dword [rsp + 0x64], edi
je 0x18001ad5b
mov rdx, qword [rbp - 0x80]
lea r8, [rbp + 0x3b0]
mov ecx, dword [rbp + 0x28]
call sym.ProxyProtocol.dll_parsehost
mov edi, 1
mov ecx, esi
mov edx, edi
lea r8d, [rdi + 5]
call qword [sym.ProxyProtocol.dll_so]
mov qword [rbp - 0x20], rax
cmp rax, 0xffffffffffffffff
jne 0x18001acbd
lea rdx, str.Failed_to_allocate_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
lea eax, [rdi - 7]
jmp 0x18001b5e7
mov r14, qword [rbp - 0x78]
jmp 0x18001ac62
lea r9, [rsp + 0x60]
mov dword [rsp + 0x60], edi
mov edx, 0xffff
mov dword [rsp + 0x20], 4
mov r8d, 4
mov rcx, rax
call qword [0x180064a40]
mov edx, dword [rbp + 0x48]
mov rcx, qword [rbp - 0x20]
call sym.ProxyProtocol.dll_setopts
mov rcx, qword [rbp - 0x20]
lea rdx, [rbp + 0x3b0]
mov r8d, reloc.WS2_32.dll_recv
call qword [0x180064a10]
cmp eax, 0xffffffff
jne 0x18001ad27
lea rdx, str.Failed_to_bind_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff9
jmp 0x18001b5e7
mov edx, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x20]
sar edx, 4
inc edx
call qword [0x180064a18]
cmp eax, 0xffffffff
jne 0x18001ad5b
lea rdx, str.Failed_to_listen_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff8
jmp 0x18001b5e7
mov edi, dword [rsp + 0x54]
mov edx, 0x300
mov rsi, qword [rbp - 0x68]
mov r12, qword [rsp + 0x78]
mov word [rbp + 0xb8], dx
mov qword [rbp + 0xb0], r14
nop dword [rax + rax]
mov eax, dword [0x1800648dc]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
jne 0x18001adfb
mov r15d, 1
mov r8d, dword [rbp - 0x18]
mov r9d, dword [rbp - 0x14]
cmp r8d, r9d
jl 0x18001adf1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001addb
cmp r13d, 0x1388
jle 0x18001addb
lea rdx, str.Warning:_too_many_connected_clients___d__d_
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
xor r13d, r13d
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1800648dc]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
je 0x18001ad93
mov r15d, dword [rsp + 0x58]
mov edx, 0x300
test ebx, ebx
jne 0x18001aec5
cmp eax, ecx
jne 0x18001b363
test word [rbp + 0xb8], dx
je 0x18001af53
lea edx, [rbx + 1]
mov r8d, 0x3e8
lea rcx, [rbp + 0xb0]
call qword [sym.ProxyProtocol.dll_mypoll]
mov edi, eax
cmp eax, 1
jge 0x18001aebc
test eax, eax
je 0x18001ae50
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001ae5a
nop word [rax + rax]
mov edx, 0x300
jmp 0x18001ad80
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001ae71
mov edx, 0x300
jmp 0x18001ad80
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003616c
mov r8, rax
lea rdx, str.poll__:__s__d
mov r9d, ebx
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], 0
jne 0x18001aeb8
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov ebx, dword [rsp + 0x50]
mov ecx, dword [rbp - 0x10]
mov eax, dword [0x1800648dc]
cmp eax, ecx
jne 0x18001b363
test edi, edi
js 0x18001b363
xor eax, eax
mov edi, eax
test r15d, r15d
jne 0x18001b11d
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
test ebx, ebx
je 0x18001afa0
lea edx, [rax + 1]
lea ecx, [rax + 2]
lea r8d, [rax + 6]
call qword [sym.ProxyProtocol.dll_so]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x18001af53
mov edx, dword [rbp + 0x44]
mov rcx, rax
call sym.ProxyProtocol.dll_setopts
mov ecx, dword [rbp + 0x28]
lea r8, [rbp + 0x2a8]
mov rdx, r12
call sym.ProxyProtocol.dll_parsehost
lea r9d, [r15 + 9]
mov rcx, rsi
lea r8d, [r15 + 0x10]
lea rdx, [rbp + 0x2a8]
call sym.ProxyProtocol.dll_connectwithpoll
test eax, eax
je 0x18001af68
mov rcx, rsi
call qword [0x180064a78]
mov rsi, 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x300
jmp 0x18001ad80
mov r9d, 1
mov dword [rsp + 0x20], 0xea60
lea r8, [rbp + 0x3c0]
mov rcx, rsi
lea rdx, [rbp + 0x2a8]
call sym.ProxyProtocol.dll_sockrecvfrom
cmp eax, 1
jne 0x18001af43
cmp byte [rbp + 0x3c0], 0x43
je 0x18001b05c
jmp 0x18001af43
lea r8, [rsp + 0x5c]
mov rcx, r14
lea rdx, [rbp + 0x2a8]
call qword [0x180064a08]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18001b051
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2714
je 0x18001afeb
sub eax, 0x14
je 0x18001afde
sub eax, 0x1a
je 0x18001afde
cmp eax, 5
jne 0x18001aff0
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x18001aff0
mov edi, 1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001ae50
test edi, edi
jne 0x18001b00e
cmp r13d, 0x1388
jle 0x18001ae50
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003616c
mov r8, rax
lea rdx, str.accept__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
xor r13d, r13d
mov edx, 0x300
jmp 0x18001ad80
mov edx, dword [rbp + 0x38]
mov rcx, rax
call sym.ProxyProtocol.dll_setopts
lea r8, [rsp + 0x5c]
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x298]
mov rcx, rsi
call qword [0x180064a30]
test eax, eax
je 0x18001b0c6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003616c
mov r8, rax
lea rdx, str.getsockname__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001ae50
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov edx, 0x300
jmp 0x18001ad80
lea r8, [rsp + 0x68]
mov edx, 0x8004667e
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_ioctlsocket]
lea r9, [rsp + 0x6c]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, 0x80
mov rcx, rsi
call qword [0x180064a40]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, pe_nt_image_headers64
mov rcx, rsi
call qword [0x180064a40]
jmp 0x18001b124
mov word [rbp + 0xb8], ax
mov ecx, 0x290
call fcn.18002b164
mov rbx, rax
test rax, rax
jne 0x18001b17f
test r15d, r15d
jne 0x18001b144
mov rcx, rsi
call qword [0x180064a78]
mov dword [rbp + 0x1fc], reloc.WS2_32.dll_setsockopt
cmp dword [rbp + 4], edi
jne 0x18001b166
lea rdx, str.Memory_Allocation_Failed
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [rsp + 0x50]
mov edx, 0x300
jmp 0x18001ad80
lea rcx, [rbp + 0x120]
mov edx, 5
nop dword [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rax - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x18001b190
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
mov rcx, qword [rbp + 0x230]
test rcx, rcx
je 0x18001b201
call fcn.180033cd0
mov qword [rbx + 0x110], rax
mov rcx, rbx
call sym.ProxyProtocol.dll_clearstat
test r15d, r15d
jne 0x18001b212
mov qword [rbx + 0x70], rsi
mov rdx, rbx
lea rcx, [rbp - 0x60]
call sym.ProxyProtocol.dll_makefilters
cmp eax, 1
jle 0x18001b239
mov rcx, rbx
call sym.ProxyProtocol.dll_freeparam
mov ebx, dword [rsp + 0x50]
mov edx, 0x300
jmp 0x18001ad80
xor eax, eax
lea rcx, [rbp + 0x88]
mov qword [rbx], rax
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x18001b263
mov qword [rbx], rax
mov rax, qword [rbp - 0x50]
mov qword [rax + 8], rbx
mov edx, dword [rbp + 0x2c]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea r8, [sym.ProxyProtocol.dll_threadfunc]
xor eax, eax
mov qword [rbp - 0x50], rbx
add edx, 0x4000
mov dword [rsp + 0x20], eax
mov r9, rbx
xor ecx, ecx
call fcn.180036344
inc dword [rbp - 0x18]
test rax, rax
je 0x18001b2bb
mov ecx, dword [rsp + 0x70]
mov dword [rbx + 0xe8], ecx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x18001b30a
xor ecx, ecx
call fcn.180036048
mov r8, rax
lea rdx, str._beginthreadex__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b2f0
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
lea rcx, [rbp + 0x88]
mov edi, 1
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, rbx
call sym.ProxyProtocol.dll_freeparam
mov ebx, dword [rsp + 0x50]
xorps xmm0, xmm0
mov edx, 0x300
movups xmmword [rbp + 0x298], xmm0
movups xmmword [rbp + 0x2a8], xmm0
test r15d, r15d
je 0x18001ad80
cmp word [rbp + 0xb8], 0
jne 0x18001ad80
mov r12d, 1
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp word [rbp + 0xb8], 0
je 0x18001b341
mov r12, qword [rsp + 0x78]
mov edx, 0x300
jmp 0x18001ad80
cmp dword [rbp + 4], 0
mov dword [0x180067348], 0x21
jne 0x18001b384
lea rdx, str.Exiting_thread
lea rcx, [rbp + 0x120]
call qword [rbp - 0x40]
mov rcx, qword [rbp - 0x28]
cmp rcx, 0xffffffffffffffff
je 0x18001b394
call qword [0x180064a78]
mov rcx, qword [rbp - 0x20]
mov qword [rbp - 0x28], 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
je 0x18001b3ac
call qword [0x180064a78]
cmp qword [rbp - 0x50], 0
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp - 0x48], reloc.WS2_32.dll_ntohs
je 0x18001b3d4
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rbp - 0x50], 0
jne 0x18001b3c2
mov r9, qword [rbp + 0xf0]
test r9, r9
je 0x18001b42f
mov r8d, dword [rbp + 0xc]
test r8d, r8d
je 0x18001b427
nop dword [rax]
dec r8d
movsxd rax, r8d
imul rdx, rax, 0x68
mov dword [rbp + 0xc], r8d
mov r10, qword [rdx + r9 + 0x60]
test r10, r10
je 0x18001b422
movsxd rax, r8d
imul rcx, rax, 0x68
mov rcx, qword [rcx + r9 + 0x10]
call r10
mov r9, qword [rbp + 0xf0]
mov r8d, dword [rbp + 0xc]
test r8d, r8d
jne 0x18001b3f0
mov rcx, r9
call fcn.18002b150
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x18001b440
call sym.ProxyProtocol.dll_freeacl
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x18001b460
nop dword [rax]
mov rbx, qword [rcx]
call fcn.18002b150
mov rcx, rbx
test rbx, rbx
jne 0x18001b450
lea rcx, [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x18001b47e
call fcn.18002b150
mov rcx, qword [rbp + 0x100]
test rcx, rcx
je 0x18001b48f
call fcn.18002b150
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001b4a0
call fcn.18002b150
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x18001b4b1
call fcn.18002b150
mov eax, 1
lea rcx, [0x180067320]
mov dword [0x180067348], eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x18001b4de
mov rax, qword [rbp - 0x58]
mov qword [rcx + 8], rax
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x18001b4ec
mov qword [rax], rcx
jmp 0x18001b4f3
mov qword [0x1800648c0], rcx
lea rcx, [0x180067320]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rbp + 0x230]
xor eax, eax
mov dword [0x180067348], eax
test rcx, rcx
je 0x18001b519
call fcn.18002b150
test r12, r12
je 0x18001b526
mov rcx, r12
call fcn.18002b150
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18001b537
mov rcx, rax
call fcn.18002b150
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18001b548
mov rcx, rax
call fcn.180033f74
xor eax, eax
jmp 0x18001b5e7
mov rsi, qword [0x1800649b8]
xor eax, eax
mov dword [0x1800648cc], eax
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
test rsi, rsi
je 0x18001b576
mov rsi, qword [rsi + 0x18]
jmp 0x18001b57d
lea rsi, str.3proxy_0.9.3___
mov rdi, qword [r14]
lea rcx, [0x180051a78]
call sym.ProxyProtocol.dll_printopts
mov ecx, 2
mov rbx, rax
call fcn.180035d30
mov rdx, qword [r14]
mov rcx, rax
lea rax, [0x18004d577]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x4c0]
mov qword [rsp + 0x40], rdx
mov rdx, qword [0x180064818]
mov qword [rsp + 0x38], rdx
lea rdx, 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
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov r9, rsi
mov qword [rsp + 0x20], rdi
mov r8, rdi
call sym.ProxyProtocol.dll_fprintf
mov eax, r15d
mov rcx, qword [rbp + 0x900]
xor rcx, rsp
call fcn.180026c20
lea r11, [rsp + 0xa10]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret