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

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x50
mov qword [rax - 0x58], 0xfffffffffffffffe
mov r12, rdx
mov r14, rcx
xor edi, edi
mov qword [rax + 0x18], rdi
mov ebx, edi
mov qword [rax + 0x20], rbx
lea rdx, [rcx + 0x28]
lea rcx, [rax - 0x48]
call fcn.140031dd0
mov rax, qword [r14 + 0x60]
test rax, rax
je 0x14021ac0a
mov qword [rsp + 0xa8], rax
lock inc dword [rax + 8]
mov bpl, 1
mov rbx, qword [rsp + 0xa8]
jmp 0x14021ac0d
xor bpl, bpl
lea rcx, [rsp + 0x40]
call fcn.140031f00
mov rsi, 0xffffffffffffffff
test bpl, bpl
jne 0x14021ac2b
lea edi, [rsi - 1]
jmp 0x14021af2b
call fcn.1400303b0
mov qword [rbx + 0x18], rax
mov rdx, qword [rbx + 0x40]
mov rcx, rbx
test rdx, rdx
jle 0x14021ac53
call fcn.14013a5a0
test eax, eax
je 0x14021ac5d
mov edi, 0xfffffff6
jmp 0x14021af2b
mov edx, reloc.ODBC32.dll_SQLNumResultCols
call fcn.14013a8e0
xor r15b, r15b
cmp qword [rbx + 0x40], 0
jle 0x14021ac79
mov rdx, qword [rbx + 0x28]
add rdx, qword [rbx + 0x30]
mov rax, qword [rbx + 0x38]
sub rax, qword [rbx + 0x30]
jmp 0x14021ac8c
mov rdx, qword [rbx + 0x20]
add rdx, qword [rbx + 0x48]
mov rax, qword [rbx + 0x50]
sub rax, qword [rbx + 0x48]
mov r15b, 1
xor r9d, r9d
mov rcx, r12
cmp rax, 0x7fffffff
mov r8d, eax
jl 0x14021aca3
mov r8d, 0x7fffffff
call qword [sym.imp.WS2_32.dll_recv]
mov ecx, eax
test eax, eax
jle 0x14021af07
movsxd rbp, eax
mov rdx, rbp
mov rcx, qword [r14 + 0x20]
call fcn.14018b6f0
add qword [rbx + 0x68], rbp
test r15b, r15b
je 0x14021ae00
add qword [rbx + 0x48], rbp
mov r9, qword [rbx + 0x50]
cmp qword [rbx + 0x48], r9
jne 0x14021af2b
mov rcx, qword [r14 + 0x10]
mov rax, qword [rcx]
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x20], rdx
mov r8, qword [rbx + 0x20]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0xa0]
mov qword [rbx + 0x40], rcx
cmp eax, 0xfffffff6
jne 0x14021ad18
lea edi, [rax + 8]
jmp 0x14021af2b
cmp qword [rsp + 0xa0], 0
jne 0x14021af2b
mov qword [rbx + 0x48], rdi
mov ecx, 0x78
call fcn.14028314c
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14021ad4c
mov rcx, rax
call fcn.14024a3c0
mov rbp, rax
jmp 0x14021ad4f
mov rbp, rdi
lea rcx, [rbp + 0x70]
mov rdx, rbx
call fcn.1401a3090
mov rax, qword [r14 + 0x18]
mov qword [rbp + 0x68], rax
mov ecx, 0x28
call fcn.14028314c
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14021ad9c
lea rdx, vtable.SIRefParam.0
mov qword [rax], rdx
mov dword [rax + 8], edi
lea rdx, vtable.SIRecvPacketsInfo.0
mov qword [rax], rdx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], rdi
jmp 0x14021ad9f
mov rax, rdi
mov qword [rbp + 0x30], rax
mov qword [rax + 0x10], r12
mov rax, qword [rbp + 0x30]
mov qword [rax + 0x20], rdi
mov rax, qword [rbp + 0x30]
mov dword [rax + 8], 1
mov qword [rsp + 0x90], rdi
mov rcx, qword [r14 + 0x10]
mov r10, qword [rcx]
lea rax, [rbp + 0x40]
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
mov r9d, reloc.ODBC32.dll_SQLNumResultCols
mov r8, qword [rbx + 0x20]
mov rdx, r12
call qword [r10]
mov rax, qword [r14]
mov rdx, rbp
mov rcx, r14
call qword [rax + gethostname]
jmp 0x14021af2b
add qword [rbx + 0x30], rbp
mov rax, qword [rbx + 0x30]
cmp rax, qword [rbx + 0x38]
jne 0x14021af2b
mov ecx, 0x78
call fcn.14028314c
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14021ae33
mov rcx, rax
call fcn.14024a3c0
mov rbp, rax
jmp 0x14021ae36
mov rbp, rdi
lea rcx, [rbp + 0x70]
mov rdx, rbx
call fcn.1401a3090
mov rax, qword [r14 + 0x18]
mov qword [rbp + 0x68], rax
mov ecx, 0x28
call fcn.14028314c
mov rcx, rax
mov qword [rsp + 0x38], rax
test rax, rax
je 0x14021ae86
lea rdx, vtable.SIRefParam.0
mov qword [rax], rdx
mov dword [rax + 8], edi
lea rdx, vtable.SIRecvPacketsInfo.0
mov qword [rax], rdx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], rdi
jmp 0x14021ae89
mov rcx, rdi
mov qword [rbp + 0x30], rcx
mov rax, qword [rbx + 0x28]
mov qword [rcx + 0x20], rax
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbx + 0x88]
mov qword [rcx + 0x10], rax
mov rax, qword [rbp + 0x30]
mov dword [rax + 8], 1
mov rax, qword [rbx + 0x20]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movzx eax, word [rax + 0x10]
mov word [rbp + 0x50], ax
mov rax, qword [rbx + 0x30]
mov qword [rbp + 0x4a], rax
mov rax, qword [rbx + 0x88]
mov qword [rbp + 0x38], rax
mov rax, qword [rbx + 0x28]
mov qword [rbp + 0x52], rax
mov rax, qword [rbx + 0x30]
mov qword [rbp + 0x5a], rax
mov qword [rbx + 0x30], rdi
mov qword [rbx + 0x38], rdi
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x40], rdi
mov qword [rbx + 0x48], rdi
mov rax, qword [r14]
mov rdx, rbp
mov rcx, r14
call qword [rax + gethostname]
jmp 0x14021af2b
jns 0x14021af1d
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x14021af2b
mov edi, 0xfffffffe
jmp 0x14021af2b
mov eax, edi
mov edi, 0xfffffffe
test ecx, ecx
cmove eax, edi
mov edi, eax
test rbx, rbx
je 0x14021af4a
lock xadd dword [rbx + 8], esi
cmp esi, 1
jne 0x14021af4a
mov rcx, qword [rsp + 0xa8]
mov r8, qword [rcx]
mov edx, esi
call qword [r8]
mov eax, edi
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret