Function at 0x140029ea0
Capabilities:
Create thread
Set socket configuration

Disassembly:
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
push rsi
push rdi
sub rsp, 0xa68
mov rax, qword [0x140066d48]
xor rax, rsp
mov qword [rsp + 0xa50], rax
mov qword [rsp + 0x4b8], 0xffffffffffffffff
mov qword [rsp + 0x50], 0xffffffffffffffff
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x650], 0
mov qword [rsp + 0x918], 0
mov dword [rsp + 0x4b0], 1
mov dword [rsp + 0x8f8], 0
mov dword [rsp + 0x4c0], 0
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x910], 0
mov qword [rsp + 0xa28], 0
mov qword [rsp + 0x4a8], 0
mov dword [rsp + 0x4a0], 0x1388
lea rax, [rsp + 0x60]
lea rcx, 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 rdi, rax
mov rsi, rcx
mov ecx, 0x431
rep movsb byte [rdi], byte [rsi]
mov dword [rsp + 0x8f4], 1
lea rdx, [rsp + 0x660]
lea rcx, [rsp + 0x4d0]
call fcn.14002b460
mov rax, qword [0x14005f750]
mov qword [rsp + 0x500], rax
mov eax, dword [0x14005f75c]
mov dword [rsp + 0x8f8], eax
mov eax, dword [0x14005f760]
mov dword [rsp + 0x6c8], eax
mov eax, dword [rsp + 0x6c8]
mov dword [rsp + 0x4e8], eax
cmp qword [0x14005f560], 0
je 0x140029ff3
mov rcx, qword [0x14005f560]
call fcn.14002c090
mov qword [rsp + 0x610], rax
cmp qword [rsp + 0x610], 0
jne 0x140029ff3
mov dword [0x140068968], 2
cmp qword [0x14005f670], 0
je 0x14002a026
mov rcx, qword [0x14005f670]
call fcn.14002bfa0
mov qword [rsp + 0x618], rax
cmp qword [rsp + 0x618], 0
jne 0x14002a026
mov dword [0x140068968], 2
cmp qword [0x14005f590], 0
jne 0x14002a041
lea rax, [rsp + 0x4d0]
mov qword [0x14005f590], rax
jmp 0x14002a075
mov rax, qword [0x14005f590]
mov qword [rsp + 0x4d0], rax
mov rax, qword [0x14005f590]
lea rcx, [rsp + 0x4d0]
mov qword [rax + 8], rcx
mov rax, qword [0x14005f590]
mov rax, qword [rax + 8]
mov qword [0x14005f590], rax
mov dword [rsp + 0x48], 1
jmp 0x14002a089
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xa80]
cmp dword [rsp + 0x48], eax
jge 0x14002a662
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movsx eax, byte [rax]
cmp eax, 0x2d
jne 0x14002a65b
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movsx eax, byte [rax + 1]
mov dword [rsp + 0xa34], eax
mov eax, dword [rsp + 0xa34]
sub eax, 0x34
mov dword [rsp + 0xa34], eax
cmp dword [rsp + 0xa34], 0x41
ja case.0x14002a113.53
movsxd rax, dword [rsp + 0xa34]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x2b41c]
mov eax, dword [rcx + rax*4 + 0x2b3c8]
add rax, rcx
jmp rax
cmp dword [0x14005f5b4], 0
jne 0x14002a124
call qword [sym.imp.KERNEL32.dll_FreeConsole]
mov dword [0x14005f5b4], 1
jmp 0x14002a659
lea rax, [fcn.1400139b0]
mov qword [rsp + 0x4f0], rax
cmp qword [rsp + 0x630], 0
je 0x14002a15a
mov rcx, qword [rsp + 0x630]
call fcn.14003aff0
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.140053358
mov qword [rsp + 0x630], rax
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movsx eax, byte [rax + 2]
test eax, eax
je 0x14002a1fb
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movsx eax, byte [rax + 2]
cmp eax, 0x40
jne 0x14002a1b4
jmp 0x14002a1fb
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
lea rdx, [0x1400640d4]
mov rcx, rax
call fcn.14003a1f4
mov qword [rsp + 0x4a8], rax
cmp qword [rsp + 0x4a8], 0
je 0x14002a1fb
mov rax, qword [rsp + 0x4a8]
mov qword [rsp + 0x5f0], rax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
lea r8, [rsp + 0x588]
mov rdx, rax
mov ecx, 0x2e
call fcn.140014be0
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
lea r8, [rsp + 0x598]
mov rdx, rax
mov ecx, 0x2e
call fcn.140014be0
test eax, eax
jne 0x14002a26a
mov dword [rsp + 0xa38], 1
jmp 0x14002a275
mov dword [rsp + 0xa38], 0
mov eax, dword [rsp + 0xa38]
mov dword [rsp + 0x650], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
lea r8, [rsp + 0x5a8]
mov rdx, rax
mov ecx, 0x2e
call fcn.140014be0
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
movzx ecx, ax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x58a], ax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
inc rax
mov rcx, rax
call fcn.14003b864
mov dword [rsp + 0x558], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
mov dword [rsp + 0x57c], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
mov dword [rsp + 0x52c], eax
jmp 0x14002a659
cmp qword [rsp + 0x628], 0
je 0x14002a37c
mov rcx, qword [rsp + 0x628]
call fcn.14003aff0
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.140053358
mov qword [rsp + 0x628], rax
jmp 0x14002a659
mov dword [rsp + 0x534], 1
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov qword [rsp + 0x918], rax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.140053358
mov qword [rsp + 0x910], rax
mov dword [rsp + 0x44], 1
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.140053358
mov qword [rsp + 0xa28], rax
mov dword [rsp + 0x4c0], 1
jmp 0x14002a659
mov dword [rsp + 0x530], 0
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movsx eax, byte [rax + 2]
test eax, eax
je 0x14002a487
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
mov dword [rsp + 0x530], eax
jmp 0x14002a659
mov dword [rsp + 0x538], 1
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
mov dword [rsp + 0x55c], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
inc eax
mov dword [rsp + 0x564], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 2
mov rcx, rax
call fcn.14003b864
inc eax
mov dword [rsp + 0x528], eax
jmp 0x14002a659
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 2]
mov byte [rsp + 0xa3c], al
cmp byte [rsp + 0xa3c], 0x52
je 0x14002a611
cmp byte [rsp + 0xa3c], 0x63
je 0x14002a59f
cmp byte [rsp + 0xa3c], 0x6c
je 0x14002a5c5
cmp byte [rsp + 0xa3c], 0x72
je 0x14002a5eb
cmp byte [rsp + 0xa3c], 0x73
je 0x14002a576
jmp 0x14002a637
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 3
mov rcx, rax
call fcn.140029d40
mov dword [rsp + 0x56c], eax
jmp 0x14002a642
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 3
mov rcx, rax
call fcn.140029d40
mov dword [rsp + 0x568], eax
jmp 0x14002a642
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 3
mov rcx, rax
call fcn.140029d40
mov dword [rsp + 0x570], eax
jmp 0x14002a642
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 3
mov rcx, rax
call fcn.140029d40
mov dword [rsp + 0x574], eax
jmp 0x14002a642
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0xa88]
mov rax, qword [rcx + rax*8]
add rax, 3
mov rcx, rax
call fcn.140029d40
mov dword [rsp + 0x574], eax
jmp 0x14002a642
mov dword [rsp + 0x650], 1
cmp dword [rsp + 0x650], 0
jne case.0x14002a113.53
jmp 0x14002a659
mov dword [rsp + 0x650], 1
jmp 0x14002a65d
jmp 0x14002a662
jmp 0x14002a07f
movzx eax, word [0x14005f758]
test eax, eax
je 0x14002a6a2
cmp dword [rsp + 0x650], 0
jne 0x14002a684
mov eax, dword [rsp + 0xa80]
cmp dword [rsp + 0x48], eax
je 0x14002a6a2
mov dword [0x140068968], 1
mov dword [0x14005f59c], 0
mov eax, 1
jmp 0x14002b3ae
lea rdx, [rsp + 0x660]
lea rcx, [rsp + 0x4d0]
call fcn.14002b700
movzx eax, word [rsp + 0x588]
test eax, eax
jne 0x14002a6d0
mov eax, 2
mov word [rsp + 0x588], ax
movzx eax, word [rsp + 0x58a]
test eax, eax
jne 0x14002a6f1
movzx ecx, word [0x14005f758]
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x58a], ax
mov eax, 2
mov word [rsp + 0x598], ax
cmp qword [rsp + 0x918], 0
je 0x14002a726
movzx r8d, word [0x14005f758]
lea rdx, [rsp + 0x660]
mov rcx, qword [rsp + 0x918]
call fcn.140013d60
lea rdx, [rsp + 0x4d0]
mov rcx, qword [0x14005f668]
call fcn.14002c710
mov dword [0x14005f59c], 0
cmp dword [rsp + 0x44], 0
jne 0x14002a9ee
cmp qword [rsp + 0x508], 0xffffffffffffffff
jne 0x14002a84a
cmp dword [rsp + 0x8f8], 0
jne 0x14002a7a4
mov eax, 1
mov word [rsp + 0xa30], ax
movzx eax, word [0x14005f53c]
mov word [rsp + 0xa32], ax
mov r8d, 6
mov edx, 1
mov ecx, 2
call qword [0x14005f6b0]
mov qword [rsp + 0x4b8], rax
jmp 0x14002a7c2
mov r8d, reloc.WS2_32.dll_recvfrom
mov edx, 2
mov ecx, 2
call qword [0x14005f6b0]
mov qword [rsp + 0x4b8], rax
cmp qword [rsp + 0x4b8], 0xffffffffffffffff
jne 0x14002a7d7
mov eax, 0xfffffffe
jmp 0x14002b3ae
mov edx, dword [rsp + 0x570]
mov rcx, qword [rsp + 0x4b8]
call fcn.140029dd0
lea r8, [rsp + 0x8f4]
mov edx, 0x8004667e
mov rcx, qword [rsp + 0x4b8]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov rax, qword [rsp + 0x4b8]
mov qword [rsp + 0x508], rax
mov dword [rsp + 0x4b0], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x4b0]
mov r8d, 4
mov edx, 0xffff
mov rcx, qword [rsp + 0x4b8]
call qword [0x14005f6f0]
mov dword [rsp + 0x8f0], 0x10
mov dword [rsp + 0xa20], 0x64
jmp 0x14002a86f
mov ecx, dword [rsp + 0xa20]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x588]
mov rcx, qword [rsp + 0x4b8]
call qword [0x14005f6c0]
cmp eax, 0xffffffff
jne 0x14002a90a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.14003cafc
mov r8, rax
lea rdx, str.bind__:__s
lea rcx, [rsp + 0x920]
call fcn.14003ae98
cmp dword [rsp + 0x534], 0
jne 0x14002a8d3
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov eax, dword [rsp + 0xa20]
shl eax, 1
mov dword [rsp + 0xa20], eax
cmp dword [rsp + 0xa20], 0
jne 0x14002a905
mov rcx, qword [rsp + 0x4b8]
call qword [0x14005f728]
mov eax, 0xfffffffd
jmp 0x14002b3ae
jmp 0x14002a862
cmp dword [rsp + 0x8f8], 0
jne 0x14002a984
mov eax, dword [rsp + 0x51c]
sar eax, 4
inc eax
mov edx, eax
mov rcx, qword [rsp + 0x4b8]
call qword [0x14005f6c8]
cmp eax, 0xffffffff
jne 0x14002a982
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.14003cafc
mov r8, rax
lea rdx, str.listen__:__s
lea rcx, [rsp + 0x920]
call fcn.14003ae98
cmp dword [rsp + 0x534], 0
jne 0x14002a978
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov eax, 0xfffffffc
jmp 0x14002b3ae
jmp 0x14002a994
mov rax, qword [rsp + 0x4b8]
mov qword [rsp + 0x6d0], rax
cmp dword [rsp + 0x534], 0
jne 0x14002a9ee
cmp dword [rsp + 0x44], 0
jne 0x14002a9ee
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rsp + 0xa40], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [rsp + 0xa40]
mov r9d, ecx
mov r8d, eax
lea rdx, str.Accepting_connections___u__u_
lea rcx, [rsp + 0x920]
call fcn.14003ae98
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
cmp dword [rsp + 0x4c0], 0
je 0x14002ab25
lea r8, [rsp + 0x900]
mov rdx, qword [rsp + 0xa28]
mov ecx, dword [rsp + 0x558]
call fcn.140013bc0
mov r8d, 6
mov edx, 1
mov ecx, 2
call qword [0x14005f6b0]
mov qword [rsp + 0x510], rax
cmp qword [rsp + 0x510], 0xffffffffffffffff
jne 0x14002aa5f
lea rdx, str.Failed_to_allocate_connect_back_socket
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov eax, 0xfffffffa
jmp 0x14002b3ae
mov dword [rsp + 0x4b0], 1
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x4b0]
mov r8d, 4
mov edx, 0xffff
mov rcx, qword [rsp + 0x510]
call qword [0x14005f6f0]
mov edx, dword [rsp + 0x578]
mov rcx, qword [rsp + 0x510]
call fcn.140029dd0
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x900]
mov rcx, qword [rsp + 0x510]
call qword [0x14005f6c0]
cmp eax, 0xffffffff
jne 0x14002aae6
lea rdx, str.Failed_to_bind_connect_back_socket
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov eax, 0xfffffff9
jmp 0x14002b3ae
mov eax, dword [rsp + 0x51c]
sar eax, 4
inc eax
mov edx, eax
mov rcx, qword [rsp + 0x510]
call qword [0x14005f6c8]
cmp eax, 0xffffffff
jne 0x14002ab25
lea rdx, str.Failed_to_listen_connect_back_socket
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov eax, 0xfffffff8
jmp 0x14002b3ae
mov rax, qword [rsp + 0x4b8]
mov qword [rsp + 0x5e0], rax
mov eax, 0x300
mov word [rsp + 0x5e8], ax
mov eax, dword [rsp + 0x520]
cmp dword [0x14005f5ac], eax
jne 0x14002abe0
mov eax, dword [rsp + 0x51c]
cmp dword [rsp + 0x518], eax
jl 0x14002abe0
mov eax, dword [rsp + 0x4a0]
inc eax
mov dword [rsp + 0x4a0], eax
cmp dword [rsp + 0x534], 0
jne 0x14002abd0
cmp dword [rsp + 0x4a0], 0x1388
jle 0x14002abd0
mov r9d, dword [rsp + 0x51c]
mov r8d, dword [rsp + 0x518]
lea rdx, str.Warning:_too_many_connected_clients___d__d_
lea rcx, [rsp + 0x920]
call fcn.14003ae98
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov dword [rsp + 0x4a0], 0
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
cmp dword [rsp + 0x44], 0
je 0x14002abec
jmp 0x14002acdc
mov eax, dword [rsp + 0x520]
cmp dword [0x14005f5ac], eax
je 0x14002ac00
jmp 0x14002acdc
movsx eax, word [rsp + 0x5e8]
and eax, 0x300
test eax, eax
je 0x14002ac33
mov r8d, 0x3e8
mov edx, 1
lea rcx, [rsp + 0x5e0]
call qword [0x14005f6f8]
mov dword [rsp + 0x650], eax
jmp 0x14002ac43
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
cmp dword [rsp + 0x650], 1
jl 0x14002ac52
jmp 0x14002acdc
cmp dword [rsp + 0x650], 0
jne 0x14002ac61
jmp 0x14002ab42
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14002acd7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14002acd7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0xa44], eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.14003cafc
mov ecx, dword [rsp + 0xa44]
mov r9d, ecx
mov r8, rax
lea rdx, str.poll__:__s__d
lea rcx, [rsp + 0x920]
call fcn.14003ae98
cmp dword [rsp + 0x534], 0
jne 0x14002acd5
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
jmp 0x14002acdc
jmp 0x14002ab42
mov eax, dword [rsp + 0x520]
cmp dword [0x14005f5ac], eax
jne 0x14002acf5
cmp dword [rsp + 0x650], 0
jge 0x14002acfa
jmp 0x14002b2b7
mov dword [rsp + 0x650], 0
cmp dword [rsp + 0x8f8], 0
jne 0x14002b025
mov dword [rsp + 0x8f0], 0x10
cmp dword [rsp + 0x44], 0
je 0x14002ae38
mov r8d, 6
mov edx, 1
mov ecx, 2
call qword [0x14005f6b0]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0xffffffffffffffff
je 0x14002ae23
mov edx, dword [rsp + 0x574]
mov rcx, qword [rsp + 0x50]
call fcn.140029dd0
lea r8, [rsp + 0x7e8]
mov rdx, qword [rsp + 0x910]
mov ecx, dword [rsp + 0x558]
call fcn.140013bc0
mov r9d, 9
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x7e8]
mov rcx, qword [rsp + 0x50]
call fcn.140014350
test eax, eax
je 0x14002adc3
mov rcx, qword [rsp + 0x50]
call qword [0x14005f728]
mov qword [rsp + 0x50], 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
mov dword [rsp + 0x20], 0xea60
mov r9d, 1
lea r8, [rsp + 0x920]
lea rdx, [rsp + 0x7e8]
mov rcx, qword [rsp + 0x50]
call fcn.14001be50
cmp eax, 1
jne 0x14002adfd
movzx eax, byte [rsp + 0x920]
cmp eax, 0x43
je 0x14002ae21
mov rcx, qword [rsp + 0x50]
call qword [0x14005f728]
mov qword [rsp + 0x50], 0xffffffffffffffff
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
jmp 0x14002ae33
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
jmp 0x14002af4d
lea r8, [rsp + 0x8f0]
lea rdx, [rsp + 0x7e8]
mov rcx, qword [rsp + 0x4b8]
call qword [0x14005f6b8]
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0xffffffffffffffff
jne 0x14002af3c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rsp + 0xa48], eax
cmp dword [rsp + 0xa48], 0x2714
je 0x14002aeb7
cmp dword [rsp + 0xa48], 0x2728
je 0x14002aeaa
cmp dword [rsp + 0xa48], 0x2742
je 0x14002aeaa
cmp dword [rsp + 0xa48], 0x2747
je 0x14002aeaa
jmp 0x14002aec2
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002aec2
mov dword [rsp + 0x650], 1
mov eax, dword [rsp + 0x4a0]
inc eax
mov dword [rsp + 0x4a0], eax
cmp dword [rsp + 0x534], 0
jne 0x14002af37
cmp dword [rsp + 0x650], 0
jne 0x14002aef3
cmp dword [rsp + 0x4a0], 0x1388
jle 0x14002af37
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.14003cafc
mov r8, rax
lea rdx, str.accept__:__s
lea rcx, [rsp + 0x920]
call fcn.14003ae98
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov dword [rsp + 0x4a0], 0
jmp 0x14002ab42
mov edx, dword [rsp + 0x568]
mov rcx, qword [rsp + 0x50]
call fcn.140029dd0
mov dword [rsp + 0x8f0], 0x10
lea r8, [rsp + 0x8f0]
lea rdx, [rsp + 0x7d8]
mov rcx, qword [rsp + 0x50]
call qword [0x14005f6e0]
test eax, eax
je 0x14002afbf
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.14003cafc
mov r8, rax
lea rdx, str.getsockname__:__s
lea rcx, [rsp + 0x920]
call fcn.14003ae98
cmp dword [rsp + 0x534], 0
jne 0x14002afba
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
jmp 0x14002ab42
lea r8, [rsp + 0x8f4]
mov edx, 0x8004667e
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0xa30]
mov r8d, 0x80
mov edx, 0xffff
mov rcx, qword [rsp + 0x50]
call qword [0x14005f6f0]
mov dword [rsp + 0x20], 4
lea r9, [rsp + 0x4b0]
mov r8d, pe_nt_image_headers64
mov edx, 0xffff
mov rcx, qword [rsp + 0x50]
call qword [0x14005f6f0]
jmp 0x14002b02f
xor eax, eax
mov word [rsp + 0x5e8], ax
mov ecx, 0x290
call fcn.14003af38
mov qword [rsp + 0x38], rax
cmp qword [rsp + 0x38], 0
jne 0x14002b094
cmp dword [rsp + 0x8f8], 0
jne 0x14002b05b
mov rcx, qword [rsp + 0x50]
call qword [0x14005f728]
mov dword [rsp + 0x73c], 0x15
cmp dword [rsp + 0x534], 0
jne 0x14002b084
lea rdx, str.Memory_Allocation_Failed
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002ab42
lea rax, [rsp + 0x660]
mov rdi, qword [rsp + 0x38]
mov rsi, rax
mov ecx, 0x290
rep movsb byte [rdi], byte [rsi]
cmp qword [rsp + 0x770], 0
je 0x14002b0cf
mov rcx, qword [rsp + 0x770]
call fcn.140053358
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x110], rax
mov rcx, qword [rsp + 0x38]
call fcn.140011f20
cmp dword [rsp + 0x8f8], 0
jne 0x14002b0f1
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x70], rcx
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x4d0]
call fcn.14002ca20
cmp eax, 1
jle 0x14002b117
mov rcx, qword [rsp + 0x38]
call fcn.14002bb60
jmp 0x14002ab42
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
mov rax, qword [rsp + 0x38]
mov qword [rax + 8], 0
mov dword [rsp + 0x650], 0
lea rcx, [rsp + 0x5b8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [rsp + 0x4e0], 0
jne 0x14002b163
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x4e0], rax
jmp 0x14002b191
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x4e0]
mov qword [rax], rcx
mov rax, qword [rsp + 0x4e0]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 8], rcx
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x4e0], rax
mov eax, dword [rsp + 0x55c]
add eax, 0x4000
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0
mov r9, qword [rsp + 0x38]
lea r8, [0x140029a50]
mov edx, eax
xor ecx, ecx
call fcn.14003c0e0
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x518]
inc eax
mov dword [rsp + 0x518], eax
cmp qword [rsp + 0x30], 0
je 0x14002b1fd
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x40]
mov dword [rax + 0xe8], ecx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002b245
xor ecx, ecx
call fcn.14003c9a8
mov r8, rax
lea rdx, str._beginthreadex__:__s
lea rcx, [rsp + 0x920]
call fcn.14003ae98
cmp dword [rsp + 0x534], 0
jne 0x14002b23a
lea rdx, [rsp + 0x920]
lea rcx, [rsp + 0x660]
call fcn.140011eb0
mov dword [rsp + 0x650], 1
lea rcx, [rsp + 0x5b8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [rsp + 0x650], 0
je 0x14002b267
mov rcx, qword [rsp + 0x38]
call fcn.14002bb60
lea rax, [rsp + 0x7d8]
mov rdi, rax
xor eax, eax
mov ecx, reloc.WS2_32.dll_recv
rep stosb byte [rdi], al
lea rax, [rsp + 0x7e8]
mov rdi, rax
xor eax, eax
mov ecx, reloc.WS2_32.dll_recv
rep stosb byte [rdi], al
cmp dword [rsp + 0x8f8], 0
je 0x14002b2b2
movsx eax, word [rsp + 0x5e8]
test eax, eax
jne 0x14002b2b2
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x14002b299
jmp 0x14002ab42
cmp dword [rsp + 0x534], 0
jne 0x14002b2d7
lea rdx, str.Exiting_thread
lea rcx, [rsp + 0x660]
call qword [rsp + 0x4f0]
lea rcx, [rsp + 0x4d0]
call fcn.14002b960
lea rcx, [0x14006a300]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [rsp + 0x4d0], 0
je 0x14002b310
mov rax, qword [rsp + 0x4d0]
mov rcx, qword [rsp + 0x4d8]
mov qword [rax + 8], rcx
cmp qword [rsp + 0x4d8], 0
je 0x14002b330
mov rax, qword [rsp + 0x4d8]
mov rcx, qword [rsp + 0x4d0]
mov qword [rax], rcx
jmp 0x14002b33f
mov rax, qword [rsp + 0x4d0]
mov qword [0x14005f590], rax
lea rcx, [0x14006a300]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp qword [rsp + 0x770], 0
je 0x14002b364
mov rcx, qword [rsp + 0x770]
call fcn.14003aff0
cmp qword [rsp + 0x910], 0
je 0x14002b37c
mov rcx, qword [rsp + 0x910]
call fcn.14003aff0
cmp qword [rsp + 0xa28], 0
je 0x14002b394
mov rcx, qword [rsp + 0xa28]
call fcn.14003aff0
cmp qword [rsp + 0x4a8], 0
je 0x14002b3ac
mov rcx, qword [rsp + 0x4a8]
call fcn.14003a0b4
xor eax, eax
mov rcx, qword [rsp + 0xa50]
xor rcx, rsp
call fcn.140038600
add rsp, 0xa68
pop rdi
pop rsi
ret