Function at 0x18002c400
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x260]
sub rsp, 0x360
mov rax, qword [0x18027ceb0]
xor rax, rsp
mov qword [rbp + 0x250], rax
movabs rax, 0x79cc451979cc4519
mov r13, rcx
mov qword [rsp + 0x30], rcx
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rax
movabs r8, 0x7a879d8a7a879d8a
lea rax, [rbp + 0x90]
mov ecx, 3
nop word [rax + rax]
mov qword [rax], r8
mov qword [rax + 8], r8
mov qword [rax + 0x10], r8
lea rax, [rax + 0x40]
mov qword [rax - 0x28], r8
mov qword [rax - 0x20], r8
mov qword [rax - 0x18], r8
mov qword [rax - 0x10], r8
mov qword [rax - 8], r8
dec rcx
jne 0x18002c490
movzx eax, byte [rdx + 1]
movzx ecx, byte [rdx]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 5]
mov dword [rsp + 0x40], ecx
movzx ecx, byte [rdx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
mov dword [rsp + 0x44], ecx
movzx ecx, byte [rdx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
mov dword [rsp + 0x48], ecx
movzx ecx, byte [rdx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x11]
mov dword [rsp + 0x4c], ecx
movzx ecx, byte [rdx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x15]
mov dword [rsp + 0x50], ecx
movzx ecx, byte [rdx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x19]
mov dword [rsp + 0x54], ecx
movzx ecx, byte [rdx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x1d]
mov dword [rsp + 0x58], ecx
movzx ecx, byte [rdx + 0x1c]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdx + 0x1e]
or ecx, eax
movzx eax, byte [rdx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x21]
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [rdx + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x25]
mov dword [rsp + 0x60], ecx
movzx ecx, byte [rdx + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x29]
mov dword [rsp + 0x64], ecx
movzx ecx, byte [rdx + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2d]
mov dword [rsp + 0x68], ecx
movzx ecx, byte [rdx + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x31]
mov dword [rsp + 0x6c], ecx
movzx ecx, byte [rdx + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x32]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x33]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x35]
mov dword [rsp + 0x70], ecx
movzx ecx, byte [rdx + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x39]
mov dword [rsp + 0x74], ecx
movzx ecx, byte [rdx + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3a]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rdx + 0x3b]
lea r8, [rsp + 0x40]
mov r9d, 0x34
or ecx, eax
movzx eax, byte [rdx + 0x3d]
mov dword [rsp + 0x78], ecx
movzx ecx, byte [rdx + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0x3f]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x7c], ecx
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r8 + 0x34]
mov ecx, dword [r8 + 0xc]
lea r8, [r8 + 4]
rol ecx, 7
rol edx, 0xf
xor edx, dword [r8 + 0x18]
xor edx, dword [r8 - 4]
mov eax, edx
rol eax, 0xf
xor ecx, eax
mov eax, edx
ror eax, 9
xor ecx, eax
xor ecx, dword [r8 + 0x24]
xor ecx, edx
mov dword [r8 + 0x3c], ecx
dec r9
jne 0x18002c700
xor r14d, r14d
lea ecx, [r9 + 8]
mov qword [rsp + 0x28], r14
mov eax, r14d
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + rax + 0x50]
movdqu xmm1, xmmword [rsp + rax + 0x40]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x130], xmm1
movdqu xmm1, xmmword [rsp + rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x140], xmm1
dec rcx
jne 0x18002c750
mov eax, dword [r13 + 8]
mov edi, dword [r13 + 0xc]
mov r11d, dword [r13 + 0x10]
mov r12d, dword [r13 + 0x14]
mov r10d, dword [r13 + 0x18]
mov esi, dword [r13 + 0x1c]
mov ebx, dword [r13 + 0x20]
mov ecx, r14d
mov dword [rsp + 0x18], eax
mov r15d, eax
mov eax, dword [r13 + 0x24]
mov r9, r14
mov dword [rsp + 0x1c], edi
mov dword [rsp + 0x14], r11d
mov dword [rsp + 0x24], r12d
mov dword [rsp + 0x10], eax
mov r14d, eax
mov dword [rsp + 0x20], r10d
mov dword [rsp + 8], esi
mov dword [rsp + 0xc], ebx
mov dword [rsp + 4], ecx
nop dword [rax + rax]
mov r8d, dword [rbp + r9 + 0x50]
mov eax, r11d
mov edx, r15d
rol edx, 0xc
xor eax, edi
lea r9, [r9 + 4]
rol r8d, cl
xor eax, r15d
add r8d, edx
add r8d, r10d
rol r8d, 7
xor edx, r8d
add eax, edx
mov edx, ebx
add eax, dword [rbp + r9 + 0x14c]
xor edx, esi
xor edx, r10d
add eax, r12d
mov r12d, r11d
add edx, dword [rsp + r9 + 0x3c]
mov r11d, edi
mov edi, r15d
add edx, r8d
mov r15d, eax
add edx, r14d
rol r11d, 9
mov r14d, ebx
mov ebx, esi
mov esi, r10d
mov r10d, edx
mov ecx, edx
rol ecx, 9
ror r10d, 0xf
xor r10d, ecx
mov ecx, dword [rsp + 4]
ror ebx, 0xd
inc ecx
xor r10d, edx
mov dword [rsp + 4], ecx
cmp ecx, 0x10
jl 0x18002c7e0
mov dword [rsp], r14d
mov r14, qword [rsp + 0x28]
mov ecx, 0x10
mov r13d, dword [rsp]
mov dword [rsp + 4], ecx
nop dword [rax]
mov r9d, dword [rbp + r14 + 0x90]
mov edx, eax
mov r8d, eax
rol r9d, cl
or edx, edi
mov ecx, eax
and edx, r11d
and ecx, edi
lea r14, [r14 + 4]
mov eax, edx
rol r8d, 0xc
mov edx, r10d
or eax, ecx
not edx
add r9d, r8d
and edx, ebx
add r9d, r10d
mov ecx, esi
and ecx, r10d
or edx, ecx
add edx, dword [rsp + r14 + 0x7c]
rol r9d, 7
add edx, r9d
xor r8d, r9d
add edx, r13d
add eax, r8d
mov r13d, ebx
add eax, dword [rbp + r14 + 0x18c]
mov ebx, esi
mov esi, r10d
add eax, r12d
mov r12d, r11d
mov r11d, edi
mov r10d, edx
mov ecx, edx
mov edi, r15d
rol r11d, 9
mov r15d, eax
rol ecx, 9
ror r10d, 0xf
xor r10d, ecx
mov ecx, dword [rsp + 4]
ror ebx, 0xd
inc ecx
xor r10d, edx
mov dword [rsp + 4], ecx
cmp ecx, 0x40
jl 0x18002c880
mov ecx, dword [rsp + 0x18]
mov dword [rsp], r13d
mov r13, qword [rsp + 0x30]
xor ecx, eax
mov eax, dword [rsp + 0x1c]
xor eax, edi
mov dword [r13 + 8], ecx
mov ecx, dword [rsp + 0x10]
mov dword [r13 + 0xc], eax
mov eax, dword [rsp + 0x14]
xor eax, r11d
mov dword [r13 + 0x10], eax
mov eax, dword [rsp + 0x24]
xor eax, r12d
mov dword [r13 + 0x14], eax
mov eax, dword [rsp + 0x20]
xor eax, r10d
mov dword [r13 + 0x18], eax
mov eax, dword [rsp + 8]
xor eax, esi
mov dword [r13 + 0x1c], eax
mov eax, dword [rsp + 0xc]
xor eax, ebx
xor ecx, dword [rsp]
mov dword [r13 + 0x24], ecx
mov dword [r13 + 0x20], eax
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.18004fba0
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret