Function at 0x1404ce660
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 [0x140818ac0]
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 0x1404ce6e2
mov dword [rsp + 0x168], 1
jmp 0x1404ce6ed
mov dword [rsp + 0x168], 0
cmp dword [rsp + 0x168], 0
jne 0x1404ce704
mov dword [rsp + 0x16c], 0
jmp 0x1404ce70f
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.1401da209
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 0x1404ce785
mov r8d, 0x251
lea rdx, [0x1407f1410]
lea rcx, str.auth______unsigned_long_1___0______unsigned_long_1___2__
call fcn.1401d6933
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.0x1404ce7cd.5
movsxd rax, dword [rsp + 0x170]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x4cfd6c]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3a0]
test eax, eax
je 0x1404ce812
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.1401de8c2
nop
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x1404ce844
cmp qword [rsp + 0x58], 0xff
jbe 0x1404ce844
lea rdx, str.SOCKS5:_the_destination_hostname_is_too_long_to_be_resolved_remotely_by_the_proxy.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 9
jmp 0x1404cfd3c
movzx eax, byte [rsp + 0x68]
and eax, 0xfffffffa
test eax, eax
je 0x1404ce86d
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.1401de8c2
nop
movzx eax, byte [rsp + 0x68]
and eax, 1
test eax, eax
jne 0x1404ce88c
mov rax, qword [rsp + 0x198]
mov qword [rax + 0x280], 0
movzx eax, byte [rsp + 0x68]
and eax, 4
test eax, eax
je 0x1404ce89d
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 0x1404ce91c
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 0x1404ce94e
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 0x1404ce9a2
mov r8d, 0x277
lea rdx, [0x1407f15f0]
lea rcx, str.idx___sizeof_sx__buffer_
call fcn.1401d6933
xor eax, eax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 8], rcx
lea rax, [0x1407f16b8]
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.1404cd650
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404ce9f8
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cea0e
xor eax, eax
jmp 0x1404cfd3c
mov r9d, 0x281
mov r8d, 4
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
jmp case.0x1404ce7cd.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.1404cd650
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cea77
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cea8d
xor eax, eax
jmp 0x1404cfd3c
xor eax, eax
test eax, eax
jne 0x1404cea8d
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 0x1404ceab7
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.1404cd7b0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404ceb05
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404ceb20
xor eax, eax
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404ceb5a
lea rdx, str.Received_invalid_version_in_initial_SOCKS5_response.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 2
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x1404ceb9c
mov r9d, 0x2a1
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
jmp case.0x1404ce7cd.9
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 2
jne 0x1404cebdf
mov r9d, 0x2a6
mov r8d, 6
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
jmp case.0x1404ce7cd.6
movzx eax, byte [rsp + 0x69]
test eax, eax
je 0x1404cec60
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cec60
mov r9d, 0x2ab
mov r8d, 5
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
call fcn.1401db08c
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
je 0x1404cec5e
lea rdx, str.Unable_to_negotiate_SOCKS5_GSS_API_context.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 4
jmp 0x1404cfd3c
jmp 0x1404cecd7
movzx eax, byte [rsp + 0x69]
test eax, eax
jne 0x1404ceca0
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404ceca0
lea rdx, str.SOCKS5_GSSAPI_per_message_authentication_is_not_supported.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 5
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 0xff
jne 0x1404cecd7
lea rdx, str.No_authentication_method_was_acceptable.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, listen
jmp 0x1404cfd3c
lea rdx, str.Undocumented_SOCKS5_mode_attempted_to_be_used_by_server.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 0x20
jmp 0x1404cfd3c
jmp 0x1404cfd26
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x280], 0
je 0x1404ced5d
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x288], 0
je 0x1404ced5d
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x280]
call fcn.1401da209
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x288]
call fcn.1401da209
mov qword [rsp + 0x90], rax
jmp 0x1404ced75
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 0x1404cee3e
cmp qword [rsp + 0x88], 0
je 0x1404cee3e
cmp qword [rsp + 0x88], 0xff
jbe 0x1404cee0e
lea rdx, str.Excessive_username_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, listen
jmp 0x1404cfd3c
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.1401da7a9
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 0x1404ceef6
cmp qword [rsp + 0x90], 0
je 0x1404ceef6
cmp qword [rsp + 0x90], 0xff
jbe 0x1404ceec6
lea rdx, str.Excessive_password_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 0xa
jmp 0x1404cfd3c
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.1401da7a9
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.1404cd5c0
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cef55
mov r8d, 0x2f6
lea rdx, [0x1407f1880]
lea rcx, [0x1407f1910]
call fcn.1401d6933
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 0x1404cef7a
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.1404cd650
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cefc5
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cefdb
xor eax, eax
jmp 0x1404cfd3c
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.1404cd5c0
nop
xor eax, eax
test eax, eax
jne 0x1404cf021
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.1404cd7b0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cf06c
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cf084
xor eax, eax
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404cf0e2
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.1401e02e4
mov eax, 0x21
jmp 0x1404cfd3c
mov r9d, 0x319
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
xor eax, eax
test eax, eax
jne 0x1404cf104
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x1404cf1c3
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.1401d84ea
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0xffffffff
jne 0x1404cf16a
mov eax, 0x1b
jmp 0x1404cfd3c
cmp dword [rsp + 0x98], 1
jne 0x1404cf19c
mov r9d, 0x325
mov r8d, 0xa
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
xor eax, eax
jmp 0x1404cfd3c
mov r9d, 0x328
mov r8d, listen
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
jmp case.0x1404ce7cd.11
jmp case.0x1404ce7cd.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.1401deccd
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x78], 0
je 0x1404cf247
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.1401de8c2
nop
cmp qword [rsp + 0x78], 0
jne 0x1404cf285
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401d8472
mov dword [rsp + 0x48], eax
cmp qword [rsp + 0x78], 0
jne 0x1404cf285
cmp dword [rsp + 0x48], 0
je 0x1404cf27e
mov eax, 0x1b
jmp 0x1404cfd3c
xor eax, eax
jmp 0x1404cfd3c
xor eax, eax
test eax, eax
jne 0x1404cf285
mov qword [rsp + 0xe8], 0
cmp qword [rsp + 0x78], 0
je 0x1404cf2af
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 0x1404cf331
mov rax, qword [rsp + 0x1a0]
movzx eax, byte [rax + 0x6e0]
cmp eax, 1
jne 0x1404cf2e3
mov dword [rsp + 0x174], 2
jmp 0x1404cf2ee
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 0x1404cf331
mov rax, qword [rsp + 0xe8]
mov ecx, dword [rsp + 0xf0]
cmp dword [rax + 4], ecx
je 0x1404cf331
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0xe8], rax
jmp 0x1404cf2fc
cmp qword [rsp + 0xe8], 0
jne 0x1404cf369
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.1401e02e4
mov eax, 0x1b
jmp 0x1404cfd3c
mov r8d, 0x2e
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0xe8]
call fcn.1401dcce8
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 0x1404cf4c1
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 0x1404cf450
mov eax, dword [rsp + 0xf4]
inc eax
mov dword [rsp + 0xf4], eax
cmp dword [rsp + 0xf4], 4
jge 0x1404cf490
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 0x1404cf440
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.1401de8c2
nop
jmp 0x1404cf5bb
mov rax, qword [rsp + 0xe8]
cmp dword [rax + 4], 0x17
jne 0x1404cf592
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 0x1404cf524
mov eax, dword [rsp + 0x100]
inc eax
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0x10
jge 0x1404cf564
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 0x1404cf514
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.1401de8c2
nop
jmp 0x1404cf5bb
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.1401e02e4
nop
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dfc2c
nop
jmp case.0x1404ce7cd.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 0x1404cf81f
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3ab]
test eax, eax
je 0x1404cf6e7
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 0x1404cf68e
mov eax, 1
jmp 0x1404cfd3c
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.1401da7a9
mov rax, qword [rsp + 0x60]
add rax, 0x10
mov qword [rsp + 0x60], rax
jmp 0x1404cf7ec
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 0x1404cf767
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.1401da7a9
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x60], rax
jmp 0x1404cf7ec
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.1401da7a9
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.1401de8c2
nop
xor eax, eax
test eax, eax
jne 0x1404cf81f
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 0x1404cf8b8
lea rdx, [0x1407f1ac0]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 6
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cf8f2
mov r8d, 0x3b9
lea rdx, [0x1407f1af0]
lea rcx, [0x1407f1b80]
call fcn.1401d6933
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.1404cd5c0
nop
xor eax, eax
test eax, eax
jne 0x1404cf925
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.1404cd650
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cf970
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cf986
xor eax, eax
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
je 0x1404cf9b2
lea rdx, str.SOCKS5_GSS_API_protection_not_yet_implemented.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 6
jmp 0x1404cfd3c
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.1404cd5c0
nop
xor eax, eax
test eax, eax
jne 0x1404cf9f8
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.1404cd7b0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cfa46
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cfa61
xor eax, eax
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404cfa9b
lea rdx, str.SOCKS5_reply_has_wrong_version__version_should_be_5.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 2
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404cfb40
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.1401e02e4
cmp dword [rsp + 0x158], 9
jge 0x1404cfb34
movsxd rax, dword [rsp + 0x158]
lea rcx, [0x140634a60]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x154]
jmp 0x1404cfd3c
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 3
jne 0x1404cfb83
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 0x1404cfbe5
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 4
jne 0x1404cfba5
mov qword [rsp + 0x60], socket
jmp 0x1404cfbe5
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cfbc7
mov qword [rsp + 0x60], 0xa
jmp 0x1404cfbe5
lea rdx, str.SOCKS5_reply_has_wrong_address_type.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401e02e4
mov eax, 1
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
jne 0x1404cfca9
cmp qword [rsp + 0x60], 0xa
jbe 0x1404cfc85
cmp qword [rsp + 0x60], 0x258
jbe 0x1404cfc29
mov r8d, 0x41d
lea rdx, [0x1407f1cb0]
lea rcx, str.len___sizeof_sx__buffer_
call fcn.1401d6933
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.1404cd5c0
nop
jmp 0x1404cfca9
mov r9d, 0x423
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
jmp 0x1404cfd26
xor eax, eax
test eax, eax
jne 0x1404cfca9
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.1404cd7b0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cfcf1
mov eax, dword [rsp + 0x4c]
jmp 0x1404cfd3c
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cfd04
xor eax, eax
jmp 0x1404cfd3c
mov r9d, 0x433
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404cd5c0
nop
lea rdx, str.SOCKS5_request_granted.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de8c2
xor eax, eax
mov rdi, rax
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_connect
call fcn.1401ddb7f
mov rax, rdi
mov rcx, qword [rsp + 0x178]
xor rcx, rsp
call fcn.1401da763
add rsp, 0x180
pop rdi
ret