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

Disassembly:
push rdi
sub rsp, 0x70
cmp dword [rcx + 0xa4], 5
mov rdi, rcx
je 0x1800063ea
xor al, al
add rsp, 0x70
pop rdi
ret
mov qword [rsp + 0x58], r14
xor r14b, r14b
cmp dword [rcx + 0x40], 0xffffffff
je 0x1800066a8
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0x68], r12
mov r12d, dword [rcx + 0x18]
mov qword [rsp + 0x60], r13
mov ebx, 0x400
xor ebp, ebp
mov qword [rsp + 0x50], r15
mov r14b, 1
mov esi, ebx
movaps xmmword [rsp + 0x40], xmm6
test r12d, r12d
jg 0x180006445
mov r12d, 0x19000
jmp 0x18000644c
cmp r12d, ebx
cmovl esi, r12d
movsxd rcx, esi
call fcn.1800212a0
movsxd rcx, r12d
mov r13, rax
call fcn.1800212a0
mov r15, rax
mov qword [rsp + 0x80], rax
movsd xmm6, qword [0x18004a088]
cmp dword [rdi + 0x60], 0
je 0x1800064b3
mov rax, qword [rdi + 0x80]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x180006491
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rdi + 0x80]
movzx ebx, byte [rdi + 0xc]
mov rcx, qword [rcx + 8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test ebx, ebx
setne al
test al, al
je 0x1800065ca
movsxd rcx, dword [rdi + 0x40]
xor r9d, r9d
mov r8d, esi
mov rdx, r13
call qword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
je 0x1800065bd
test eax, eax
je 0x1800065b1
mov rsi, qword [rsp + 0x80]
movsxd rbx, eax
mov rdx, r13
mov rcx, rsi
mov r8, rbx
add ebp, eax
call fcn.180022620
inc dword [rdi + 0x94]
mov ecx, dword [rdi + 0x94]
add rsi, rbx
mov eax, 0x51eb851f
mov qword [rsp + 0x80], rsi
mul ecx
shr edx, 5
imul edx, edx, 0x64
cmp ecx, edx
jne 0x180006566
cmp dword [rdi + 0xa4], 5
jne 0x180006566
mov r10, qword [rdi + 0x70]
test r10, r10
je 0x180006557
movzx ecx, byte [rdi + 0x20]
mov rax, qword [rdi + 0x78]
mov r9d, dword [rdi + 0x68]
mov r8d, dword [rdi + 0x6c]
mov edx, dword [rdi + 0x64]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov ecx, dword [rdi + 0x28]
call r10
lea rdx, str.code_down_ing
mov rcx, rdi
call fcn.180005f50
pxor xmm1, xmm1
mov eax, r12d
pxor xmm0, xmm0
sub eax, ebp
mov dword [rdi + 0x64], ebp
mov dword [rdi + 0x6c], eax
mov eax, ebp
cvtsi2sd xmm1, rax
mov eax, dword [rdi + 0x18]
cvtsi2sd xmm0, rax
divsd xmm1, xmm0
mulsd xmm1, xmm6
cvttsd2si rax, xmm1
mov dword [rdi + 0x68], eax
cmp ebp, r12d
jg 0x1800065b1
mov ebx, 0x400
mov esi, r12d
sub esi, ebp
cmp esi, ebx
cmovg esi, ebx
jmp 0x180006472
mov dword [rdi + 0xa0], 3
jmp 0x1800065ca
mov dword [rdi + 0xa0], 1
xor r14b, r14b
movaps xmm6, xmmword [rsp + 0x40]
mov r12, qword [rsp + 0x68]
xor esi, esi
mov qword [rdi + 0x68], 0x64
mov dword [rdi + 0x18], ebp
test r13, r13
je 0x1800065ee
mov rcx, r13
call fcn.180022284
mov rcx, qword [rdi + 0x10]
mov r13, qword [rsp + 0x60]
test rcx, rcx
je 0x180006605
call fcn.180022284
mov qword [rdi + 0x10], rsi
lea eax, [rbp + 1]
movsxd rbx, eax
mov rcx, rbx
call fcn.1800212a0
mov r8, rbx
xor edx, edx
mov rcx, rax
mov qword [rdi + 0x10], rax
call fcn.180028cc0
mov rcx, qword [rdi + 0x10]
movsxd r8, ebp
mov rdx, r15
call fcn.180022620
cmp dword [rdi + 0xa4], 5
mov rbx, qword [rsp + 0x88]
jne 0x180006683
mov r10, qword [rdi + 0x70]
test r10, r10
je 0x180006674
movzx ecx, byte [rdi + 0x20]
mov rax, qword [rdi + 0x78]
mov r9d, dword [rdi + 0x68]
mov r8d, dword [rdi + 0x6c]
mov edx, dword [rdi + 0x64]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov ecx, dword [rdi + 0x28]
call r10
lea rdx, str.code_down_ing
mov rcx, rdi
call fcn.180005f50
mov rsi, qword [rsp + 0x98]
test r15, r15
je 0x180006698
mov rcx, r15
call fcn.180022284
mov r15, qword [rsp + 0x50]
mov dword [rdi + 0x18], ebp
mov rbp, qword [rsp + 0x90]
lea rcx, str.__________
call fcn.180022954
movzx eax, r14b
mov r14, qword [rsp + 0x58]
add rsp, 0x70
pop rdi
ret