Function at 0x4d31b0
Capabilities:
Send data
Send data on socket

Disassembly:
push rbp
sub rsp, 0x440
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x3d0], rcx
mov dword [rbp + 0x3d8], edx
mov byte [rbp + 0x1b0], 5
mov byte [rbp + 0x1b1], 1
mov byte [rbp + 0x1b2], 0
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4d326d
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4d321a
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4d321a
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4d326d
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x250]
mov rax, qword [rbp + 0x3d0]
mov rcx, qword [rax + 0x248]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rdx
mov r9, rcx
lea r8, str.Attempting_to_negotiate_with__s:_s_SOCKS5_proxy
mov edx, 0x200
mov rcx, rax
call dbg.snprintf
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
mov eax, dword [rbp + 0x3d8]
cdqe
lea rdx, [rbp + 0x1b0]
mov r9d, 0
mov r8d, 3
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_send]
call rax
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
cmp eax, 5
jne 0x4d32c5
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
movzx edx, byte [rbp + 0x1b2]
movsx edx, dl
cmp eax, edx
je 0x4d334b
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4d32ee
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4d32ee
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
test eax, eax
jle 0x4d3341
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x250]
mov rax, qword [rbp + 0x3d0]
mov rcx, qword [rax + 0x248]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rdx
mov r9, rcx
lea r8, str.Bad_response_from__s:_s_SOCKS5_server
mov edx, 0x200
mov rcx, rax
call dbg.snprintf
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 1
call dbg._applog
mov eax, 0
jmp 0x4d36f3
mov byte [rbp + 0x1b0], 5
mov byte [rbp + 0x1b1], 1
mov byte [rbp + 0x1b2], 0
mov byte [rbp + 0x1b3], 3
mov rax, qword [rbp + 0x3d0]
mov rax, qword [rax + 0x240]
mov rcx, rax
call sym.strlen
mov dword [rbp + 0x3b8], eax
cmp dword [rbp + 0x3b8], 0xff
jle 0x4d3399
mov dword [rbp + 0x3b8], 0xff
mov eax, dword [rbp + 0x3b8]
mov byte [rbp + 0x3b7], al
movzx eax, byte [rbp + 0x3b7]
mov byte [rbp + 0x1b4], al
mov eax, dword [rbp + 0x3b8]
movsxd rcx, eax
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x240]
lea rax, [rbp + 0x1b0]
add rax, 5
mov r8, rcx
mov rcx, rax
call sym.memcpy
mov rax, qword [rbp + 0x3d0]
mov rax, qword [rax + 0x220]
mov rcx, rax
call sym.atoi
mov word [rbp + 0x3b4], ax
movzx eax, word [rbp + 0x3b4]
shr ax, 8
mov edx, eax
mov eax, dword [rbp + 0x3b8]
add eax, 5
cdqe
mov byte [rbp + rax + 0x1b0], dl
mov eax, dword [rbp + 0x3b8]
add eax, 6
movzx edx, word [rbp + 0x3b4]
cdqe
mov byte [rbp + rax + 0x1b0], dl
mov eax, dword [rbp + 0x3b8]
lea ecx, [rax + 7]
mov eax, dword [rbp + 0x3d8]
cdqe
lea rdx, [rbp + 0x1b0]
mov r9d, 0
mov r8d, ecx
mov rcx, rax
mov rax, qword [sym.imp.WSOCK32.dll_send]
call rax
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
cmp eax, 5
jne 0x4d3488
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
test eax, eax
je 0x4d350e
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4d34b1
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4d34b1
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
test eax, eax
jle 0x4d3504
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x250]
mov rax, qword [rbp + 0x3d0]
mov rcx, qword [rax + 0x248]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rdx
mov r9, rcx
lea r8, str.Bad_response_from__s:_s_SOCKS5_server
mov edx, 0x200
mov rcx, rax
call dbg.snprintf
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 1
call dbg._applog
mov eax, 0
jmp 0x4d36f3
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
mov byte [rbp + 0x3b3], al
cmp byte [rbp + 0x3b3], 1
jne 0x4d3565
mov dword [rbp + 0x3bc], 0
jmp 0x4d3557
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
add dword [rbp + 0x3bc], 1
cmp dword [rbp + 0x3bc], 3
jle 0x4d3543
jmp 0x4d363a
cmp byte [rbp + 0x3b3], 3
jne 0x4d35b4
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
mov dword [rbp + 0x3b8], eax
mov dword [rbp + 0x3bc], 0
jmp 0x4d35a1
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
add dword [rbp + 0x3bc], 1
mov eax, dword [rbp + 0x3bc]
cmp eax, dword [rbp + 0x3b8]
jl 0x4d358d
jmp 0x4d363a
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4d35dd
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4d35dd
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
test eax, eax
jle 0x4d3630
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x250]
mov rax, qword [rbp + 0x3d0]
mov rcx, qword [rax + 0x248]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rdx
mov r9, rcx
lea r8, str.Bad_response_from__s:_s_SOCKS5_server
mov edx, 0x200
mov rcx, rax
call dbg.snprintf
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 1
call dbg._applog
mov eax, 0
jmp 0x4d36f3
mov dword [rbp + 0x3bc], 0
jmp 0x4d365a
mov eax, dword [rbp + 0x3d8]
mov ecx, eax
call dbg.recv_byte
add dword [rbp + 0x3bc], 1
cmp dword [rbp + 0x3bc], 1
jle 0x4d3646
mov rax, qword [0x005149e0]
movzx eax, byte [rax]
test al, al
je 0x4d36ee
mov rax, qword [0x00514e80]
movzx eax, byte [rax]
test al, al
jne 0x4d369b
mov rax, qword [0x00514ac0]
movzx eax, byte [rax]
test al, al
jne 0x4d369b
mov rax, qword [0x00514ab0]
mov eax, dword [rax]
cmp eax, 3
jle 0x4d36ee
mov rax, qword [rbp + 0x3d0]
mov rdx, qword [rax + 0x250]
mov rax, qword [rbp + 0x3d0]
mov rcx, qword [rax + 0x248]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rdx
mov r9, rcx
lea r8, str.Success_negotiating_with__s:_s_SOCKS5_proxy
mov edx, 0x200
mov rcx, rax
call dbg.snprintf
lea rax, [rbp - 0x50]
mov r8d, 0
mov rdx, rax
mov ecx, 4
call dbg._applog
mov eax, 1
add rsp, 0x440
pop rbp
ret