Function at 0x18001a5c0
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 0x18001a650
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.18004c680
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 0x18001a722
call fcn.180034620
mov qword [rbp + 0xf8], rax
jmp 0x18001a729
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.1800364ac
cmp dword [sym.ProxyProtocol.dll_havelog], esi
mov qword [rbp + 0x118], rax
je 0x18001a777
mov rcx, qword [0x180065a10]
test rcx, rcx
je 0x18001a777
call fcn.180034620
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.18004c680
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 0x18001a88b
call sym.ProxyProtocol.dll_copyacl
mov qword [rbp + 0xe0], rax
test rax, rax
jne 0x18001a88b
mov dword [sym.ProxyProtocol.dll_haveerror], ebx
mov rbx, qword [0x180065a30]
test rbx, rbx
je 0x18001a92a
mov ecx, 0x20
call fcn.18002bab4
mov rdi, rax
test rax, rax
je 0x18001a8bb
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 0x18001a90f
mov rbx, qword [rsi]
test rbx, rbx
je 0x18001a90f
mov ecx, 0x20
call fcn.18002bab4
test rax, rax
je 0x18001a8f0
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 0x18001a8c3
mov qword [rsi], rax
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.18002baa0
mov rdi, rbx
test rbx, rbx
jne 0x18001a8f3
mov qword [rbp + 0xe8], r12
jmp 0x18001a91b
mov qword [rbp + 0xe8], rdi
test rdi, rdi
jne 0x18001a925
mov dword [sym.ProxyProtocol.dll_haveerror], 2
mov edi, 1
mov rax, qword [0x180065950]
test rax, rax
jne 0x18001a943
lea rax, [rbp - 0x60]
mov qword [0x180065950], rax
jmp 0x18001a956
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 0x18001ac1f
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 0x18001ac2d
movsx eax, byte [rdx + 1]
add eax, 0xffffffcc
cmp eax, 0x41
ja case.0x18001a9b2.72
cdqe
movzx eax, byte [r9 + rax + 0x1bb9c]
mov ecx, dword [r9 + rax*4 + 0x1bb48]
add rcx, r9
jmp rcx
cmp dword [0x180065974], 0
jne 0x18001a9c3
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x180065974], 1
jmp 0x18001ac00
mov rcx, qword [rbp + 0x100]
mov qword [rbp - 0x40], r10
test rcx, rcx
je 0x18001a9e7
call fcn.18002baa0
mov rcx, qword [rbx]
add rcx, 2
call fcn.180034620
mov rcx, qword [rbx]
add rcx, 2
mov qword [rbp + 0x100], rax
test byte [rcx], 0xbf
je 0x18001ac00
lea rdx, [0x180052a74]
call fcn.1800367c4
mov qword [rbp - 0x70], rax
test rax, rax
je 0x18001ac00
mov qword [rbp + 0xc0], rax
jmp 0x18001ac00
add rdx, 2
lea r8, [rbp + 0x58]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001ac00
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 0x18001abfc
add rdx, 2
lea r8, [rbp + 0x78]
mov ecx, 0x2e
call sym.ProxyProtocol.dll_getip46
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
jmp 0x18001ac00
lea rcx, [rdx + 1]
call fcn.1800363fc
mov dword [rbp + 0x28], eax
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
mov dword [rbp + 0x4c], eax
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
mov dword [rbp - 4], eax
jmp 0x18001ac00
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001aadd
call fcn.18002baa0
mov rcx, qword [rbx]
add rcx, 2
call fcn.180034620
mov qword [rbp + 0xf8], rax
jmp 0x18001ac00
mov dword [rbp + 4], 1
jmp 0x18001ac00
lea r12, [rdx + 2]
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.180034620
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x50], 1
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.180034620
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x64], 1
jmp 0x18001ac00
lea rcx, [rdx + 2]
mov dword [rbp], 0
cmp byte [rcx], 0
je 0x18001ac00
call fcn.1800363fc
mov dword [rbp], eax
jmp 0x18001ac00
mov dword [rbp + 8], 1
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
mov dword [rbp + 0x2c], eax
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
inc eax
mov dword [rbp + 0x34], eax
jmp 0x18001ac00
lea rcx, [rdx + 2]
call fcn.1800363fc
inc eax
mov dword [rbp - 8], eax
jmp 0x18001ac00
movsx ecx, byte [rdx + 2]
sub ecx, 0x52
je 0x18001abe4
sub ecx, 0x11
je 0x18001abd6
sub ecx, 9
je 0x18001abc8
sub ecx, 6
je 0x18001abe4
cmp ecx, 1
jne case.0x18001a9b2.72
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x3c], eax
jmp 0x18001abf0
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x40], eax
jmp 0x18001abf0
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x38], eax
jmp 0x18001abf0
lea rcx, [rdx + 3]
call sym.ProxyProtocol.dll_getopts
mov dword [rbp + 0x44], eax
test esi, esi
je 0x18001ac00
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 0x18001a980
jmp 0x18001ac2d
movdqu xmm0, xmmword [rbp + 0x58]
pextrw eax, xmm0, 1
mov word [rbp + 0x5a], ax
cmp word [0x180064ff8], 0
je 0x18001acd4
test esi, esi
jne 0x18001ac48
cmp edi, r15d
je 0x18001ad45
mov rsi, qword [0x180065a48]
mov r15d, 1
mov dword [sym.ProxyProtocol.dll_haveerror], r15d
mov dword [0x18006595c], 0
test rsi, rsi
je 0x18001ac71
mov rsi, qword [rsi + 0x18]
jmp 0x18001ac78
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.180036680
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 0x18001bb04
test esi, esi
jne 0x18001ba7f
lea eax, [rdi + 3]
cmp r15d, eax
jne 0x18001ba7f
movsxd rbx, edi
mov rcx, qword [r14 + rbx*8]
cmp byte [rcx], 0x2d
je 0x18001ba7f
call fcn.1800363fc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x5a], ax
test ax, ax
je 0x18001ba7f
mov rcx, qword [r14 + rbx*8 + 0x10]
call fcn.1800363fc
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp + 0x110], ax
test ax, ax
je 0x18001ba7f
mov rcx, qword [r14 + rbx*8 + 8]
call fcn.180034620
mov qword [rbp + 0xc8], rax
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001adb6
cmp byte [rcx], 0x2d
jne 0x18001adb6
inc rcx
mov edx, 0x2b
call fcn.180027f20
mov rdi, rax
test rax, rax
je 0x18001adb6
cmp byte [rax + 1], 0
je 0x18001adb6
mov rbx, qword [rbp + 0xf8]
mov byte [rax], 0
mov rcx, qword [rbp + 0xf8]
inc rcx
call fcn.180034620
mov qword [rbp + 0x108], rax
lea rcx, [rdi + 2]
movzx eax, byte [rdi + 1]
mov byte [rbp + 0x112], al
call fcn.180034620
mov qword [rbp + 0xf8], rax
mov rcx, rbx
mov byte [rdi], 0x2b
call fcn.18002baa0
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 0x18001ae04
mov word [rbp + 0x58], si
cmp word [rbp + 0x5a], 0
jne 0x18001ae1c
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 0x18001ae3c
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 0x18001af83
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 0x18001ae60
movsxd rax, edx
imul rcx, rax, 0x68
call fcn.18002bab4
mov qword [rbp + 0xf0], rax
test rax, rax
je 0x18001af83
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x18001af77
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp - 0x60]
call rax
mov rdx, rax
test rax, rax
je 0x18001af77
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 0x18001af3c
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 0x18001af4a
inc dword [rbp + 0x10]
cmp qword [rbx + 0x38], rdi
je 0x18001af53
inc dword [rbp + 0x18]
cmp qword [rbx + 0x30], rdi
je 0x18001af5c
inc dword [rbp + 0x14]
cmp qword [rbx + 0x40], rdi
je 0x18001af65
inc dword [rbp + 0x1c]
cmp qword [rbx + 0x50], rdi
je 0x18001af6e
inc dword [rbp + 0x24]
cmp qword [rbx + 0x48], rdi
je 0x18001af77
inc dword [rbp + 0x20]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18001ae90
mov ebx, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x58]
mov dword [0x18006595c], edi
test ebx, ebx
jne 0x18001b1e7
cmp qword [rbp - 0x28], 0xffffffffffffffff
jne 0x18001b04b
test r15d, r15d
jne 0x18001afc8
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 0x18001afd0
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 0x18001aff6
lea rcx, str.socket__
call fcn.18003690c
lea eax, [r14 - 1]
jmp 0x18001bb17
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 0x18001b04f
lea rcx, str.setsockopt__
call fcn.18003690c
jmp 0x18001b04f
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 0x18001b0d5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036abc
mov r8, rax
lea rdx, str.bind__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b0ad
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
add ebx, ebx
je 0x18001b135
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 0x18001b072
test r15d, r15d
jne 0x18001b148
mov edx, dword [rbp - 0x14]
mov rcx, r14
sar edx, 4
inc edx
call qword [0x180065848]
cmp eax, 0xffffffff
jne 0x18001b14f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036abc
mov r8, rax
lea rdx, str.listen__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b12b
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffffc
jmp 0x18001bb17
mov rcx, r14
call qword [0x1800658a8]
mov eax, 0xfffffffd
jmp 0x18001bb17
mov qword [rbp + 0x190], r14
cmp dword [rbp + 4], edi
jne 0x18001b18e
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 0x18001b28b
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 0x18001b1ed
lea rdx, str.Failed_to_allocate_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
lea eax, [rdi - 7]
jmp 0x18001bb17
mov r14, qword [rbp - 0x78]
jmp 0x18001b192
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 0x18001b257
lea rdx, str.Failed_to_bind_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff9
jmp 0x18001bb17
mov edx, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x20]
sar edx, 4
inc edx
call qword [0x180065848]
cmp eax, 0xffffffff
jne 0x18001b28b
lea rdx, str.Failed_to_listen_connect_back_socket
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov eax, 0xfffffff8
jmp 0x18001bb17
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 0x18001b32b
mov r15d, 1
mov r8d, dword [rbp - 0x18]
mov r9d, dword [rbp - 0x14]
cmp r8d, r9d
jl 0x18001b321
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b30b
cmp r13d, 0x1388
jle 0x18001b30b
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 0x18001b2c3
mov r15d, dword [rsp + 0x58]
mov edx, 0x300
test ebx, ebx
jne 0x18001b3f5
cmp eax, ecx
jne 0x18001b896
test word [rbp + 0xb8], dx
je 0x18001b483
lea edx, [rbx + 1]
mov r8d, 0x3e8
lea rcx, [rbp + 0xb0]
call qword [sym.ProxyProtocol.dll_mypoll]
mov edi, eax
cmp eax, 1
jge 0x18001b3ec
test eax, eax
je 0x18001b380
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b38a
nop word [rax + rax]
mov edx, 0x300
jmp 0x18001b2b0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x18001b3a1
mov edx, 0x300
jmp 0x18001b2b0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036abc
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 0x18001b3e8
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 0x18001b896
test edi, edi
js 0x18001b896
xor eax, eax
mov edi, eax
test r15d, r15d
jne 0x18001b64d
mov dword [rsp + 0x5c], reloc.WS2_32.dll_recv
test ebx, ebx
je 0x18001b4d0
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 0x18001b483
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 0x18001b498
mov rcx, rsi
call qword [0x1800658a8]
mov rsi, 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
mov edx, 0x300
jmp 0x18001b2b0
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 0x18001b473
cmp byte [rbp + 0x3c0], 0x43
je 0x18001b58c
jmp 0x18001b473
lea r8, [rsp + 0x5c]
mov rcx, r14
lea rdx, [rbp + 0x2a8]
call qword [0x180065838]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x18001b581
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2714
je 0x18001b51b
sub eax, 0x14
je 0x18001b50e
sub eax, 0x1a
je 0x18001b50e
cmp eax, 5
jne 0x18001b520
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x18001b520
mov edi, 1
inc r13d
cmp dword [rbp + 4], 0
jne 0x18001b380
test edi, edi
jne 0x18001b53e
cmp r13d, 0x1388
jle 0x18001b380
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036abc
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 0x18001b2b0
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 0x18001b5f6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.180036abc
mov r8, rax
lea rdx, str.getsockname__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b380
lea rdx, [rbp + 0x3c0]
lea rcx, [rbp + 0x120]
call sym.ProxyProtocol.dll_dolog
mov edx, 0x300
jmp 0x18001b2b0
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 0x18001b654
mov word [rbp + 0xb8], ax
mov ecx, 0x290
call fcn.18002bab4
mov rbx, rax
test rax, rax
jne 0x18001b6af
test r15d, r15d
jne 0x18001b674
mov rcx, rsi
call qword [0x1800658a8]
mov dword [rbp + 0x1fc], reloc.WS2_32.dll_setsockopt
cmp dword [rbp + 4], edi
jne 0x18001b696
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 0x18001b2b0
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 0x18001b6c0
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
mov rcx, qword [rbp + 0x230]
test rcx, rcx
je 0x18001b731
call fcn.180034620
mov qword [rbx + 0x110], rax
mov rcx, rbx
call sym.ProxyProtocol.dll_clearstat
test r15d, r15d
jne 0x18001b742
mov qword [rbx + 0x70], rsi
mov rdx, rbx
lea rcx, [rbp - 0x60]
call sym.ProxyProtocol.dll_makefilters
cmp eax, 1
jle 0x18001b769
mov rcx, rbx
call sym.ProxyProtocol.dll_freeparam
mov ebx, dword [rsp + 0x50]
mov edx, 0x300
jmp 0x18001b2b0
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 0x18001b793
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.180036c94
inc dword [rbp - 0x18]
test rax, rax
je 0x18001b7eb
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 0x18001b83a
xor ecx, ecx
call fcn.180036998
mov r8, rax
lea rdx, str._beginthreadex__:__s
lea rcx, [rbp + 0x3c0]
call sym.ProxyProtocol.dll_sprintf
cmp dword [rbp + 4], edi
jne 0x18001b820
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 0x18001b2b0
cmp word [rbp + 0xb8], 0
jne 0x18001b2b0
mov r12d, 1
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp word [rbp + 0xb8], 0
je 0x18001b874
mov r12, qword [rsp + 0x78]
mov edx, 0x300
jmp 0x18001b2b0
cmp dword [rbp + 4], 0
mov dword [0x1800683a8], 0x21
jne 0x18001b8b7
lea rdx, str.Exiting_thread
lea rcx, [rbp + 0x120]
call qword [rbp - 0x40]
mov rcx, qword [rbp - 0x28]
cmp rcx, 0xffffffffffffffff
je 0x18001b8c7
call qword [0x1800658a8]
mov rcx, qword [rbp - 0x20]
mov qword [rbp - 0x28], 0xffffffffffffffff
cmp rcx, 0xffffffffffffffff
je 0x18001b8df
call qword [0x1800658a8]
cmp qword [rbp - 0x50], 0
mov qword [rbp - 0x20], 0xffffffffffffffff
mov dword [rbp - 0x48], reloc.WS2_32.dll_ntohs
je 0x18001b907
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp qword [rbp - 0x50], 0
jne 0x18001b8f5
mov r9, qword [rbp + 0xf0]
test r9, r9
je 0x18001b95f
mov r8d, dword [rbp + 0xc]
test r8d, r8d
je 0x18001b957
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 0x18001b952
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 0x18001b920
mov rcx, r9
call fcn.18002baa0
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x18001b970
call sym.ProxyProtocol.dll_freeacl
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x18001b990
nop dword [rax]
mov rbx, qword [rcx]
call fcn.18002baa0
mov rcx, rbx
test rbx, rbx
jne 0x18001b980
lea rcx, [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x18001b9ae
call fcn.18002baa0
mov rcx, qword [rbp + 0x100]
test rcx, rcx
je 0x18001b9bf
call fcn.18002baa0
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18001b9d0
call fcn.18002baa0
mov rcx, qword [rbp + 0x108]
test rcx, rcx
je 0x18001b9e1
call fcn.18002baa0
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 0x18001ba0e
mov rax, qword [rbp - 0x58]
mov qword [rcx + 8], rax
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x18001ba1c
mov qword [rax], rcx
jmp 0x18001ba23
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 0x18001ba49
call fcn.18002baa0
test r12, r12
je 0x18001ba56
mov rcx, r12
call fcn.18002baa0
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x18001ba67
mov rcx, rax
call fcn.18002baa0
mov rax, qword [rbp - 0x70]
test rax, rax
je 0x18001ba78
mov rcx, rax
call fcn.1800348c4
xor eax, eax
jmp 0x18001bb17
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 0x18001baa6
mov rsi, qword [rsi + 0x18]
jmp 0x18001baad
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.180036680
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.180027110
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