Function at 0x18002ba70
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
push rdi
push r12
push r15
sub rsp, 0x70
mov r12, qword [rsp + 0xb0]
mov r15, r9
mov rdi, rcx
test r12, r12
jne 0x18002baa0
mov eax, 0x80004005
add rsp, 0x70
pop r15
pop r12
pop rdi
ret
mov eax, edx
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x68], r13
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x1c0]
mov qword [rsp + 0x60], r14
mov r9, qword [rax + rcx*8 + 8]
mov r13, qword [rax + rcx*8]
mov r14d, dword [rax + rcx*8 + 0x10]
mov eax, dword [rax + rcx*8 + 0x14]
mov qword [rsp + 0x48], r9
lea r9, [rsp + 0x38]
mov dword [rsp + 0x34], eax
mov rax, qword [r12]
mov rcx, r12
mov qword [rsp + 0x38], 0
call qword [rax + 0x38]
mov ebx, eax
cmp eax, 1
jne 0x18002bb10
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002bb09
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor eax, eax
jmp 0x18002bdc9
test eax, eax
js 0x18002be06
mov qword [rsp + 0xa0], rbp
lea rdx, [0x1801171e8]
mov ecx, 0x400
mov qword [rsp + 0xa8], rsi
xor ebp, ebp
or esi, 0xffffffff
call fcn.180077024
mov rbx, rax
test rax, rax
je 0x18002bb8f
xor edx, edx
mov r8d, 0x400
mov rcx, rax
call fcn.1800795c0
xor r11d, r11d
mov rdx, rbx
nop dword [rax]
mov eax, r11d
mov ecx, 8
test al, 1
je 0x18002bb75
shr eax, 1
xor eax, 0xedb88320
jmp 0x18002bb77
shr eax, 1
dec ecx
test ecx, ecx
jg 0x18002bb68
inc r11d
mov dword [rdx], eax
add rdx, 4
cmp r11d, 0x100
jl 0x18002bb60
test r13, r13
je 0x18002bd5f
nop dword [rax + rax]
mov rax, r13
mov qword [rsp + 0x40], 0
sub rax, rbp
cmp rax, 0x20000
jbe 0x18002bbc4
mov dword [rsp + 0xb0], 0x20000
jmp 0x18002bbd0
mov eax, r13d
sub eax, ebp
mov dword [rsp + 0xb0], eax
mov rcx, qword [rdi + 0x1a8]
mov r8d, dword [rsp + 0x34]
lea rdx, [rsp + 0xb0]
mov rax, qword [rcx]
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x48]
mov r9, rbp
call qword [rax + 0x20]
test eax, eax
jne 0x18002bd2f
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x18002bd2f
mov r8d, dword [rsp + 0xb0]
test r8d, r8d
je 0x18002bd2f
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002bc5c
mov dword [rsp + 0x30], eax
mov rax, qword [rcx]
lea r9, [rsp + 0x30]
call qword [rax + 0x18]
mov edi, eax
test eax, eax
jne 0x18002bd1d
mov eax, dword [rsp + 0xb0]
cmp dword [rsp + 0x30], eax
jne 0x18002bcea
lea rax, [r15 + rbp]
lea rdx, [rsp + 0x50]
mov rcx, r12
mov qword [rsp + 0x50], rax
mov rax, qword [r12]
call qword [rax + 0x20]
mov edi, eax
test eax, eax
jne 0x18002bd28
mov r8d, dword [rsp + 0xb0]
test r14d, r14d
je 0x18002bcd1
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x18002bccf
test r8d, r8d
je 0x18002bccf
test rbx, rbx
je 0x18002bccf
test r8d, r8d
je 0x18002bcd1
mov r9, r8
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, sil
inc rdx
xor rcx, rax
mov eax, esi
mov esi, dword [rbx + rcx*4]
shr eax, 8
xor esi, eax
sub r9, 1
jne 0x18002bcb0
jmp 0x18002bcd1
xor esi, esi
add rbp, r8
cmp rbp, r13
jae 0x18002bd5f
mov rdi, qword [rsp + 0x90]
jmp 0x18002bba0
mov rdi, qword [r12]
call fcn.180003220
mov rcx, r12
mov edx, eax
call qword [rdi + 0x28]
mov edi, eax
test eax, eax
je 0x18002bd0f
test rbx, rbx
je 0x18002bda7
jmp 0x18002bd9f
test rbx, rbx
je 0x18002bdf2
jmp 0x18002bdea
test rbx, rbx
je 0x18002bda7
jmp 0x18002bd9f
test rbx, rbx
je 0x18002bda7
jmp 0x18002bd9f
mov rax, qword [r12]
mov edx, 0xe00e0004
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test rbx, rbx
je 0x18002bd4d
mov rcx, rbx
call fcn.18007702c
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002bdb7
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
jmp 0x18002bdb7
test r14d, r14d
je 0x18002bd88
not r14d
cmp esi, r14d
je 0x18002bd88
mov rax, qword [r12]
mov edx, 0xe00e0003
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test eax, eax
je 0x18002bde5
test rbx, rbx
je 0x18002bda7
jmp 0x18002bd9f
mov rax, qword [r12]
xor edx, edx
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test eax, eax
je 0x18002bde5
test rbx, rbx
je 0x18002bda7
mov rcx, rbx
call fcn.18007702c
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002bdb7
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, edi
mov rsi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xa0]
mov r13, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x98]
mov r14, qword [rsp + 0x60]
add rsp, 0x70
pop r15
pop r12
pop rdi
ret
test rbx, rbx
je 0x18002bdf2
mov rcx, rbx
call fcn.18007702c
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002be02
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor eax, eax
jmp 0x18002bdb9
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18002be16
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebx
jmp 0x18002bdc9