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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov rax, qword [0x14004e008]
xor rax, rsp
mov qword [rbp + 0x50], rax
xor ebx, ebx
mov qword [rsp + 0x198], r14
mov qword [rsp + 0x30], rbx
mov rsi, rcx
call fcn.140002960
lea r12d, [rbx + 1]
test eax, eax
jns 0x1400039b5
lea rcx, str.CImgCoreProcessProtocol::GetData:_bad_payload_size.
call qword [sym.imp.ImgCoreDll.dll_IC_Log]
mov eax, r12d
jmp 0x140003a3f
cmp eax, 8
jle 0x1400039cc
lea rcx, str.CImgCoreProcessProtocol::GetData:_message_size_out_of_bounds.
call qword [sym.imp.ImgCoreDll.dll_IC_Log]
mov eax, r12d
jmp 0x140003a3f
je 0x1400039d3
mov eax, r12d
jmp 0x140003a3f
mov r14, qword [rsi + 8]
mov edi, ebx
mov qword [rsp + 0x1a0], r15
mov r15, qword [r14 + 0x10]
nop word [rax + rax]
mov rcx, qword [r14 + 0x10]
lea rdx, [rsp + 0x30]
mov r8d, 8
movsxd rax, edi
sub r8d, edi
add rdx, rax
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
lea ecx, [rax + 1]
cmp ecx, r12d
jbe 0x140003a2f
add edi, eax
cmp edi, 8
jb 0x1400039f0
cmp r15, 0xffffffffffffffff
je 0x140003a2f
cmp edi, 8
jne 0x140003a2f
mov eax, ebx
jmp 0x140003a37
call fcn.140004e30
mov eax, r12d
mov r15, qword [rsp + 0x1a0]
mov dword [rsp + 0x24], eax
mov rax, qword [rsi + 8]
mov dword [rsp + 0x20], reloc.WS2_32.dll_inet_addr
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
jne 0x140003a5e
xor dil, dil
jmp 0x140003a79
xor r9d, r9d
lea rdx, [rsp + 0x20]
lea r8d, [r9 + 8]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
setne dil
jne 0x140003a7e
call fcn.140004e30
mov rcx, qword [rsp + 0x30]
movzx edi, dil
xor edi, r12d
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x40], rbx
test rcx, rcx
je 0x140003ac0
lea r9, [rsp + 0x50]
mov r8d, pe_nt_image_headers64
lea rdx, [rsp + 0x28]
call qword [sym.imp.ImgCoreDll.dll_IC_MaskGetInfo]
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x40]
mov edi, eax
call qword [sym.imp.ImgCoreDll.dll_IC_GetNextMask]
mov rax, qword [rsi + 8]
mov dword [rsp + 0x38], shutdown
mov dword [rsp + 0x3c], edi
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x140003af1
xor r9d, r9d
lea rdx, [rsp + 0x38]
lea r8d, [r9 + 8]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x140003af6
call fcn.140004e30
mov rax, qword [rsi + 8]
mov edi, dword [rsp + 0x28]
mov dword [rsp + 0x20], 0xa
mov dword [rsp + 0x24], edi
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x140003b5d
xor r9d, r9d
lea rdx, [rsp + 0x20]
lea r8d, [r9 + 8]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
setne r14b
jne 0x140003b39
call fcn.140004e30
test r14b, r14b
je 0x140003b62
mov rax, qword [rsi + 8]
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x140003b5d
xor r9d, r9d
lea rdx, [rsp + 0x50]
mov r8d, edi
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x140003b62
call fcn.140004e30
mov rax, qword [rsi + 8]
mov r14, qword [rsp + 0x198]
mov dword [rsp + 0x20], 0xa
mov dword [rsp + 0x24], 8
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x140003bd2
xor r9d, r9d
lea rdx, [rsp + 0x20]
lea r8d, [r9 + 8]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
setne dil
jne 0x140003bad
call fcn.140004e30
test dil, dil
je 0x140003bd7
mov rax, qword [rsi + 8]
mov rcx, qword [rax + 0x10]
cmp rcx, 0xffffffffffffffff
je 0x140003bd2
xor r9d, r9d
lea rdx, [rsp + 0x40]
lea r8d, [r9 + 8]
call qword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
jne 0x140003bd7
call fcn.140004e30
mov rdi, qword [rsi + 8]
mov rsi, qword [rdi + 0x10]
nop
mov rcx, qword [rdi + 0x10]
lea rdx, [rsp + 0x20]
mov r8d, 8
movsxd rax, ebx
sub r8d, ebx
add rdx, rax
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_recv]
lea ecx, [rax + 1]
cmp ecx, r12d
jbe 0x140003c2a
add ebx, eax
cmp ebx, 8
jb 0x140003be0
cmp rsi, 0xffffffffffffffff
je 0x140003c2a
cmp ebx, 8
jne 0x140003c2a
cmp dword [rsp + 0x20], 0xb
mov eax, dword [rsp + 0x24]
cmovne eax, r12d
jmp 0x140003c32
call fcn.140004e30
mov eax, r12d
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.1400064d0
add rsp, 0x160
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret