Function at 0x18001a720
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 [0x180065c40]
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 0x18001a7b0
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.18004c7e0
mov eax, dword [0x180065984]
mov rcx, qword [0x180065a18]
inc eax
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov dword [rbp - 0xc], eax
mov eax, dword [0x18006596c]
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 [0x180065988]
mov dword [rbp + 0x30], eax
test rcx, rcx
je 0x18001a882
call fcn.180034790
mov qword [rbp + 0xf8], rax
jmp 0x18001a889
mov qword [rbp + 0xf8], rsi
mov rax, qword [sym.ProxyProtocol.dll_doconnect]
xor ecx, ecx
mov qword [rbp - 0x38], rax
mov eax, dword [0x180065978]
mov dword [rbp - 0x14], eax
mov eax, dword [0x180065958]
mov dword [rbp + 0x2c], eax
mov dword [rbp - 4], esi
call fcn.18003661c
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov qword [rbp + 0x118], rax
je 0x18001a8d7
mov rcx, qword [0x180065a10]
test rcx, rcx
je 0x18001a8d7
call fcn.180034790
mov qword [rbp + 0x100], rax
mov eax, dword [0x180065a60]
lea rcx, [rbp + 0x120]
mov dword [rbp + 0x50], eax
xor edx, edx
mov eax, dword [0x180065a64]
mov r8d, 0x290
mov dword [rbp + 0x54], eax
mov qword [rbp - 0x28], 0xffffffffffffffff
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp], edi
call fcn.18004c7e0
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 [0x180065920]
mov qword [rbp - 0x30], rax
mov eax, dword [0x180064ffc]
mov dword [rsp + 0x58], eax
mov eax, dword [0x180065000]
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 0x18001a9eb
call sym.ProxyProtocol.dll_copyacl
mov qword [rbp + 0xe0], rax
test rax, rax
jne 0x18001a9eb
mov dword [sym.ProxyProtocol.dll_haveerror], ebx
mov rbx, qword [0x180065a30]
test rbx, rbx
je 0x18001aa8a
mov ecx, 0x20
call fcn.18002bc34
mov rdi, rax
test rax, rax
je 0x18001aa1b
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 0x18001aa6f
mov rbx, qword [rsi]
test rbx, rbx
je 0x18001aa6f
mov ecx, 0x20
call fcn.18002bc34
test rax, rax
je 0x18001aa50
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 0x18001aa23
mov qword [rsi], rax
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.18002bc20
mov rdi, rbx
test rbx, rbx
jne 0x18001aa53
mov qword [rbp + 0xe8], r12
jmp 0x18001aa7b
mov qword [rbp + 0xe8], rdi
test rdi, rdi
jne 0x18001aa85
mov dword [sym.ProxyProtocol.dll_haveerror], 2
mov edi, 1
mov rax, qword [0x180065950]
test rax, rax
jne 0x18001aaa3
lea rax, [rbp - 0x60]
mov qword [0x180065950], rax
jmp 0x18001aab6
lea rcx, [rbp - 0x60]
mov qword [rbp - 0x60], rax
mov qword [rax + 8], rcx
mov qword [0x180065950], rcx
mov esi, dword [rsp + 0x54]
cmp r15d, 1
jle 0x18001ad7f
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 0x18001ad8d
movsx eax, byte [rdx + 1]
add eax, 0xffffffcc
cmp eax, 0x41
ja case.0x18001ab12.72
cdqe
movzx eax, byte [r9 + rax + 0x1bcfc]
mov ecx, dword [r9 + rax*4 + 0x1bca8]
add rcx, r9
jmp rcx
cmp dword [0x180065974], 0
jne 0x18001ab23
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x180065974], 1
jmp 0x18001ad60
mov rcx, qword [rbp + 0x100]
mov qword [rbp - 0x40], r10
test rcx, rcx
je 0x18001ab47
call fcn.18002bc20
mov rcx, qword [rbx]
add rcx, 2
call fcn.180034790
mov rcx, qword [rbx]
add rcx, 2
mov qword [rbp + 0x100], rax
test byte [rcx], 0xbf
je 0x18001ad60
lea rdx, [0x180052a74]
call fcn.180036934
mov qword [rbp - 0x70], rax
test rax, rax
je 0x18001ad60
mov qword [rbp + 0xc0], rax
jmp 0x18001ad60
add rdx, 2
lea r8, [rbp + 0x58]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001ad60
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 0x18001ad5c
add rdx, 2
lea r8, [rbp + 0x78]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
jmp 0x18001ad60
lea rcx, [rdx + 1]
call fcn.18003656c
mov dword [rbp + 0x28], eax
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
mov dword [rbp + 0x4c], eax
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
mov dword [rbp - 4], eax
jmp 0x18001ad60
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001ac3d
call fcn.18002bc20
mov rcx, qword [rbx]
add rcx, 2
call fcn.180034790
mov qword [rbp + 0xf8], rax
jmp 0x18001ad60
mov dword [rbp + 4], 1
jmp 0x18001ad60
lea r12, [rdx + 2]
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.180034790
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], 1
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.180034790
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x64], 1
jmp 0x18001ad60
lea rcx, [rdx + 2]
mov dword [rbp], 0
cmp byte [rcx], 0
je 0x18001ad60
call fcn.18003656c
mov dword [rbp], eax
jmp 0x18001ad60
mov dword [rbp + 8], 1
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
mov dword [rbp + 0x2c], eax
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
inc eax
mov dword [rbp + 0x34], eax
jmp 0x18001ad60
lea rcx, [rdx + 2]
call fcn.18003656c
inc eax
mov dword [rbp - 8], eax
jmp 0x18001ad60
movsx ecx, byte [rdx + 2]
sub ecx, 0x52
je 0x18001ad44
sub ecx, 0x11
je 0x18001ad36
sub ecx, 9
je 0x18001ad28
sub ecx, 6
je 0x18001ad44
cmp ecx, 1
jne case.0x18001ab12.72
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x3c], eax
jmp 0x18001ad50
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x40], eax
jmp 0x18001ad50
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x38], eax
jmp 0x18001ad50
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x44], eax
test esi, esi
je 0x18001ad60
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 0x18001aae0
jmp 0x18001ad8d
movdqu xmm0, xmmword [rbp + 0x58]
pextrw eax, xmm0, 1
mov word [rbp + 0x5a], ax
cmp word [0x180064ff8], 0
je 0x18001ae34
test esi, esi
jne 0x18001ada8
cmp edi, r15d
je 0x18001aea5
mov rsi, qword [0x180065a48]
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
mov dword [0x18006595c], 0
test rsi, rsi
je 0x18001add1
mov rsi, qword [rsi + 0x18]
jmp 0x18001add8
lea rsi, str.3proxy_0.9.3___
mov rdi, qword [r14]
lea rcx, [0x180052a78]
call sym.ProxyProtocol.dll_printopts
mov ecx, 2
mov rbx, rax
call fcn.1800367f0
mov rcx, rax
lea rdx, [rbp + 0x4c0]
lea rax, [0x18004e577]
mov qword [rsp + 0x48], rax
mov rax, qword [r14]
mov qword [rsp + 0x40], rax
mov rax, qword [0x180065008]
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 0x18001bc64
test esi, esi
jne 0x18001bbdf
lea eax, [rdi + 3]
cmp r15d, eax
jne 0x18001bbdf
movsxd rbx, edi
mov rcx, qword [r14 + rbx*8]
cmp byte [rcx], 0x2d
je 0x18001bbdf
call fcn.18003656c
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
test ax, ax
je 0x18001bbdf
mov rcx, qword [r14 + rbx*8 + 0x10]
call fcn.18003656c
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x110], ax
test ax, ax
je 0x18001bbdf
mov rcx, qword [r14 + rbx*8 + 8]
call fcn.180034790
mov qword [rbp + 0xc8], rax
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001af16
cmp byte [rcx], 0x2d
jne 0x18001af16
inc rcx
mov edx, 0x2b
call fcn.1800280a0
mov rdi, rax
test rax, rax
je 0x18001af16
cmp byte [rax + 1], 0
je 0x18001af16
mov rbx, qword [rbp + 0xf8]
mov byte [rax], 0
mov rcx, qword [rbp + 0xf8]
inc rcx
call fcn.180034790
mov qword [rbp + 0x108], rax
lea rcx, [rdi + 2]
movzx eax, byte [rdi + 1]
mov byte [rbp + 0x112], al
call fcn.180034790
mov qword [rbp + 0xf8], rax
mov rcx, rbx
mov byte [rdi], 0x2b
call fcn.18002bc20
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 0x18001af64
mov word [rbp + 0x58], si
cmp word [rbp + 0x5a], 0
jne 0x18001af7c
movzx ecx, word [0x180064ff8]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
mov word [rbp + 0x68], si
test r12, r12
je 0x18001af9c
movzx r8d, word [0x180064ff8]
lea rdx, [rbp + 0x120]
mov rcx, r12
call sym.ProxyProtocol.dll_parsehostname
mov rbx, qword [0x180065a28]
xor edi, edi
mov edx, edi
test rbx, rbx
je 0x18001b0e3
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 0x18001afc0
movsxd rax, edx
imul rcx, rax, 0x68
call fcn.18002bc34
mov qword [rbp + 0xf0], rax
test rax, rax
je 0x18001b0e3
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x18001b0d7
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp - 0x60]
call rax
mov rdx, rax
test rax, rax
je 0x18001b0d7
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 0x18001b09c
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 0x18001b0aa
inc dword [rbp + 0x10]
cmp qword [rbx + 0x38], rdi
je 0x18001b0b3
inc dword [rbp + 0x18]
cmp qword [rbx + 0x30], rdi
je 0x18001b0bc
inc dword [rbp + 0x14]
cmp qword [rbx + 0x40], rdi
je 0x18001b0c5
inc dword [rbp + 0x1c]
cmp qword [rbx + 0x50], rdi
je 0x18001b0ce
inc dword [rbp + 0x24]
cmp qword [rbx + 0x48], rdi
je 0x18001b0d7
inc dword [rbp + 0x20]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18001aff0
mov ebx, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x58]
mov dword [0x18006595c], edi
test ebx, ebx
jne 0x18001b347
cmp qword [rbp - 0x28], 0xffffffffffffffff
jne 0x18001b1ab
test r15d, r15d
jne 0x18001b128
movzx eax, word [0x1800658fc]
lea r8d, [rbx + 6]
mov ecx, 1
mov word [rsp + 0x6e], ax
mov word [rsp + 0x6c], cx
mov edx, ecx
jmp 0x18001b130
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 0x18001b156
lea rcx, str.socket__
call fcn.180036a7c
lea eax, [r14 - 1]
jmp 0x18001bc77
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 [0x180065870]
test eax, eax
je 0x18001b1af
lea rcx, str.setsockopt__
call fcn.180036a7c
jmp 0x18001b1af
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 [0x180065840]
cmp eax, 0xffffffff
jne 0x18001b235
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036c2c
mov r8, rax
lea rdx, str.bind__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b20d
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
add ebx, ebx
je 0x18001b295
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 [0x180065840]
cmp eax, 0xffffffff
je 0x18001b1d2
test r15d, r15d
jne 0x18001b2a8
mov edx, dword [rbp - 0x14]
mov rcx, r14
sar edx, 4
inc edx
call qword [0x180065848]
cmp eax, 0xffffffff
jne 0x18001b2af
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036c2c
mov r8, rax
lea rdx, str.listen__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b28b
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffffc
jmp 0x18001bc77
mov rcx, r14
call qword [0x1800658a8]
mov eax, 0xfffffffd
jmp 0x18001bc77
mov qword [rbp + 0x190], r14
cmp dword [rbp + 4], edi
jne 0x18001b2ee
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 0x18001b3eb
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 0x18001b34d
lea rdx, str.Failed_to_allocate_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
lea eax, [rdi - 7]
jmp 0x18001bc77
mov r14, qword [rbp - 0x78]
jmp 0x18001b2f2
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 [0x180065870]
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 [0x180065840]
cmp eax, 0xffffffff
jne 0x18001b3b7
lea rdx, str.Failed_to_bind_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff9
jmp 0x18001bc77
mov edx, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x20]
sar edx, 4
inc edx
call qword [0x180065848]
cmp eax, 0xffffffff
jne 0x18001b3eb
lea rdx, str.Failed_to_listen_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff8
jmp 0x18001bc77
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 [0x18006596c]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
jne 0x18001b48b
mov r15d, 1
mov r8d, dword [rbp - 0x18]
mov r9d, dword [rbp - 0x14]
cmp r8d, r9d
jl 0x18001b481
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b46b
cmp r13d, 0x1388
jle 0x18001b46b
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 [0x18006596c]
mov ecx, dword [rbp - 0x10]
cmp eax, ecx
je 0x18001b423
mov r15d, dword [rsp + 0x58]
mov edx, 0x300
test ebx, ebx
jne 0x18001b555
cmp eax, ecx
jne 0x18001b9f6
test word [rbp + 0xb8], dx
je 0x18001b5e3
lea edx, [rbx + 1]
mov r8d, 0x3e8
lea rcx, [rbp + 0xb0]
call qword [sym.ProxyProtocol.dll_mypoll]
mov edi, eax
cmp eax, 1
jge 0x18001b54c
test eax, eax
je 0x18001b4e0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b4ea
nop word [rax + rax]
mov edx, 0x300
jmp 0x18001b410
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b501
mov edx, 0x300
jmp 0x18001b410
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036c2c
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 0x18001b548
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 [0x18006596c]
cmp eax, ecx
jne 0x18001b9f6
test edi, edi
js 0x18001b9f6
xor eax, eax
mov edi, eax
test r15d, r15d
jne 0x18001b7ad
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
test ebx, ebx
je 0x18001b630
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 0x18001b5e3
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 0x18001b5f8
mov rcx, rsi
call qword [0x1800658a8]
mov rsi, 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x300
jmp 0x18001b410
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 0x18001b5d3
cmp byte [rbp + 0x3c0], 0x43
je 0x18001b6ec
jmp 0x18001b5d3
lea r8, [rsp + 0x5c]
mov rcx, r14
lea rdx, [rbp + 0x2a8]
call qword [0x180065838]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18001b6e1
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2714
je 0x18001b67b
sub eax, 0x14
je 0x18001b66e
sub eax, 0x1a
je 0x18001b66e
cmp eax, 5
jne 0x18001b680
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x18001b680
mov edi, 1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b4e0
test edi, edi
jne 0x18001b69e
cmp r13d, 0x1388
jle 0x18001b4e0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036c2c
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 0x18001b410
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 [0x180065860]
test eax, eax
je 0x18001b756
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036c2c
mov r8, rax
lea rdx, str.getsockname__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b4e0
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov edx, 0x300
jmp 0x18001b410
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 [0x180065870]
lea r9, [rsp + 0x60]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, 0x100
mov rcx, rsi
call qword [0x180065870]
jmp 0x18001b7b4
mov word [rbp + 0xb8], ax
mov ecx, 0x290
call fcn.18002bc34
mov rbx, rax
test rax, rax
jne 0x18001b80f
test r15d, r15d
jne 0x18001b7d4
mov rcx, rsi
call qword [0x1800658a8]
mov dword [rbp + 0x1fc], reloc.WS2_32.dll_setsockopt
cmp dword [rbp + 4], edi
jne 0x18001b7f6
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 0x18001b410
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 0x18001b820
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
mov rcx, qword [rbp + 0x230]
test rcx, rcx
je 0x18001b891
call fcn.180034790
mov qword [rbx + 0x110], rax
mov rcx, rbx
call sym.ProxyProtocol.dll_clearstat
test r15d, r15d
jne 0x18001b8a2
mov qword [rbx + 0x70], rsi
mov rdx, rbx
lea rcx, [rbp - 0x60]
call sym.ProxyProtocol.dll_makefilters
cmp eax, 1
jle 0x18001b8c9
mov rcx, rbx
call sym.ProxyProtocol.dll_freeparam
mov ebx, dword [rsp + 0x50]
mov edx, 0x300
jmp 0x18001b410
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 0x18001b8f3
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.180036e04
inc dword [rbp - 0x18]
test rax, rax
je 0x18001b94b
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 0x18001b99a
xor ecx, ecx
call fcn.180036b08
mov r8, rax
lea rdx, str._beginthreadex__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b980
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 0x18001b410
cmp word [rbp + 0xb8], 0
jne 0x18001b410
mov r12d, 1
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp word [rbp + 0xb8], 0
je 0x18001b9d4
mov r12, qword [rsp + 0x78]
mov edx, 0x300
jmp 0x18001b410
cmp dword [rbp + 4], 0
mov dword [0x1800683a8], 0x21
jne 0x18001ba17
lea rdx, str.Exiting_thread
lea rcx, [rbp + 0x120]
call qword [rbp - 0x40]
mov rcx, qword [rbp - 0x28]
cmp rcx, 0xffffffffffffffff
je 0x18001ba27
call qword [0x1800658a8]
mov rcx, qword [rbp - 0x20]
mov qword [rbp - 0x28], 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
je 0x18001ba3f
call qword [0x1800658a8]
cmp qword [rbp - 0x50], 0
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp - 0x48], reloc.WS2_32.dll_ntohs
je 0x18001ba67
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rbp - 0x50], 0
jne 0x18001ba55
mov r9, qword [rbp + 0xf0]
test r9, r9
je 0x18001babf
mov r8d, dword [rbp + 0xc]
test r8d, r8d
je 0x18001bab7
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 0x18001bab2
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 0x18001ba80
mov rcx, r9
call fcn.18002bc20
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x18001bad0
call sym.ProxyProtocol.dll_freeacl
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x18001baf0
nop dword [rax]
mov rbx, qword [rcx]
call fcn.18002bc20
mov rcx, rbx
test rbx, rbx
jne 0x18001bae0
lea rcx, [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x18001bb0e
call fcn.18002bc20
mov rcx, qword [rbp + 0x100]
test rcx, rcx
je 0x18001bb1f
call fcn.18002bc20
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001bb30
call fcn.18002bc20
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x18001bb41
call fcn.18002bc20
mov eax, 1
lea rcx, [0x180068380]
mov dword [0x1800683a8], eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x18001bb6e
mov rax, qword [rbp - 0x58]
mov qword [rcx + 8], rax
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x18001bb7c
mov qword [rax], rcx
jmp 0x18001bb83
mov qword [0x180065950], rcx
lea rcx, [0x180068380]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rbp + 0x230]
xor eax, eax
mov dword [0x1800683a8], eax
test rcx, rcx
je 0x18001bba9
call fcn.18002bc20
test r12, r12
je 0x18001bbb6
mov rcx, r12
call fcn.18002bc20
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18001bbc7
mov rcx, rax
call fcn.18002bc20
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18001bbd8
mov rcx, rax
call fcn.180034a34
xor eax, eax
jmp 0x18001bc77
mov rsi, qword [0x180065a48]
xor eax, eax
mov dword [0x18006595c], eax
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
test rsi, rsi
je 0x18001bc06
mov rsi, qword [rsi + 0x18]
jmp 0x18001bc0d
lea rsi, str.3proxy_0.9.3___
mov rdi, qword [r14]
lea rcx, [0x180052a78]
call sym.ProxyProtocol.dll_printopts
mov ecx, 2
mov rbx, rax
call fcn.1800367f0
mov rdx, qword [r14]
mov rcx, rax
lea rax, [0x18004e577]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x4c0]
mov qword [rsp + 0x40], rdx
mov rdx, qword [0x180065008]
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.180027290
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