Function at 0x14005d864
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [0x1401740c0]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x100]
mov rbx, r8
mov r14, qword [rsp + 0x108]
mov rbp, rdx
mov r15, qword [rsp + 0x140]
mov rdi, rcx
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x60], r9
test rcx, rcx
jne 0x14005d8bf
mov eax, 0xffffff9a
jmp 0x14005ddb8
mov r12d, dword [rsp + 0x110]
test r12d, 0xfffffff7
jne 0x14005d8b5
cmp dword [rcx + 0x70], 1
jne 0x14005d8e3
call fcn.14005e4c4
test eax, eax
jne 0x14005ddb8
test rbp, rbp
lea rsi, [0x1401523c0]
cmovne rsi, rbp
test r14, r14
jne 0x14005d8fb
xor r13d, r13d
jmp 0x14005d906
mov rcx, r14
call fcn.1400d9890
mov r13, rax
mov rcx, rsi
call fcn.1400d9890
xor edx, edx
mov qword [rsp + 0x48], rax
test rbx, rbx
jne 0x14005d922
mov dword [rdi + 0x10100], edx
jmp 0x14005d937
mov eax, dword [rbx + 0x18]
test eax, eax
jne 0x14005d931
mov rcx, rbx
call fcn.14005c628
mov dword [rdi + 0x10100], eax
mov ebp, dword [rsp + 0x118]
mov ecx, dword [rsp + 0x158]
mov dword [rdi + 0xf4], ecx
lea eax, [rbp - 8]
cmp eax, 1
ja 0x14005d95c
or ecx, 2
mov dword [rdi + 0xf4], ecx
cmp ebp, 2
jne 0x14005d968
or dword [rdi + 0xf4], 4
cmp ebp, 1
jne 0x14005d974
or dword [rdi + 0xf4], 6
test r15, r15
je 0x14005d980
or dword [rdi + 0xf4], 1
mov eax, dword [rsp + 0x120]
mov rcx, rdi
mov rdx, qword [rdi + 0x58]
and qword [rdi + 0x10104], 0
and qword [rdi + 0xd0], 0
mov dword [rdi + 0xfc], eax
mov dword [rdi + 0xf8], r12d
call fcn.14005ef78
mov r12, qword [rsp + 0x48]
mov qword [rdi + 0xd8], rax
mov eax, dword [rsp + 0x40]
add eax, 0x2e
mov dword [rdi + 0xf0], 0x20
add eax, r12d
add eax, r13d
mov dword [rdi + 0xec], eax
lea ecx, [rax + 0x20]
call fcn.1400da6b8
mov ecx, dword [rsp + 0x40]
mov edx, 0x2014b50
mov dword [rdi + 0xe8], ecx
mov r8d, 4
mov rcx, rax
mov qword [rdi + 0xe0], rax
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 2
mov edx, dword [rsp + 0x150]
add rcx, 4
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov edx, socket
add rcx, 6
lea r8d, [rdx - 0x12]
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 2
mov edx, dword [rdi + 0xf4]
add rcx, 8
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 2
mov edx, dword [rdi + 0xf8]
add rcx, 0xa
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 4
mov edx, dword [rdi + 0x10100]
add rcx, 0xc
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
xor edx, edx
add rcx, 0x10
lea r8d, [rdx + 4]
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
xor edx, edx
add rcx, 0x14
lea r8d, [rdx + 4]
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
xor edx, edx
add rcx, 0x18
lea r8d, [rdx + 4]
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 2
mov r12d, r12d
add rcx, 0x1c
mov edx, r12d
call fcn.14005c5f0
mov eax, dword [rsp + 0x40]
mov r8d, 2
mov rcx, qword [rdi + 0xe0]
mov edx, eax
add rcx, 0x1e
mov qword [rsp + 0x50], rax
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov eax, r13d
mov qword [rsp + 0x58], rax
add rcx, 0x20
mov edx, r13d
mov r8d, 2
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
xor edx, edx
add rcx, 0x22
lea r8d, [rdx + 2]
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov r8d, 2
add rcx, 0x24
test rbx, rbx
jne 0x14005db66
xor edx, edx
call fcn.14005c5f0
xor edx, edx
jmp 0x14005db71
mov edx, dword [rbx + 0x1c]
call fcn.14005c5f0
mov edx, dword [rbx + 0x20]
mov rcx, qword [rdi + 0xe0]
mov r8d, 4
add rcx, 0x26
call fcn.14005c5f0
mov rcx, qword [rdi + 0xe0]
mov edx, 0xffffffff
add rcx, 0x2a
mov r8d, 4
cmp qword [rdi + 0xd8], rdx
jae 0x14005dbb3
mov edx, dword [rdi + 0xd8]
sub rdx, qword [rdi + 0x10150]
call fcn.14005c5f0
xor ebx, ebx
cmp dword [rsp + 0x48], ebx
jbe 0x14005dbe2
mov edx, ebx
mov r8, rsi
mov r9, r12
mov al, byte [r8]
inc r8
mov rcx, qword [rdi + 0xe0]
mov byte [rcx + rdx + 0x2e], al
inc rdx
sub r9, 1
jne 0x14005dbc8
mov r10, qword [rsp + 0x50]
cmp dword [rsp + 0x40], ebx
jbe 0x14005dc18
mov r8, qword [rsp + 0xf8]
mov rdx, rbx
mov r9, r10
mov rcx, qword [rdi + 0xe0]
mov al, byte [r8]
add rcx, r12
inc r8
mov byte [rcx + rdx + 0x2e], al
inc rdx
sub r9, 1
jne 0x14005dbfb
test r13d, r13d
je 0x14005dc45
mov r8, qword [rsp + 0x58]
mov rdx, rbx
mov rcx, qword [rdi + 0xe0]
mov al, byte [r14]
add rcx, r10
add rcx, r12
inc r14
mov byte [rcx + rdx + 0x2e], al
inc rdx
sub r8, 1
jne 0x14005dc25
cmp qword [rdi + 0xe0], rbx
jne 0x14005dc58
mov eax, 0xffffff98
jmp 0x14005ddb8
mov eax, dword [rsp + 0x160]
mov rdx, rsi
mov r9, qword [rsp + 0x60]
mov rcx, rdi
mov r8d, dword [rsp + 0xf0]
mov dword [rdi + 0x1010c], eax
mov qword [rdi + 0x10118], rbx
mov qword [rdi + 0x10120], rbx
mov qword [rdi + 0x10110], rbx
call fcn.14005d5fc
mov qword [rdi + 0x80], rbx
lea rcx, [rdi + 0x100]
mov qword [rdi + 0x88], rcx
mov esi, eax
mov qword [rdi + 0x90], 0x10000
mov dword [rdi + 0xc0], ebx
test eax, eax
jne 0x14005dd45
cmp dword [rdi + 0xf8], 8
jne 0x14005dd45
cmp dword [rdi + 0xfc], ebx
jne 0x14005dd45
mov eax, dword [rsp + 0x128]
lea rcx, [rdi + 0x78]
cdq
mov dword [rsp + 0x38], VarDateFromDisp
mov r9d, eax
mov qword [rdi + 0xa8], rbx
xor r9d, edx
mov qword [rdi + 0xb0], rbx
lea rax, str.1.2.5
mov qword [rdi + 0xb8], rbx
mov qword [rsp + 0x30], rax
lea r8d, [rsi + 8]
mov eax, dword [rsp + 0x138]
sub r9d, edx
mov dword [rsp + 0x28], eax
neg r9d
mov eax, dword [rsp + 0x130]
mov edx, ebp
mov dword [rsp + 0x20], eax
call fcn.1400618c8
mov esi, eax
test eax, eax
jne 0x14005dd45
mov dword [rdi + 0xd0], 8
mov dword [rdi + 0x10140], ebx
test esi, esi
jne 0x14005ddb6
test r15, r15
je 0x14005ddaf
mov eax, dword [rsp + 0x148]
lea r9, [0x14014b2c0]
lea r8, [rdi + 0x10128]
mov qword [rdi + 0x10138], r9
lea rdx, [rsp + 0x60]
mov dword [rdi + 0x10108], 1
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.14005c1c0
mov rdx, qword [rdi + 0x58]
lea r8, [rsp + 0x60]
mov rcx, qword [rdi + 0x38]
mov r9d, eax
mov ebx, eax
mov dword [rdi + 0x10140], eax
call qword [rdi + reloc.WS2_32.dll_recv]
cmp eax, ebx
je 0x14005ddaf
or esi, 0xffffffff
jmp 0x14005ddb6
mov dword [rdi + 0x70], 1
mov eax, esi
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400b0730
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret