Function at 0x18001a560
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 0x18001a5f0
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.180027fa0
mov eax, dword [0x180064984]
mov rcx, qword [0x180064a18]
inc eax
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov dword [rbp - 0xc], eax
mov eax, dword [0x18006496c]
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 [0x180064988]
mov dword [rbp + 0x30], eax
test rcx, rcx
je 0x18001a6c2
call fcn.1800341e0
mov qword [rbp + 0xf8], rax
jmp 0x18001a6c9
mov qword [rbp + 0xf8], rsi
mov rax, qword [sym.ProxyProtocol.dll_doconnect]
xor ecx, ecx
mov qword [rbp - 0x38], rax
mov eax, dword [0x180064978]
mov dword [rbp - 0x14], eax
mov eax, dword [0x180064958]
mov dword [rbp + 0x2c], eax
mov dword [rbp - 4], esi
call fcn.18003606c
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov qword [rbp + 0x118], rax
je 0x18001a717
mov rcx, qword [0x180064a10]
test rcx, rcx
je 0x18001a717
call fcn.1800341e0
mov qword [rbp + 0x100], rax
mov eax, dword [0x180064a60]
lea rcx, [rbp + 0x120]
mov dword [rbp + 0x50], eax
xor edx, edx
mov eax, dword [0x180064a64]
mov r8d, 0x290
mov dword [rbp + 0x54], eax
mov qword [rbp - 0x28], 0xffffffffffffffff
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp], edi
call fcn.180027fa0
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 [0x180064920]
mov qword [rbp - 0x30], rax
mov eax, dword [0x180063ffc]
mov dword [rsp + 0x58], eax
mov eax, dword [0x180064000]
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 0x18001a82b
call sym.ProxyProtocol.dll_copyacl
mov qword [rbp + 0xe0], rax
test rax, rax
jne 0x18001a82b
mov dword [sym.ProxyProtocol.dll_haveerror], ebx
mov rbx, qword [0x180064a30]
test rbx, rbx
je 0x18001a8ca
mov ecx, 0x20
call fcn.18002b67c
mov rdi, rax
test rax, rax
je 0x18001a85b
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 0x18001a8af
mov rbx, qword [rsi]
test rbx, rbx
je 0x18001a8af
mov ecx, 0x20
call fcn.18002b67c
test rax, rax
je 0x18001a890
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 0x18001a863
mov qword [rsi], rax
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.18002b668
mov rdi, rbx
test rbx, rbx
jne 0x18001a893
mov qword [rbp + 0xe8], r12
jmp 0x18001a8bb
mov qword [rbp + 0xe8], rdi
test rdi, rdi
jne 0x18001a8c5
mov dword [sym.ProxyProtocol.dll_haveerror], 2
mov edi, 1
mov rax, qword [0x180064950]
test rax, rax
jne 0x18001a8e3
lea rax, [rbp - 0x60]
mov qword [0x180064950], rax
jmp 0x18001a8f6
lea rcx, [rbp - 0x60]
mov qword [rbp - 0x60], rax
mov qword [rax + 8], rcx
mov qword [0x180064950], rcx
mov esi, dword [rsp + 0x54]
cmp r15d, 1
jle 0x18001abbf
lea rbx, [r14 + 8]
lea r9, [0x180000000]
lea r10, [sym.ProxyProtocol.dll_logstdout]
nop word [rax + rax]
mov rdx, qword [rbx]
cmp byte [rdx], 0x2d
jne 0x18001abcd
movsx eax, byte [rdx + 1]
add eax, 0xffffffcc
cmp eax, 0x41
ja case.0x18001a952.72
cdqe
movzx eax, byte [r9 + rax + 0x1bb3c]
mov ecx, dword [r9 + rax*4 + 0x1bae8]
add rcx, r9
jmp rcx
cmp dword [0x180064974], 0
jne 0x18001a963
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x180064974], 1
jmp 0x18001aba0
mov rcx, qword [rbp + 0x100]
mov qword [rbp - 0x40], r10
test rcx, rcx
je 0x18001a987
call fcn.18002b668
mov rcx, qword [rbx]
add rcx, 2
call fcn.1800341e0
mov rcx, qword [rbx]
add rcx, 2
mov qword [rbp + 0x100], rax
test byte [rcx], 0xbf
je 0x18001aba0
lea rdx, [0x180051a74]
call fcn.180036384
mov qword [rbp - 0x70], rax
test rax, rax
je 0x18001aba0
mov qword [rbp + 0xc0], rax
jmp 0x18001aba0
add rdx, 2
lea r8, [rbp + 0x58]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001aba0
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 0x18001ab9c
add rdx, 2
lea r8, [rbp + 0x78]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
jmp 0x18001aba0
lea rcx, [rdx + 1]
call fcn.180035fbc
mov dword [rbp + 0x28], eax
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
mov dword [rbp + 0x4c], eax
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
mov dword [rbp - 4], eax
jmp 0x18001aba0
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001aa7d
call fcn.18002b668
mov rcx, qword [rbx]
add rcx, 2
call fcn.1800341e0
mov qword [rbp + 0xf8], rax
jmp 0x18001aba0
mov dword [rbp + 4], 1
jmp 0x18001aba0
lea r12, [rdx + 2]
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.1800341e0
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], 1
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.1800341e0
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x64], 1
jmp 0x18001aba0
lea rcx, [rdx + 2]
mov dword [rbp], 0
cmp byte [rcx], 0
je 0x18001aba0
call fcn.180035fbc
mov dword [rbp], eax
jmp 0x18001aba0
mov dword [rbp + 8], 1
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
mov dword [rbp + 0x2c], eax
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
inc eax
mov dword [rbp + 0x34], eax
jmp 0x18001aba0
lea rcx, [rdx + 2]
call fcn.180035fbc
inc eax
mov dword [rbp - 8], eax
jmp 0x18001aba0
movsx ecx, byte [rdx + 2]
sub ecx, 0x52
je 0x18001ab84
sub ecx, 0x11
je 0x18001ab76
sub ecx, 9
je 0x18001ab68
sub ecx, 6
je 0x18001ab84
cmp ecx, 1
jne case.0x18001a952.72
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x3c], eax
jmp 0x18001ab90
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x40], eax
jmp 0x18001ab90
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x38], eax
jmp 0x18001ab90
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x44], eax
test esi, esi
je 0x18001aba0
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 0x18001a920
jmp 0x18001abcd
movdqu xmm0, xmmword [rbp + 0x58]
pextrw eax, xmm0, 1
mov word [rbp + 0x5a], ax
cmp word [0x180063ff8], 0
je 0x18001ac74
test esi, esi
jne 0x18001abe8
cmp edi, r15d
je 0x18001ace5
mov rsi, qword [0x180064a48]
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
mov dword [0x18006495c], 0
test rsi, rsi
je 0x18001ac11
mov rsi, qword [rsi + 0x18]
jmp 0x18001ac18
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.180036240
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 [0x180064008]
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 0x18001baa4
test esi, esi
jne 0x18001ba1f
lea eax, [rdi + 3]
cmp r15d, eax
jne 0x18001ba1f
movsxd rbx, edi
mov rcx, qword [r14 + rbx*8]
cmp byte [rcx], 0x2d
je 0x18001ba1f
call fcn.180035fbc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
test ax, ax
je 0x18001ba1f
mov rcx, qword [r14 + rbx*8 + 0x10]
call fcn.180035fbc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x110], ax
test ax, ax
je 0x18001ba1f
mov rcx, qword [r14 + rbx*8 + 8]
call fcn.1800341e0
mov qword [rbp + 0xc8], rax
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001ad56
cmp byte [rcx], 0x2d
jne 0x18001ad56
inc rcx
mov edx, 0x2b
call fcn.180028ab0
mov rdi, rax
test rax, rax
je 0x18001ad56
cmp byte [rax + 1], 0
je 0x18001ad56
mov rbx, qword [rbp + 0xf8]
mov byte [rax], 0
mov rcx, qword [rbp + 0xf8]
inc rcx
call fcn.1800341e0
mov qword [rbp + 0x108], rax
lea rcx, [rdi + 2]
movzx eax, byte [rdi + 1]
mov byte [rbp + 0x112], al
call fcn.1800341e0
mov qword [rbp + 0xf8], rax
mov rcx, rbx
mov byte [rdi], 0x2b
call fcn.18002b668
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 0x18001ada4
mov word [rbp + 0x58], si
cmp word [rbp + 0x5a], 0
jne 0x18001adbc
movzx ecx, word [0x180063ff8]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
mov word [rbp + 0x68], si
test r12, r12
je 0x18001addc
movzx r8d, word [0x180063ff8]
lea rdx, [rbp + 0x120]
mov rcx, r12
call sym.ProxyProtocol.dll_parsehostname
mov rbx, qword [0x180064a28]
xor edi, edi
mov edx, edi
test rbx, rbx
je 0x18001af23
mov rcx, rbx
mov qword [rbp + 0xf0], rbx
nop word [rax + rax]
mov rax, qword [rcx]
inc edx
mov qword [rbp + 0xf0], rax
mov rcx, rax
test rax, rax
jne 0x18001ae00
movsxd rax, edx
imul rcx, rax, 0x68
call fcn.18002b67c
mov qword [rbp + 0xf0], rax
test rax, rax
je 0x18001af23
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x18001af17
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp - 0x60]
call rax
mov rdx, rax
test rax, rax
je 0x18001af17
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 0x18001aedc
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 0x18001aeea
inc dword [rbp + 0x10]
cmp qword [rbx + 0x38], rdi
je 0x18001aef3
inc dword [rbp + 0x18]
cmp qword [rbx + 0x30], rdi
je 0x18001aefc
inc dword [rbp + 0x14]
cmp qword [rbx + 0x40], rdi
je 0x18001af05
inc dword [rbp + 0x1c]
cmp qword [rbx + 0x50], rdi
je 0x18001af0e
inc dword [rbp + 0x24]
cmp qword [rbx + 0x48], rdi
je 0x18001af17
inc dword [rbp + 0x20]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18001ae30
mov ebx, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x58]
mov dword [0x18006495c], edi
test ebx, ebx
jne 0x18001b187
cmp qword [rbp - 0x28], 0xffffffffffffffff
jne 0x18001afeb
test r15d, r15d
jne 0x18001af68
movzx eax, word [0x1800648fc]
lea r8d, [rbx + 6]
mov ecx, 1
mov word [rsp + 0x6e], ax
mov word [rsp + 0x6c], cx
mov edx, ecx
jmp 0x18001af70
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 0x18001af96
lea rcx, str.socket__
call fcn.1800364cc
lea eax, [r14 - 1]
jmp 0x18001bab7
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 [0x180064870]
test eax, eax
je 0x18001afef
lea rcx, str.setsockopt__
call fcn.1800364cc
jmp 0x18001afef
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 [0x180064840]
cmp eax, 0xffffffff
jne 0x18001b075
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003667c
mov r8, rax
lea rdx, str.bind__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b04d
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
add ebx, ebx
je 0x18001b0d5
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 [0x180064840]
cmp eax, 0xffffffff
je 0x18001b012
test r15d, r15d
jne 0x18001b0e8
mov edx, dword [rbp - 0x14]
mov rcx, r14
sar edx, 4
inc edx
call qword [0x180064848]
cmp eax, 0xffffffff
jne 0x18001b0ef
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003667c
mov r8, rax
lea rdx, str.listen__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b0cb
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffffc
jmp 0x18001bab7
mov rcx, r14
call qword [0x1800648a8]
mov eax, 0xfffffffd
jmp 0x18001bab7
mov qword [rbp + 0x190], r14
cmp dword [rbp + 4], edi
jne 0x18001b12e
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 0x18001b22b
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 0x18001b18d
lea rdx, str.Failed_to_allocate_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
lea eax, [rdi - 7]
jmp 0x18001bab7
mov r14, qword [rbp - 0x78]
jmp 0x18001b132
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 [0x180064870]
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 [0x180064840]
cmp eax, 0xffffffff
jne 0x18001b1f7
lea rdx, str.Failed_to_bind_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff9
jmp 0x18001bab7
mov edx, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x20]
sar edx, 4
inc edx
call qword [0x180064848]
cmp eax, 0xffffffff
jne 0x18001b22b
lea rdx, str.Failed_to_listen_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff8
jmp 0x18001bab7
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 [0x18006496c]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
jne 0x18001b2cb
mov r15d, 1
mov r8d, dword [rbp - 0x18]
mov r9d, dword [rbp - 0x14]
cmp r8d, r9d
jl 0x18001b2c1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b2ab
cmp r13d, 0x1388
jle 0x18001b2ab
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 [0x18006496c]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
je 0x18001b263
mov r15d, dword [rsp + 0x58]
mov edx, 0x300
test ebx, ebx
jne 0x18001b395
cmp eax, ecx
jne 0x18001b836
test word [rbp + 0xb8], dx
je 0x18001b423
lea edx, [rbx + 1]
mov r8d, 0x3e8
lea rcx, [rbp + 0xb0]
call qword [sym.ProxyProtocol.dll_mypoll]
mov edi, eax
cmp eax, 1
jge 0x18001b38c
test eax, eax
je 0x18001b320
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b32a
nop word [rax + rax]
mov edx, 0x300
jmp 0x18001b250
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b341
mov edx, 0x300
jmp 0x18001b250
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003667c
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 0x18001b388
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 [0x18006496c]
cmp eax, ecx
jne 0x18001b836
test edi, edi
js 0x18001b836
xor eax, eax
mov edi, eax
test r15d, r15d
jne 0x18001b5ed
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
test ebx, ebx
je 0x18001b470
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 0x18001b423
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 0x18001b438
mov rcx, rsi
call qword [0x1800648a8]
mov rsi, 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x300
jmp 0x18001b250
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 0x18001b413
cmp byte [rbp + 0x3c0], 0x43
je 0x18001b52c
jmp 0x18001b413
lea r8, [rsp + 0x5c]
mov rcx, r14
lea rdx, [rbp + 0x2a8]
call qword [0x180064838]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18001b521
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2714
je 0x18001b4bb
sub eax, 0x14
je 0x18001b4ae
sub eax, 0x1a
je 0x18001b4ae
cmp eax, 5
jne 0x18001b4c0
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x18001b4c0
mov edi, 1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b320
test edi, edi
jne 0x18001b4de
cmp r13d, 0x1388
jle 0x18001b320
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003667c
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 0x18001b250
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 [0x180064860]
test eax, eax
je 0x18001b596
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.18003667c
mov r8, rax
lea rdx, str.getsockname__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b320
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov edx, 0x300
jmp 0x18001b250
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 [0x180064870]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, pe_nt_image_headers64
mov rcx, rsi
call qword [0x180064870]
jmp 0x18001b5f4
mov word [rbp + 0xb8], ax
mov ecx, 0x290
call fcn.18002b67c
mov rbx, rax
test rax, rax
jne 0x18001b64f
test r15d, r15d
jne 0x18001b614
mov rcx, rsi
call qword [0x1800648a8]
mov dword [rbp + 0x1fc], reloc.WS2_32.dll_setsockopt
cmp dword [rbp + 4], edi
jne 0x18001b636
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 0x18001b250
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 0x18001b660
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
mov rcx, qword [rbp + 0x230]
test rcx, rcx
je 0x18001b6d1
call fcn.1800341e0
mov qword [rbx + 0x110], rax
mov rcx, rbx
call sym.ProxyProtocol.dll_clearstat
test r15d, r15d
jne 0x18001b6e2
mov qword [rbx + 0x70], rsi
mov rdx, rbx
lea rcx, [rbp - 0x60]
call sym.ProxyProtocol.dll_makefilters
cmp eax, 1
jle 0x18001b709
mov rcx, rbx
call sym.ProxyProtocol.dll_freeparam
mov ebx, dword [rsp + 0x50]
mov edx, 0x300
jmp 0x18001b250
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 0x18001b733
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.180036854
inc dword [rbp - 0x18]
test rax, rax
je 0x18001b78b
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 0x18001b7da
xor ecx, ecx
call fcn.180036558
mov r8, rax
lea rdx, str._beginthreadex__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b7c0
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
xorps xmm1, xmm1
mov edx, 0x300
movups xmmword [rbp + 0x298], xmm0
movups xmmword [rbp + 0x2a8], xmm1
test r15d, r15d
je 0x18001b250
cmp word [rbp + 0xb8], 0
jne 0x18001b250
mov r12d, 1
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp word [rbp + 0xb8], 0
je 0x18001b814
mov r12, qword [rsp + 0x78]
mov edx, 0x300
jmp 0x18001b250
cmp dword [rbp + 4], 0
mov dword [0x180067348], 0x21
jne 0x18001b857
lea rdx, str.Exiting_thread
lea rcx, [rbp + 0x120]
call qword [rbp - 0x40]
mov rcx, qword [rbp - 0x28]
cmp rcx, 0xffffffffffffffff
je 0x18001b867
call qword [0x1800648a8]
mov rcx, qword [rbp - 0x20]
mov qword [rbp - 0x28], 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
je 0x18001b87f
call qword [0x1800648a8]
cmp qword [rbp - 0x50], 0
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp - 0x48], reloc.WS2_32.dll_ntohs
je 0x18001b8a7
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rbp - 0x50], 0
jne 0x18001b895
mov r9, qword [rbp + 0xf0]
test r9, r9
je 0x18001b8ff
mov r8d, dword [rbp + 0xc]
test r8d, r8d
je 0x18001b8f7
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 0x18001b8f2
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 0x18001b8c0
mov rcx, r9
call fcn.18002b668
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x18001b910
call sym.ProxyProtocol.dll_freeacl
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x18001b930
nop dword [rax]
mov rbx, qword [rcx]
call fcn.18002b668
mov rcx, rbx
test rbx, rbx
jne 0x18001b920
lea rcx, [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x18001b94e
call fcn.18002b668
mov rcx, qword [rbp + 0x100]
test rcx, rcx
je 0x18001b95f
call fcn.18002b668
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001b970
call fcn.18002b668
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x18001b981
call fcn.18002b668
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 0x18001b9ae
mov rax, qword [rbp - 0x58]
mov qword [rcx + 8], rax
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x18001b9bc
mov qword [rax], rcx
jmp 0x18001b9c3
mov qword [0x180064950], 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 0x18001b9e9
call fcn.18002b668
test r12, r12
je 0x18001b9f6
mov rcx, r12
call fcn.18002b668
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18001ba07
mov rcx, rax
call fcn.18002b668
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18001ba18
mov rcx, rax
call fcn.180034484
xor eax, eax
jmp 0x18001bab7
mov rsi, qword [0x180064a48]
xor eax, eax
mov dword [0x18006495c], eax
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
test rsi, rsi
je 0x18001ba46
mov rsi, qword [rsi + 0x18]
jmp 0x18001ba4d
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.180036240
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 [0x180064008]
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.180027140
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