Function at 0x439660
Capabilities:
Receive data
Receive data on socket

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x110
mov rbx, rdx
mov edx, dword [rdx + 0x58]
mov rsi, rcx
mov eax, edx
and eax, 0xfffeffff
mov dword [rbx + 0x58], eax
mov rcx, qword [r8 + 0x40]
test ecx, ecx
js 0x4397b2
mov ecx, edx
and ecx, 0x40000
je 0x4396e4
test ah, 0x10
jne 0x439730
mov edx, eax
and edx, 0x11000
cmp edx, 0x1000
je 0x439719
mov edi, dword [rbx + 0x78]
lea edx, [rdi - 1]
test edx, edx
mov dword [rbx + 0x78], edx
jne 0x4396d6
test al, 1
je 0x4396d6
test al, 0x20
jne 0x4396d6
or eax, 0x20
mov dword [rbx + 0x58], eax
mov rax, qword [rsi + 0x50]
mov qword [rbx + 0x50], rax
mov qword [rsi + 0x50], rbx
add rsp, 0x110
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rax, qword [rbx + 0x188]
mov rdx, qword [r8 + 0x48]
lea r9, [rbx + 0x100]
mov dword [rsp + 0x20], ecx
lea r8, [rbx + 0xf0]
mov rcx, rbx
call rax
mov eax, dword [rbx + 0x58]
mov edx, eax
and edx, 0x11000
cmp edx, 0x1000
jne 0x4396af
mov rdx, rbx
mov rcx, rsi
call fcn.00438bd0
mov eax, dword [rbx + 0x58]
jmp 0x4396af
lea rcx, [rsp + 0x60]
xor r8d, r8d
xor edx, edx
lea rbp, [rsp + 0x80]
call fcn.00410be0
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov r8, rbp
mov rcx, rbx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x80], rax
mov edx, 0x10000
call qword [rbx + 0x190]
cmp qword [rsp + 0x88], 0
je 0x43978c
mov eax, dword [rsp + 0x80]
test eax, eax
jne 0x439880
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, rbp
mov rdx, 0xfffffffffffff024
mov rcx, rbx
call qword [rbx + 0x188]
mov eax, dword [rbx + 0x58]
jmp 0x43969f
mov qword [rsp + 0x58], r8
call fcn.0043e410
cmp eax, 0x2738
mov ebp, eax
mov r8, qword [rsp + 0x58]
je 0x439855
and eax, 0xfffffffd
cmp eax, 0x2744
mov eax, dword [rbx + 0x58]
je 0x439845
test ah, 0x10
je 0x43969f
mov rcx, rbx
call fcn.00413bc0
test byte [rbx + 0x5a], 4
jne 0x43997e
mov rax, qword [rbx + 0xf0]
mov rdx, qword [rbx + 0xf8]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
mov ecx, ebp
mov rdi, qword [rbx + 0x188]
call fcn.00416500
mov dword [rsp + 0x20], 0
movsxd rdx, eax
xor r9d, r9d
lea r8, [rsp + 0x80]
mov rcx, rbx
call rdi
mov eax, dword [rbx + 0x58]
jmp 0x43969f
test eax, 0x40000
je 0x43969f
jmp 0x439696
mov eax, dword [rbx + 0x58]
mov ecx, eax
and ecx, 0x40000
jne 0x439696
mov edx, dword [r8 + 0x40]
mov rax, qword [rbx + 0x188]
test edx, edx
mov edx, 2
cmovs ecx, edx
jmp 0x4396eb
lea r12, [rsp + 0x90]
xor eax, eax
mov ecx, 0x10
mov dword [rsp + 0x7c], pe_nt_image_headers64
mov dword [rsp + 0x78], 0
lea r9, [rsp + 0x74]
mov rdi, r12
mov r8d, 1
mov rdx, rbp
rep stosq qword [rdi], rax
lea rax, [rsp + 0x7c]
mov rcx, qword [rbx + 0x70]
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSARecvFrom]
cmp eax, 0xffffffff
je 0x439910
mov edx, dword [rsp + 0x74]
mov dword [rsp + 0x20], 0
mov r9, r12
mov r8, rbp
mov rcx, rbx
call qword [rbx + 0x188]
mov eax, dword [rbx + 0x58]
jmp 0x43969f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2738
mov edi, eax
je 0x4399ac
cmp eax, 0x2733
je 0x439963
and eax, 0xfffffffd
cmp eax, 0x2744
je 0x439963
mov rcx, rbx
call fcn.00413bc0
mov ecx, edi
mov r12, qword [rbx + 0x188]
call fcn.00416500
mov dword [rsp + 0x20], 0
movsxd rdx, eax
xor r9d, r9d
mov r8, rbp
mov rcx, rbx
call r12
jmp 0x439908
mov dword [rsp + 0x20], 0
xor r9d, r9d
mov r8, rbp
xor edx, edx
mov rcx, rbx
call qword [rbx + 0x188]
jmp 0x439908
lea rcx, [rsp + 0x60]
xor edx, edx
xor r8d, r8d
call fcn.00410be0
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
jmp 0x439814
mov edx, dword [rsp + 0x74]
mov dword [rsp + 0x20], 2
mov r9, r12
mov r8, rbp
mov rcx, rbx
call qword [rbx + 0x188]
jmp 0x439908