Function at 0x180038360
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 0x180038390
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 + 0x188]
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 0x180038400
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1800383f9
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor eax, eax
jmp 0x1800386b9
test eax, eax
js 0x1800386f6
mov qword [rsp + 0xa0], rbp
lea rdx, [0x180106f48]
mov ecx, 0x400
mov qword [rsp + 0xa8], rsi
xor ebp, ebp
or esi, 0xffffffff
call fcn.18006aaa4
mov rbx, rax
test rax, rax
je 0x18003847f
xor edx, edx
mov r8d, 0x400
mov rcx, rax
call fcn.18006cf60
xor r11d, r11d
mov rdx, rbx
nop dword [rax]
mov eax, r11d
mov ecx, 8
test al, 1
je 0x180038465
shr eax, 1
xor eax, 0xedb88320
jmp 0x180038467
shr eax, 1
dec ecx
test ecx, ecx
jg 0x180038458
inc r11d
mov dword [rdx], eax
add rdx, 4
cmp r11d, 0x100
jl 0x180038450
test r13, r13
je 0x18003864f
nop dword [rax + rax]
mov rax, r13
mov qword [rsp + 0x40], 0
sub rax, rbp
cmp rax, 0x20000
jbe 0x1800384b4
mov dword [rsp + 0xb0], 0x20000
jmp 0x1800384c0
mov eax, r13d
sub eax, ebp
mov dword [rsp + 0xb0], eax
mov rcx, qword [rdi + 0x170]
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 0x18003861f
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x18003861f
mov r8d, dword [rsp + 0xb0]
test r8d, r8d
je 0x18003861f
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18003854c
mov dword [rsp + 0x30], eax
mov rax, qword [rcx]
lea r9, [rsp + 0x30]
call qword [rax + 0x18]
mov edi, eax
test eax, eax
jne 0x18003860d
mov eax, dword [rsp + 0xb0]
cmp dword [rsp + 0x30], eax
jne 0x1800385da
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 0x180038618
mov r8d, dword [rsp + 0xb0]
test r14d, r14d
je 0x1800385c1
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x1800385bf
test r8d, r8d
je 0x1800385bf
test rbx, rbx
je 0x1800385bf
test r8d, r8d
je 0x1800385c1
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 0x1800385a0
jmp 0x1800385c1
xor esi, esi
add rbp, r8
cmp rbp, r13
jae 0x18003864f
mov rdi, qword [rsp + 0x90]
jmp 0x180038490
mov rdi, qword [r12]
call fcn.180003180
mov rcx, r12
mov edx, eax
call qword [rdi + 0x28]
mov edi, eax
test eax, eax
je 0x1800385ff
test rbx, rbx
je 0x180038697
jmp 0x18003868f
test rbx, rbx
je 0x1800386e2
jmp 0x1800386da
test rbx, rbx
je 0x180038697
jmp 0x18003868f
test rbx, rbx
je 0x180038697
jmp 0x18003868f
mov rax, qword [r12]
mov edx, 0xe00e0004
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test rbx, rbx
je 0x18003863d
mov rcx, rbx
call fcn.18006aaac
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1800386a7
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
jmp 0x1800386a7
test r14d, r14d
je 0x180038678
not r14d
cmp esi, r14d
je 0x180038678
mov rax, qword [r12]
mov edx, 0xe00e0003
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test eax, eax
je 0x1800386d5
test rbx, rbx
je 0x180038697
jmp 0x18003868f
mov rax, qword [r12]
xor edx, edx
mov rcx, r12
call qword [rax + 0x28]
mov edi, eax
test eax, eax
je 0x1800386d5
test rbx, rbx
je 0x180038697
mov rcx, rbx
call fcn.18006aaac
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1800386a7
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 0x1800386e2
mov rcx, rbx
call fcn.18006aaac
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1800386f2
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor eax, eax
jmp 0x1800386a9
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x180038706
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, ebx
jmp 0x1800386b9