Function at 0x1404c95e0
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 [0x140812ac0]
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 0x1404c9662
mov dword [rsp + 0x168], 1
jmp 0x1404c966d
mov dword [rsp + 0x168], 0
cmp dword [rsp + 0x168], 0
jne 0x1404c9684
mov dword [rsp + 0x16c], 0
jmp 0x1404c968f
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.1401d81eb
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 0x1404c9705
mov r8d, 0x251
lea rdx, [0x1407eb410]
lea rcx, str.auth______unsigned_long_1___0______unsigned_long_1___2__
call fcn.1401d4924
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.0x1404c974d.5
movsxd rax, dword [rsp + 0x170]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x4cacec]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3a0]
test eax, eax
je 0x1404c9792
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.1401dc87c
nop
movzx eax, byte [rsp + 0x50]
test eax, eax
jne 0x1404c97c4
cmp qword [rsp + 0x58], 0xff
jbe 0x1404c97c4
lea rdx, str.SOCKS5:_the_destination_hostname_is_too_long_to_be_resolved_remotely_by_the_proxy.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 9
jmp 0x1404cacbc
movzx eax, byte [rsp + 0x68]
and eax, 0xfffffffa
test eax, eax
je 0x1404c97ed
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.1401dc87c
nop
movzx eax, byte [rsp + 0x68]
and eax, 1
test eax, eax
jne 0x1404c980c
mov rax, qword [rsp + 0x198]
mov qword [rax + 0x280], 0
movzx eax, byte [rsp + 0x68]
and eax, 4
test eax, eax
je 0x1404c981d
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 0x1404c989c
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 0x1404c98ce
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 0x1404c9922
mov r8d, 0x277
lea rdx, [0x1407eb5f0]
lea rcx, str.idx___sizeof_sx__buffer_
call fcn.1401d4924
xor eax, eax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 8], rcx
lea rax, [0x1407eb6b8]
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.1404c85d0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404c9978
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404c998e
xor eax, eax
jmp 0x1404cacbc
mov r9d, 0x281
mov r8d, 4
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
jmp case.0x1404c974d.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.1404c85d0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404c99f7
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404c9a0d
xor eax, eax
jmp 0x1404cacbc
xor eax, eax
test eax, eax
jne 0x1404c9a0d
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 0x1404c9a37
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.1404c8730
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404c9a85
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404c9aa0
xor eax, eax
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404c9ada
lea rdx, str.Received_invalid_version_in_initial_SOCKS5_response.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 2
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
jne 0x1404c9b1c
mov r9d, 0x2a1
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
jmp case.0x1404c974d.9
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 2
jne 0x1404c9b5f
mov r9d, 0x2a6
mov r8d, 6
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
jmp case.0x1404c974d.6
movzx eax, byte [rsp + 0x69]
test eax, eax
je 0x1404c9be0
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404c9be0
mov r9d, 0x2ab
mov r8d, 5
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x190]
call fcn.1401d9046
mov dword [rsp + 0x48], eax
cmp dword [rsp + 0x48], 0
je 0x1404c9bde
lea rdx, str.Unable_to_negotiate_SOCKS5_GSS_API_context.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 4
jmp 0x1404cacbc
jmp 0x1404c9c57
movzx eax, byte [rsp + 0x69]
test eax, eax
jne 0x1404c9c20
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404c9c20
lea rdx, str.SOCKS5_GSSAPI_per_message_authentication_is_not_supported.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 5
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 0xff
jne 0x1404c9c57
lea rdx, str.No_authentication_method_was_acceptable.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, ntohl
jmp 0x1404cacbc
lea rdx, str.Undocumented_SOCKS5_mode_attempted_to_be_used_by_server.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 0x20
jmp 0x1404cacbc
jmp 0x1404caca6
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x280], 0
je 0x1404c9cdd
mov rax, qword [rsp + 0x198]
cmp qword [rax + 0x288], 0
je 0x1404c9cdd
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x280]
call fcn.1401d81eb
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x198]
mov rcx, qword [rax + 0x288]
call fcn.1401d81eb
mov qword [rsp + 0x90], rax
jmp 0x1404c9cf5
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 0x1404c9dbe
cmp qword [rsp + 0x88], 0
je 0x1404c9dbe
cmp qword [rsp + 0x88], 0xff
jbe 0x1404c9d8e
lea rdx, str.Excessive_username_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, ntohl
jmp 0x1404cacbc
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.1401d8781
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 0x1404c9e76
cmp qword [rsp + 0x90], 0
je 0x1404c9e76
cmp qword [rsp + 0x90], 0xff
jbe 0x1404c9e46
lea rdx, str.Excessive_password_length_for_proxy_auth
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 0xa
jmp 0x1404cacbc
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.1401d8781
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.1404c8540
cmp qword [rsp + 0x60], 0x258
jbe 0x1404c9ed5
mov r8d, 0x2f6
lea rdx, [0x1407eb880]
lea rcx, [0x1407eb910]
call fcn.1401d4924
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 0x1404c9efa
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.1404c85d0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404c9f45
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404c9f5b
xor eax, eax
jmp 0x1404cacbc
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.1404c8540
nop
xor eax, eax
test eax, eax
jne 0x1404c9fa1
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.1404c8730
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404c9fec
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404ca004
xor eax, eax
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404ca062
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.1401de294
mov eax, 0x21
jmp 0x1404cacbc
mov r9d, 0x319
mov r8d, 9
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
xor eax, eax
test eax, eax
jne 0x1404ca084
movzx eax, byte [rsp + 0x50]
test eax, eax
je 0x1404ca143
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.1401d64f9
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0xffffffff
jne 0x1404ca0ea
mov eax, 0x1b
jmp 0x1404cacbc
cmp dword [rsp + 0x98], 1
jne 0x1404ca11c
mov r9d, 0x325
mov r8d, 0xa
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
xor eax, eax
jmp 0x1404cacbc
mov r9d, 0x328
mov r8d, ntohl
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
jmp case.0x1404c974d.11
jmp case.0x1404c974d.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.1401dcca0
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0x78], 0
je 0x1404ca1c7
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.1401dc87c
nop
cmp qword [rsp + 0x78], 0
jne 0x1404ca205
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401d6477
mov dword [rsp + 0x48], eax
cmp qword [rsp + 0x78], 0
jne 0x1404ca205
cmp dword [rsp + 0x48], 0
je 0x1404ca1fe
mov eax, 0x1b
jmp 0x1404cacbc
xor eax, eax
jmp 0x1404cacbc
xor eax, eax
test eax, eax
jne 0x1404ca205
mov qword [rsp + 0xe8], 0
cmp qword [rsp + 0x78], 0
je 0x1404ca22f
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 0x1404ca2b1
mov rax, qword [rsp + 0x1a0]
movzx eax, byte [rax + 0x6e0]
cmp eax, 1
jne 0x1404ca263
mov dword [rsp + 0x174], 2
jmp 0x1404ca26e
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 0x1404ca2b1
mov rax, qword [rsp + 0xe8]
mov ecx, dword [rsp + 0xf0]
cmp dword [rax + 4], ecx
je 0x1404ca2b1
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0xe8], rax
jmp 0x1404ca27c
cmp qword [rsp + 0xe8], 0
jne 0x1404ca2e9
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.1401de294
mov eax, 0x1b
jmp 0x1404cacbc
mov r8d, 0x2e
lea rdx, [rsp + 0xa8]
mov rcx, qword [rsp + 0xe8]
call fcn.1401dac52
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 0x1404ca441
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 0x1404ca3d0
mov eax, dword [rsp + 0xf4]
inc eax
mov dword [rsp + 0xf4], eax
cmp dword [rsp + 0xf4], 4
jge 0x1404ca410
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 0x1404ca3c0
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.1401dc87c
nop
jmp 0x1404ca53b
mov rax, qword [rsp + 0xe8]
cmp dword [rax + 4], 0x17
jne 0x1404ca512
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 0x1404ca4a4
mov eax, dword [rsp + 0x100]
inc eax
mov dword [rsp + 0x100], eax
cmp dword [rsp + 0x100], 0x10
jge 0x1404ca4e4
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 0x1404ca494
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.1401dc87c
nop
jmp 0x1404ca53b
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.1401de294
nop
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401ddbe6
nop
jmp case.0x1404c974d.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 0x1404ca79f
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax + 0x3ab]
test eax, eax
je 0x1404ca667
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 0x1404ca60e
mov eax, 1
jmp 0x1404cacbc
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.1401d8781
mov rax, qword [rsp + 0x60]
add rax, 0x10
mov qword [rsp + 0x60], rax
jmp 0x1404ca76c
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 0x1404ca6e7
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.1401d8781
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x60], rax
jmp 0x1404ca76c
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.1401d8781
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.1401dc87c
nop
xor eax, eax
test eax, eax
jne 0x1404ca79f
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 0x1404ca838
lea rdx, [0x1407ebac0]
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 6
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x268], rcx
cmp qword [rsp + 0x60], 0x258
jbe 0x1404ca872
mov r8d, 0x3b9
lea rdx, [0x1407ebaf0]
lea rcx, [0x1407ebb80]
call fcn.1401d4924
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.1404c8540
nop
xor eax, eax
test eax, eax
jne 0x1404ca8a5
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.1404c85d0
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404ca8f0
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404ca906
xor eax, eax
jmp 0x1404cacbc
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
je 0x1404ca932
lea rdx, str.SOCKS5_GSS_API_protection_not_yet_implemented.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 6
jmp 0x1404cacbc
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.1404c8540
nop
xor eax, eax
test eax, eax
jne 0x1404ca978
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.1404c8730
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404ca9c6
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404ca9e1
xor eax, eax
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 5
je 0x1404caa1b
lea rdx, str.SOCKS5_reply_has_wrong_version__version_should_be_5.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 2
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 1
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
test eax, eax
je 0x1404caac0
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.1401de294
cmp dword [rsp + 0x158], 9
jge 0x1404caab4
movsxd rax, dword [rsp + 0x158]
lea rcx, [0x14062edf0]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x154], eax
mov eax, dword [rsp + 0x154]
jmp 0x1404cacbc
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 3
jne 0x1404cab03
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 0x1404cab65
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 4
jne 0x1404cab25
mov qword [rsp + 0x60], socket
jmp 0x1404cab65
mov eax, 1
imul rax, rax, 3
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rcx + rax]
cmp eax, 1
jne 0x1404cab47
mov qword [rsp + 0x60], 0xa
jmp 0x1404cab65
lea rdx, str.SOCKS5_reply_has_wrong_address_type.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401de294
mov eax, 1
jmp 0x1404cacbc
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x7c8], 0
jne 0x1404cac29
cmp qword [rsp + 0x60], 0xa
jbe 0x1404cac05
cmp qword [rsp + 0x60], 0x258
jbe 0x1404caba9
mov r8d, 0x41d
lea rdx, [0x1407ebcb0]
lea rcx, str.len___sizeof_sx__buffer_
call fcn.1401d4924
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.1404c8540
nop
jmp 0x1404cac29
mov r9d, 0x423
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
jmp 0x1404caca6
xor eax, eax
test eax, eax
jne 0x1404cac29
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.1404c8730
mov dword [rsp + 0x4c], eax
cmp dword [rsp + 0x4c], 0
je 0x1404cac71
mov eax, dword [rsp + 0x4c]
jmp 0x1404cacbc
mov rax, qword [rsp + 0x198]
cmp qword [rax + 8], 0
je 0x1404cac84
xor eax, eax
jmp 0x1404cacbc
mov r9d, 0x433
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, qword [rsp + 0x1a0]
mov rcx, qword [rsp + 0x198]
call fcn.1404c8540
nop
lea rdx, str.SOCKS5_request_granted.
mov rcx, qword [rsp + 0x1a0]
call fcn.1401dc87c
xor eax, eax
mov rdi, rax
mov rcx, rsp
lea rdx, reloc.WS2_32.dll_connect
call fcn.1401dbb48
mov rax, rdi
mov rcx, qword [rsp + 0x178]
xor rcx, rsp
call fcn.1401d8740
add rsp, 0x180
pop rdi
ret