Function at 0x402743
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xf0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
add rcx, 0x58
mov rax, qword [rbp + 0x10]
add rax, 0x78
lea rdx, [rbp - 0x14]
mov r8, rdx
mov edx, 4
mov r11, rdx
mov r10, rax
mov qword [rbp - 0xb8], rcx
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0xb8]
mov r11, qword [r11]
call r11
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0
je 0x4027cf
mov eax, dword [rbp - 0x18]
mov r11, rax
lea rax, str.Error_0x_x_reading_SECPKG_ATTR_STREAM_SIZES_n
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_wprintf
mov eax, dword [rbp - 0x18]
jmp 0x402f24
mov eax, dword [rbp - 0x14]
mov ecx, dword [rbp - 0xc]
add eax, ecx
mov ecx, dword [rbp - 0x10]
add eax, ecx
mov dword [rbp - 0x98], eax
mov eax, dword [rbp - 0x98]
mov r11, rax
mov eax, 0x40
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_LocalAlloc
mov qword [rbp - 0x90], rax
mov rax, qword [rbp - 0x90]
cmp rax, 0
jne 0x402832
lea rax, str.Out_of_memory__2__n
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_wprintf
mov eax, 0x80090304
jmp 0x402f24
mov eax, dword [rbp - 0x14]
mov rcx, qword [rbp - 0x90]
add rcx, rax
mov qword [rbp - 0xa0], rcx
mov rax, qword [rbp + 0x18]
mov r8, rax
lea rax, [0x0050984a]
mov r11, rax
mov rax, qword [rbp - 0xa0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_sprintf
mov rax, qword [rbp - 0xa0]
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_strlen
shl rax, 0x20
shr rax, 0x20
mov dword [rbp - 0xa4], eax
mov rax, qword [rbp - 0x90]
mov qword [rbp - 0x60], rax
mov eax, dword [rbp - 0x14]
mov dword [rbp - 0x68], eax
mov eax, 7
mov dword [rbp - 0x64], eax
mov rax, qword [rbp - 0xa0]
mov qword [rbp - 0x50], rax
mov eax, dword [rbp - 0xa4]
mov dword [rbp - 0x58], eax
mov eax, 1
mov dword [rbp - 0x54], eax
mov eax, dword [rbp - 0xa4]
mov rcx, qword [rbp - 0xa0]
add rcx, rax
mov qword [rbp - 0x40], rcx
mov eax, dword [rbp - 0x10]
mov dword [rbp - 0x48], eax
mov eax, 6
mov dword [rbp - 0x44], eax
mov eax, 0
mov dword [rbp - 0x34], eax
mov eax, 0
mov dword [rbp - 0x28], eax
mov eax, 4
mov dword [rbp - 0x24], eax
lea rax, [rbp - 0x68]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
add rcx, 0xc8
mov rax, qword [rbp + 0x10]
add rax, 0x78
mov edx, 0
mov r9, rdx
lea rdx, [rbp - 0x28]
mov r8, rdx
mov edx, 0
mov r11, rdx
mov r10, rax
mov qword [rbp - 0xb8], rcx
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0xb8]
mov r11, qword [r11]
call r11
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0
jge 0x40297f
mov eax, dword [rbp - 0x18]
mov r11, rax
lea rax, str.Error_0x_x_returned_by_EncryptMessage_n
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_wprintf
mov eax, dword [rbp - 0x18]
jmp 0x402f24
mov rax, qword [rbp + 0x10]
add rax, 0x60
mov ecx, dword [rbp - 0x68]
mov edx, dword [rbp - 0x58]
add ecx, edx
mov edx, dword [rbp - 0x48]
add ecx, edx
mov edx, 0
mov r9, rdx
mov r8, rcx
mov rcx, qword [rbp - 0x90]
mov r11, rcx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.ws2_32.dll_send
mov dword [rbp - 0xa8], eax
mov eax, dword [rbp - 0xa8]
cmp eax, 0xffffffff
je 0x4029de
mov eax, dword [rbp - 0xa8]
cmp eax, 0
jne 0x402a32
call sub.ws2_32.dll_WSAGetLastError
mov r11, rax
lea rax, str.Error__d_sending_data_to_server__3__n
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_wprintf
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
add rcx, 0x48
mov rax, qword [rbp + 0x10]
add rax, 0x78
mov r10, rax
mov qword [rbp - 0xb8], rcx
mov rcx, r10
mov r11, qword [rbp - 0xb8]
mov r11, qword [r11]
call r11
mov eax, 0x80090304
jmp 0x402f24
mov eax, 0xabe0
mov dword [rbp - 0xbc], eax
mov eax, 0
mov dword [rbp - 0x94], eax
mov eax, dword [rbp - 0x94]
cmp eax, 0
je 0x402a66
mov eax, dword [rbp - 0x18]
cmp eax, 0x80090318
jne 0x402b51
mov rax, qword [rbp + 0x10]
add rax, 0x60
mov ecx, dword [rbp - 0x94]
mov rdx, qword [rbp - 0x90]
add rdx, rcx
mov ecx, dword [rbp - 0x98]
mov qword [rbp - 0xb8], rax
mov eax, dword [rbp - 0x94]
sub ecx, eax
mov eax, 0
mov r9, rax
mov r8, rcx
mov r11, rdx
mov rax, qword [rbp - 0xb8]
mov rax, qword [rax]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.ws2_32.dll_recv
mov dword [rbp - 0xa8], eax
mov eax, dword [rbp - 0xa8]
cmp eax, 0xffffffff
jne 0x402af8
call sub.ws2_32.dll_WSAGetLastError
mov r11, rax
lea rax, str.Error__d_reading_data_from_server_n
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_wprintf
mov eax, 0x80090304
mov dword [rbp - 0x18], eax
jmp 0x402f1f
mov eax, dword [rbp - 0xa8]
cmp eax, 0
jne 0x402b3d
mov eax, dword [rbp - 0x94]
cmp eax, 0
je 0x402b38
lea rax, str.Server_unexpectedly_disconnected_n
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_wprintf
mov eax, 0x80090304
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
jmp 0x402f24
jmp 0x402f1f
mov eax, dword [rbp - 0x94]
mov ecx, dword [rbp - 0xa8]
add eax, ecx
mov dword [rbp - 0x94], eax
mov rax, qword [rbp - 0x90]
mov qword [rbp - 0x60], rax
mov eax, dword [rbp - 0x94]
mov dword [rbp - 0x68], eax
mov eax, 1
mov dword [rbp - 0x64], eax
mov eax, 0
mov dword [rbp - 0x54], eax
mov eax, 0
mov dword [rbp - 0x44], eax
mov eax, 0
mov dword [rbp - 0x34], eax
mov eax, 0
mov dword [rbp - 0x28], eax
mov eax, 4
mov dword [rbp - 0x24], eax
lea rax, [rbp - 0x68]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
add rcx, 0xd0
mov rax, qword [rbp + 0x10]
add rax, 0x78
movabs rdx, 0
mov r9, rdx
mov edx, 0
mov r8, rdx
lea rdx, [rbp - 0x28]
mov r11, rdx
mov r10, rax
mov qword [rbp - 0xb8], rcx
mov rcx, r10
mov rdx, r11
mov r11, qword [rbp - 0xb8]
mov r11, qword [r11]
call r11
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0x80090318
jne 0x402c03
jmp 0x402a48
mov eax, dword [rbp - 0x18]
cmp eax, 0x90317
jne 0x402c17
jmp 0x402f1f
mov eax, dword [rbp - 0x18]
cmp eax, 0
je 0x402c64
mov eax, dword [rbp - 0x18]
cmp eax, 0x90321
je 0x402c64
mov eax, dword [rbp - 0x18]
cmp eax, 0x90317
je 0x402c64
mov eax, dword [rbp - 0x18]
mov r11, rax
lea rax, str.Error_0x_x_returned_by_DecryptMessage_n
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_wprintf
mov eax, dword [rbp - 0x18]
jmp 0x402f24
movabs rax, 0
mov qword [rbp - 0x70], rax
movabs rax, 0
mov qword [rbp - 0x78], rax
mov eax, 1
mov dword [rbp - 0xac], eax
mov eax, dword [rbp - 0xac]
cmp eax, 4
jge 0x402d49
jmp 0x402cb2
mov eax, dword [rbp - 0xac]
mov ecx, eax
add eax, 1
mov dword [rbp - 0xac], eax
jmp 0x402c8b
mov rax, qword [rbp - 0x70]
cmp rax, 0
jne 0x402cfb
mov eax, dword [rbp - 0xac]
movsxd rax, eax
shl rax, 4
lea rcx, [rbp - 0x68]
add rcx, rax
add rcx, 4
mov eax, dword [rcx]
cmp eax, 1
jne 0x402cfb
mov eax, dword [rbp - 0xac]
movsxd rax, eax
shl rax, 4
lea rcx, [rbp - 0x68]
add rcx, rax
mov qword [rbp - 0x70], rcx
mov rax, qword [rbp - 0x78]
cmp rax, 0
jne 0x402d44
mov eax, dword [rbp - 0xac]
movsxd rax, eax
shl rax, 4
lea rcx, [rbp - 0x68]
add rcx, rax
add rcx, 4
mov eax, dword [rcx]
cmp eax, 5
jne 0x402d44
mov eax, dword [rbp - 0xac]
movsxd rax, eax
shl rax, 4
lea rcx, [rbp - 0x68]
add rcx, rax
mov qword [rbp - 0x78], rcx
jmp 0x402c9f
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x70]
mov edx, dword [rax]
mov eax, dword [rcx]
add edx, eax
mov dword [rbp - 0xc0], edx
mov eax, dword [rbp - 0xc0]
mov ecx, dword [rbp - 0xbc]
cmp eax, ecx
jle 0x402dd4
mov rax, qword [rbp + 0x20]
mov ecx, dword [rbp - 0xc0]
movsxd rcx, ecx
mov r11, rcx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call fcn.004f7a3e
mov qword [rbp - 0xc8], rax
mov rax, qword [rbp - 0xc8]
cmp rax, 0
jne 0x402dba
mov eax, 0x80090304
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
jmp 0x402f24
mov rax, qword [rbp + 0x20]
mov rcx, qword [rbp - 0xc8]
mov qword [rax], rcx
mov eax, dword [rbp - 0xc0]
mov dword [rbp - 0xbc], eax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
mov edx, dword [rcx]
movsxd rdx, edx
mov rcx, qword [rax]
add rcx, rdx
mov rax, qword [rbp - 0x70]
add rax, 8
mov rdx, qword [rbp - 0x70]
mov qword [rbp - 0xb8], rcx
mov ecx, dword [rdx]
movsxd rcx, ecx
mov r8, rcx
mov rcx, qword [rax]
mov r11, rcx
mov rax, qword [rbp - 0xb8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memcpy
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp - 0x70]
mov edx, dword [rax]
mov qword [rbp - 0xb8], rax
mov eax, dword [rcx]
add edx, eax
mov rax, qword [rbp - 0xb8]
mov dword [rax], edx
mov rax, qword [rbp - 0x78]
cmp rax, 0
je 0x402e86
mov rax, qword [rbp - 0x78]
add rax, 8
mov rcx, qword [rbp - 0x78]
mov edx, dword [rcx]
mov r8, rdx
mov rcx, qword [rax]
mov r11, rcx
mov rax, qword [rbp - 0x90]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memmove
mov rax, qword [rbp - 0x78]
mov ecx, dword [rax]
mov dword [rbp - 0x94], ecx
jmp 0x402e91
mov eax, 0
mov dword [rbp - 0x94], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0x90321
jne 0x402f1a
lea rax, [rbp - 0x88]
mov r8, rax
mov eax, 0
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.0040214c
mov dword [rbp - 0x18], eax
mov eax, dword [rbp - 0x18]
cmp eax, 0
je 0x402edb
mov eax, dword [rbp - 0x18]
jmp 0x402f24
mov rax, qword [rbp - 0x80]
cmp rax, 0
je 0x402f1a
mov eax, dword [rbp - 0x88]
mov r8, rax
mov rax, qword [rbp - 0x80]
mov r11, rax
mov rax, qword [rbp - 0x90]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memmove
mov eax, dword [rbp - 0x88]
mov dword [rbp - 0x94], eax
jmp 0x402a48
mov eax, 0
leave
ret