Function at 0x1404cafe0
Capabilities:
Convert ip address from string

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x180
lea rdi, [rsp + 0x30]
mov ecx, 0x54
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x190]
mov rax, qword [0x140814ac0]
xor rax, rsp
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x190]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x198]
add rax, 0x10
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0xb4]
cmp eax, 5
jne 0x1404cb062
mov dword [rsp + 0x168], 1
jmp 0x1404cb06d
mov dword [rsp + 0x168], 0
cmp dword [rsp + 0x168], 0
jne 0x1404cb084
mov dword [rsp + 0x16c], 0
jmp 0x1404cb08f
mov dword [rsp + 0x16c], 1
movzx eax, byte [rsp + 0x16c]
mov byte [rsp + 0x50], al
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x270]
call fcn.1401d91f0
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x1a0]
movzx eax, byte [rax + 0x6ab]
mov byte [rsp + 0x68], al
mov byte [rsp + 0x69], 0
mov qword [rsp + 0x78], 0
movzx eax, byte [rsp + 0x68]
and eax, 5
test eax, eax
jne 0x1404cb105
mov r8d, 0x251
lea rdx, [0x1407ed410]
lea rcx, str.auth______unsigned_long_1___0______unsigned_long_1___2__
call fcn.1401d5938
xor eax, eax
mov rax, qword [rsp + 0x198]
mov eax, dword [rax]
mov dword [rsp + 0x170], eax
mov eax, dword [rsp + 0x170]
dec eax
mov dword [rsp + 0x170], eax
cmp dword [rsp + 0x170], 0xf
ja case.0x1404cb14d.5
movsxd rax, dword [rsp + 0x170]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x4cc6ec]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3a0]
test eax, eax
je 0x1404cb192
mov rax, qword [rsp + 0x198]
mov r9d, dword [rax + 0x278]
mov rax, qword [rsp + 0x198]
mov r8, qword [rax + 0x270]
lea rdx, str.SOCKS5:_connecting_to_HTTP_proxy__s_port__d
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x1404cb1c4
cmp qword [rsp + 0x58], 0xff
jbe 0x1404cb1c4
lea rdx, str.SOCKS5:_the_destination_hostname_is_too_long_to_be_resolved_remotely_by_the_proxy.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 9
jmp 0x1404cc6bc
movzx eax, byte [rsp + 0x68]
and eax, 0xfffffffa
test eax, eax
je 0x1404cb1ed
movzx eax, byte [rsp + 0x68]
mov r8d, eax
lea rdx, str.warning:_unsupported_value_passed_to_CURLOPT_SOCKS5_AUTH:__u
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
movzx eax, byte [rsp + 0x68]
and eax, 1
test eax, eax
jne 0x1404cb20c
mov rax, qword [rsp + 0x198]
mov qword [rax + 0x280], 0
movzx eax, byte [rsp + 0x68]
and eax, 4
test eax, eax
je 0x1404cb21d
mov byte [rsp + 0x69], 1
mov qword [rsp + 0x40], 0
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 5
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 0
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
movzx eax, byte [rsp + 0x69]
test eax, eax
je 0x1404cb29c
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x280], 0
je 0x1404cb2ce
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 2
mov rax, qword [rsp + 0x40]
inc rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
sub rax, 2
mov ecx, 1
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x38]
mov byte [rdx + rcx], al
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
cmp qword [rsp + 0x40], 0x258
jbe 0x1404cb322
mov r8d, 0x277
lea rdx, [0x1407ed5f0]
lea rcx, str.idx___sizeof_sx__buffer_
call fcn.1401d5938
xor eax, eax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 8], rcx
lea rax, [0x1407ed6b8]
mov qword [rsp + 0x20], rax
mov r9d, 0x1d
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404c9fd0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cb378
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cb38e
xor eax, eax
jmp 0x1404cc6bc
mov r9d, 0x281
mov r8d, 4
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp case.0x1404cb14d.3
lea rax, str.initial_SOCKS5_request
mov qword [rsp + 0x20], rax
mov r9d, 0x1d
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404c9fd0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cb3f7
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cb40d
xor eax, eax
jmp 0x1404cc6bc
xor eax, eax
test eax, eax
jne 0x1404cb40d
mov rax, qword [rsp + 0x198]
mov qword [rax + 8], 2
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
xor eax, eax
test eax, eax
jne 0x1404cb437
lea rax, str.initial_SOCKS5_response
mov qword [rsp + 0x20], rax
mov r9d, reloc.WS2_32.dll_ntohs
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404ca130
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cb485
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cb4a0
xor eax, eax
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404cb4da
lea rdx, str.Received_invalid_version_in_initial_SOCKS5_response.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 2
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x1404cb51c
mov r9d, 0x2a1
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp case.0x1404cb14d.9
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 2
jne 0x1404cb55f
mov r9d, 0x2a6
mov r8d, 6
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp case.0x1404cb14d.6
movzx eax, byte [rsp + 0x69]
test eax, eax
je 0x1404cb5e0
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cb5e0
mov r9d, 0x2ab
mov r8d, 5
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
call fcn.1401da028
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
je 0x1404cb5de
lea rdx, str.Unable_to_negotiate_SOCKS5_GSS_API_context.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 4
jmp 0x1404cc6bc
jmp 0x1404cb657
movzx eax, byte [rsp + 0x69]
test eax, eax
jne 0x1404cb620
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cb620
lea rdx, str.SOCKS5_GSSAPI_per_message_authentication_is_not_supported.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 5
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 0xff
jne 0x1404cb657
lea rdx, str.No_authentication_method_was_acceptable.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, ntohl
jmp 0x1404cc6bc
lea rdx, str.Undocumented_SOCKS5_mode_attempted_to_be_used_by_server.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 0x20
jmp 0x1404cc6bc
jmp 0x1404cc6a6
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x280], 0
je 0x1404cb6dd
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x288], 0
je 0x1404cb6dd
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x280]
call fcn.1401d91f0
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x288]
call fcn.1401d91f0
mov qword [rsp + 0x90], rax
jmp 0x1404cb6f5
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x88]
mov byte [rax], cl
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x280], 0
je 0x1404cb7be
cmp qword [rsp + 0x88], 0
je 0x1404cb7be
cmp qword [rsp + 0x88], 0xff
jbe 0x1404cb78e
lea rdx, str.Excessive_username_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, ntohl
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rcx + 0x280]
mov rcx, rax
call fcn.1401d9777
nop
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x90]
mov byte [rax], cl
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x288], 0
je 0x1404cb876
cmp qword [rsp + 0x90], 0
je 0x1404cb876
cmp qword [rsp + 0x90], 0xff
jbe 0x1404cb846
lea rdx, str.Excessive_password_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 0xa
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rcx + 0x288]
mov rcx, rax
call fcn.1401d9777
nop
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov r9d, 0x2f5
mov r8d, 7
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cb8d5
mov r8d, 0x2f6
lea rdx, [0x1407ed880]
lea rcx, [0x1407ed910]
call fcn.1401d5938
xor eax, eax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 8], rcx
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
xor eax, eax
test eax, eax
jne 0x1404cb8fa
lea rax, str.SOCKS5_sub_negotiation_request
mov qword [rsp + 0x20], rax
mov r9d, 0x1c
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404c9fd0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cb945
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cb95b
xor eax, eax
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
mov rax, qword [rsp + 0x198]
mov qword [rax + 8], 2
mov r9d, 0x306
mov r8d, 8
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
xor eax, eax
test eax, eax
jne 0x1404cb9a1
lea rax, str.SOCKS5_sub_negotiation_response
mov qword [rsp + 0x20], rax
mov r9d, reloc.WS2_32.dll_ntohl
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404ca130
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cb9ec
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cba04
xor eax, eax
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404cba62
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
mov ecx, 1
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x38]
movzx ecx, byte [rdx + rcx]
mov r9d, eax
mov r8d, ecx
lea rdx, str.User_was_rejected_by_the_SOCKS5_server___d__d_.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 0x21
jmp 0x1404cc6bc
mov r9d, 0x319
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
xor eax, eax
test eax, eax
jne 0x1404cba84
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x1404cbb43
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
mov r9b, 1
mov rax, qword [rsp + 0x198]
mov r8d, dword [rax + 0x278]
mov rax, qword [rsp + 0x198]
mov rdx, qword [rax + 0x270]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401d74d6
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0xffffffff
jne 0x1404cbaea
mov eax, 0x1b
jmp 0x1404cc6bc
cmp dword [rsp + 0x98], 1
jne 0x1404cbb1c
mov r9d, 0x325
mov r8d, 0xa
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
xor eax, eax
jmp 0x1404cc6bc
mov r9d, 0x328
mov r8d, ntohl
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp case.0x1404cb14d.11
jmp case.0x1404cb14d.12
mov rax, qword [rsp + 0x198]
mov r8d, dword [rax + 0x278]
mov rax, qword [rsp + 0x198]
mov rdx, qword [rax + 0x270]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401ddc6e
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x78], 0
je 0x1404cbbc7
mov rax, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0xd38], rcx
mov rax, qword [rsp + 0x1a0]
mov byte [rax + 0xd58], 1
mov rax, qword [rsp + 0x198]
mov r8, qword [rax + 0x270]
lea rdx, str.SOCKS5:_hostname__s_found
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
cmp qword [rsp + 0x78], 0
jne 0x1404cbc05
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401d7459
mov dword [rsp + 0x48], eax
cmp qword [rsp + 0x78], 0
jne 0x1404cbc05
cmp dword [rsp + 0x48], 0
je 0x1404cbbfe
mov eax, 0x1b
jmp 0x1404cc6bc
xor eax, eax
jmp 0x1404cc6bc
xor eax, eax
test eax, eax
jne 0x1404cbc05
mov qword [rsp + 0xe8], 0
cmp qword [rsp + 0x78], 0
je 0x1404cbc2f
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x1a0]
movzx eax, byte [rax + 0x6e0]
test eax, eax
je 0x1404cbcb1
mov rax, qword [rsp + 0x1a0]
movzx eax, byte [rax + 0x6e0]
cmp eax, 1
jne 0x1404cbc63
mov dword [rsp + 0x174], 2
jmp 0x1404cbc6e
mov dword [rsp + reloc.WS2_32.dll_socket4], 0x17
mov eax, dword [rsp + 0x174]
mov dword [rsp + 0xf0], eax
cmp qword [rsp + 0xe8], 0
je 0x1404cbcb1
mov rax, qword [rsp + 0xe8]
mov ecx, dword [rsp + 0xf0]
cmp dword [rax + 4], ecx
je 0x1404cbcb1
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0xe8], rax
jmp 0x1404cbc7c
cmp qword [rsp + 0xe8], 0
jne 0x1404cbce9
mov rax, qword [rsp + 0x198]
mov r8, qword [rax + 0x270]
lea rdx, str.Failed_to_resolve___s__for_SOCKS5_connect.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 0x1b
jmp 0x1404cc6bc
mov r8d, 0x2e
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0xe8]
call fcn.1401dbc66
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 5
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 0
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe8]
cmp dword [rax + 4], 2
jne 0x1404cbe41
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xf8], rax
mov dword [rsp + 0xf4], 0
jmp 0x1404cbdd0
mov eax, dword [rsp + 0xf4]
inc eax
mov dword [rsp + 0xf4], eax
cmp dword [rsp + 0xf4], 4
jge 0x1404cbe10
movsxd rax, dword [rsp + 0xf4]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
add rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0xf8]
movzx eax, byte [rdx + rax + 4]
mov byte [rcx], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x1404cbdc0
mov rax, qword [rsp + 0x198]
mov r9d, dword [rax + 0x278]
lea r8, [rsp + 0xa8]
lea rdx, str.SOCKS5_connect_to__s:_d__locally_resolved_
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
jmp 0x1404cbf3b
mov rax, qword [rsp + 0xe8]
cmp dword [rax + 4], 0x17
jne 0x1404cbf12
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 4
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x108], rax
mov dword [rsp + 0x100], 0
jmp 0x1404cbea4
mov eax, dword [rsp + 0x100]
inc eax
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0x10
jge 0x1404cbee4
movsxd rax, dword [rsp + 0x100]
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
add rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0x108]
movzx eax, byte [rdx + rax + 8]
mov byte [rcx], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
jmp 0x1404cbe94
mov rax, qword [rsp + 0x198]
mov r9d, dword [rax + 0x278]
lea r8, [rsp + 0xa8]
lea rdx, str.SOCKS5_connect_to___s_:_d__locally_resolved_
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
jmp 0x1404cbf3b
mov qword [rsp + 0xe8], 0
lea r8, [rsp + 0xa8]
lea rdx, str.SOCKS5_connection_to__s_not_supported
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
nop
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401debff
nop
jmp case.0x1404cb14d.13
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 5
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 0
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x1404cc19f
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3ab]
test eax, eax
je 0x1404cc067
lea r8, [rsp + 0x138]
mov rax, qword [rsp + 0x198]
mov rdx, qword [rax + 0x270]
mov ecx, reloc.WS2_32.dll_socket
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
je 0x1404cc00e
mov eax, 1
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 4
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rsp + 0x138]
mov rcx, rax
call fcn.1401d9777
mov rax, qword [rsp + 0x60]
add rax, 0x10
mov qword [rsp + 0x60], rax
jmp 0x1404cc16c
lea r8, [rsp + 0x114]
mov rax, qword [rsp + 0x198]
mov rdx, qword [rax + 0x270]
mov ecx, 2
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x1404cc0e7
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 1
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov r8d, 4
lea rdx, [rsp + 0x114]
mov rcx, rax
call fcn.1401d9777
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x60], rax
jmp 0x1404cc16c
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov byte [rax], 3
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
movzx ecx, byte [rsp + 0x58]
mov byte [rax], cl
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x198]
mov rdx, qword [rcx + 0x270]
mov rcx, rax
call fcn.1401d9777
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x198]
mov r9d, dword [rax + 0x278]
mov rax, qword [rsp + 0x198]
mov r8, qword [rax + 0x270]
lea rdx, str.SOCKS5_connect_to__s:_d__remotely_resolved_
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
nop
xor eax, eax
test eax, eax
jne 0x1404cc19f
mov rax, qword [rsp + 0x198]
mov eax, dword [rax + 0x278]
sar eax, 8
and eax, 0xff
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
add rdx, rcx
mov rcx, rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x198]
mov eax, dword [rax + 0x278]
and eax, 0xff
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x38]
add rdx, rcx
mov rcx, rdx
mov byte [rcx], al
mov rax, qword [rsp + 0x60]
inc rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
je 0x1404cc238
lea rdx, [0x1407edac0]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 6
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cc272
mov r8d, 0x3b9
lea rdx, [0x1407edaf0]
lea rcx, [0x1407edb80]
call fcn.1401d5938
xor eax, eax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 8], rcx
mov r9d, 0x3bb
mov r8d, reloc.WS2_32.dll_ntohl
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
xor eax, eax
test eax, eax
jne 0x1404cc2a5
lea rax, str.SOCKS5_connect_request
mov qword [rsp + 0x20], rax
mov r9d, 0x1e
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404c9fd0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cc2f0
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cc306
xor eax, eax
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
je 0x1404cc332
lea rdx, str.SOCKS5_GSS_API_protection_not_yet_implemented.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 6
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
mov qword [rax + 8], 0xa
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
mov r9d, 0x3ce
mov r8d, reloc.WS2_32.dll_ntohs
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
xor eax, eax
test eax, eax
jne 0x1404cc378
lea rax, str.SOCKS5_connect_request_ack
mov qword [rsp + 0x20], rax
mov r9d, reloc.WS2_32.dll_recv
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404ca130
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cc3c6
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cc3e1
xor eax, eax
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404cc41b
lea rdx, str.SOCKS5_reply_has_wrong_version__version_should_be_5.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 2
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404cc4c0
mov dword [rsp + 0x154], 0x19
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x158], eax
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
mov r9d, eax
mov rax, qword [rsp + 0x198]
mov r8, qword [rax + 0x270]
lea rdx, str.cannot_complete_SOCKS5_connection_to__s.___d_
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
cmp dword [rsp + 0x158], 9
jge 0x1404cc4b4
movsxd rax, dword [rsp + 0x158]
lea rcx, [0x140630f00]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x154]
jmp 0x1404cc6bc
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 3
jne 0x1404cc503
mov eax, 1
imul rax, rax, 4
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
mov dword [rsp + 0x15c], eax
mov eax, dword [rsp + 0x15c]
add eax, 7
cdqe
mov qword [rsp + 0x60], rax
jmp 0x1404cc565
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 4
jne 0x1404cc525
mov qword [rsp + 0x60], socket
jmp 0x1404cc565
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cc547
mov qword [rsp + 0x60], 0xa
jmp 0x1404cc565
lea rdx, str.SOCKS5_reply_has_wrong_address_type.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401df2ad
mov eax, 1
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
jne 0x1404cc629
cmp qword [rsp + 0x60], 0xa
jbe 0x1404cc605
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cc5a9
mov r8d, 0x41d
lea rdx, [0x1407edcb0]
lea rcx, str.len___sizeof_sx__buffer_
call fcn.1401d5938
xor eax, eax
mov rax, qword [rsp + 0x60]
sub rax, 0xa
mov rcx, qword [rsp + 0x198]
mov qword [rcx + 8], rax
mov eax, 1
imul rax, rax, 0xa
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x198]
mov qword [rcx + 0x268], rax
mov r9d, 0x420
mov r8d, reloc.WS2_32.dll_recv
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp 0x1404cc629
mov r9d, 0x423
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
jmp 0x1404cc6a6
xor eax, eax
test eax, eax
jne 0x1404cc629
lea rax, str.SOCKS5_connect_request_address
mov qword [rsp + 0x20], rax
mov r9d, reloc.WS2_32.dll_listen
mov r8, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.1404ca130
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cc671
mov eax, dword [rsp + 0x4c]
jmp 0x1404cc6bc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cc684
xor eax, eax
jmp 0x1404cc6bc
mov r9d, 0x433
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c9f40
nop
lea rdx, str.SOCKS5_request_granted.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dd854
xor eax, eax
mov rdi, rax
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_connect
call fcn.1401dcb34
mov rax, rdi
mov rcx, qword [rsp + 0x178]
xor rcx, rsp
call fcn.1401d9736
add rsp, 0x180
pop rdi
ret