Function at 0x18001f530
Capabilities:
Hash data with crc32

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x170
mov edx, dword [rcx + 0xb1]
lea r14, [rcx + 0xad]
mov dword [rsp + 0x1b0], 0xa1253f35
movzx eax, dl
xor al, 0x35
mov dword [r14], 0xab12ab0f
mov byte [rsp + 0x1b0], al
mov rbx, rcx
mov eax, edx
xor ecx, ecx
shr rax, 8
xor byte [rsp + 0x1b1], al
mov eax, edx
shr rax, 0x10
xor byte [rsp + 0x1b2], al
mov eax, edx
shr rax, 0x18
xor byte [rsp + 0x1b3], al
movzx eax, dl
mov ebp, dword [rsp + 0x1b0]
xor al, 0x41
mov dword [rsp + 0x1b0], 0xb155ab41
mov byte [rsp + 0x1b0], al
mov eax, edx
shr rax, 8
xor byte [rsp + 0x1b1], al
mov eax, edx
shr rax, 0x10
xor byte [rsp + 0x1b2], al
shr rdx, 0x18
xor byte [rsp + 0x1b3], dl
call fcn.1800082e0
sub eax, 0x386e02c7
lea r8, [0x1800438c0]
mov dword [rbx + 0xc3], eax
movzx eax, byte [r14]
movzx ecx, byte [r14 + 1]
xor rax, 0xe4
mov edx, dword [r8 + rax*4]
xor edx, 0x5afa20
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 2]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 3]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 4]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 5]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 6]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 7]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 8]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 9]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xa]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xb]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xc]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xd]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xe]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0xf]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x10]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x11]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x12]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x13]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x14]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x15]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x16]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x17]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x18]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x19]
movzx eax, dl
xor rcx, rax
shr edx, 8
lea rsi, [rbx + 0x176c]
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1a]
movzx eax, dl
xor rcx, rax
shr edx, 8
mov dword [rsp + 0x1a0], 0x100
mov dword [rsp + 0x1a8], 0x100
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1b]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1c]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1d]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1e]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x1f]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x20]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx ecx, byte [r14 + 0x21]
movzx eax, dl
xor rcx, rax
shr edx, 8
xor edx, dword [r8 + rcx*4]
movzx eax, dl
shr edx, 8
not al
movzx ecx, al
mov eax, dword [rbx + 0xb1]
mov dword [rsp + 0x60], eax
movzx eax, byte [rbx + 0xbd]
xor edx, dword [r8 + rcx*4]
cmp dword [rsi], 0
not edx
mov word [rsp + 0x64], ax
movabs rax, 0x211d7080c67d5385
mov dword [rbx + 0xcf], edx
mov qword [rsp + 0x66], rax
jne 0x18001f8b9
mov dword [rsi], 0x800
mov r10, qword [rbx]
lea rdi, [rbx + 0x2774]
movzx eax, byte [rdi]
xor r8d, r8d
test al, al
mov edx, r8d
mov ecx, 0x10001
lea rax, [rbx + 0xd07]
cmove edx, ecx
mov r9d, recv
mov dword [rsp + 0x58], edx
mov ecx, 0x300
cmove r8d, ecx
lea rcx, [rsp + 0x1a8]
mov dword [rsp + 0x50], r8d
lea r8, [rsp + 0x60]
mov qword [rsp + 0x48], rsi
lea edx, [r9 + 0x18]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x1a0]
mov qword [rsp + 0x28], rcx
mov rcx, r14
mov qword [rsp + 0x20], rax
call r10
test eax, eax
jne 0x18001f980
cmp dword [rsp + 0x1a0], 0x60
jne 0x18001f980
mov eax, dword [rsp + 0x1b0]
lea rcx, [rbx + 0x45c]
mov r8d, dword [rsi]
mov r9d, 3
mov rdx, rdi
mov dword [rbx + 0xd67], eax
mov dword [rbx + 0xd03], ebp
call fcn.18001b0d0
mov al, 1
add rsp, 0x170
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor al, al
add rsp, 0x170
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret