Function at 0x180001000
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push r12
push r14
push r15
sub rsp, 8
mov eax, dword [0x18003d7f0]
mov r14d, 1
lea r8, [0x18003c562]
test eax, eax
mov qword [rsp], r13
mov r10, rcx
cmove eax, r14d
xor r13d, r13d
mov r15, rcx
mov dword [rcx + 0x200], 0xa
mov r12, rcx
lea rbp, [0x180000000]
mov r9d, r13d
mov dword [0x18003d7f0], eax
sub r10, r8
nop word [rax + rax]
lea eax, [r9*4]
inc r9d
add r8, 4
movsxd rcx, eax
movzx eax, byte [r8 - 5]
movzx edx, byte [rcx + rbp + 0x3c560]
shl edx, 8
or edx, eax
movzx eax, byte [r8 - 4]
shl edx, 8
or edx, eax
movzx eax, byte [r8 - 3]
shl edx, 8
or edx, eax
mov dword [r10 + r8 - 4], edx
cmp r9d, 4
jl 0x180001060
mov eax, dword [r15 + 0x200]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rdi
cmp eax, 0xa
je 0x180001484
cmp eax, 0xc
je 0x180001207
cmp eax, 0xe
jne 0x180001724
lea r11, [0x180016930]
lea rbx, [0x18001694c]
nop word [rax + rax]
mov r10d, dword [r12 + 0x1c]
add r11, 4
add r12, 0x20
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
movzx edx, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl edx, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor edx, eax
movzx eax, r10b
movzx eax, byte [rax + rbp + 0x14730]
shl edx, 8
xor edx, eax
mov eax, r10d
shr eax, 0x18
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
mov ecx, dword [r12 - 0x18]
xor edx, eax
mov eax, dword [r12 - 0x1c]
xor edx, dword [r12 - 0x20]
xor edx, dword [r11 - 4]
xor eax, edx
mov dword [r12], edx
mov edx, dword [r12 - 0x14]
xor ecx, eax
mov dword [r12 + 4], eax
xor edx, ecx
mov dword [r12 + 8], ecx
mov dword [r12 + 0xc], edx
mov eax, edx
shr eax, 0x18
movzx ecx, al
mov eax, edx
shr edx, 8
movzx r8d, byte [rcx + rbp + 0x14730]
shr eax, 0x10
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp + 0x14730]
mov ecx, dword [r12 - 8]
xor r8d, eax
movzx eax, dl
movzx eax, byte [rax + rbp + 0x14730]
shl r8d, 8
xor r8d, eax
movzx eax, byte [r12 + 0xc]
movzx eax, byte [rax + rbp + 0x14730]
shl r8d, 8
xor r8d, eax
mov eax, dword [r12 - 0xc]
xor r8d, dword [r12 - 0x10]
xor eax, r8d
mov dword [r12 + 0x10], r8d
xor ecx, eax
mov dword [r12 + 0x14], eax
xor r10d, ecx
mov dword [r12 + 0x18], ecx
mov dword [r12 + 0x1c], r10d
cmp r11, rbx
jl 0x1800010f0
jmp 0x180001724
lea r14, [0x180016934]
lea r15, [0x180016954]
nop word [rax + rax]
mov edx, dword [r12 + 0x14]
mov r10d, dword [r12 + 0xc]
mov r8d, dword [r12 + 4]
mov r11d, dword [r12 + 0x10]
mov eax, edx
shr eax, 0x10
movzx ecx, al
mov eax, edx
movzx esi, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl esi, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor esi, eax
movzx eax, dl
movzx eax, byte [rax + rbp + 0x14730]
shl esi, 8
xor esi, eax
mov eax, edx
shr eax, 0x18
shl esi, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor esi, eax
xor esi, dword [r14 - 4]
xor esi, dword [r12]
xor r8d, esi
mov dword [r12 + 0x18], esi
mov dword [r12 + 0x1c], r8d
mov r9d, r8d
xor r9d, dword [r12 + 8]
mov dword [r12 + 0x20], r9d
xor r10d, r9d
mov dword [r12 + 0x24], r10d
xor r11d, r10d
mov dword [r12 + 0x28], r11d
mov ebx, r11d
xor ebx, edx
mov dword [r12 + 0x2c], ebx
mov eax, ebx
shr eax, 0x10
movzx ecx, al
mov eax, ebx
movzx edi, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl edi, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor edi, eax
movzx eax, bl
movzx eax, byte [rax + rbp + 0x14730]
shl edi, 8
xor edi, eax
mov eax, ebx
shr eax, 0x18
shl edi, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor edi, eax
xor edi, dword [r14]
xor edi, esi
mov edx, edi
mov dword [r12 + 0x30], edi
xor edx, r8d
mov r8d, edx
mov dword [r12 + 0x34], edx
xor r8d, r9d
mov r9d, r8d
mov dword [r12 + 0x38], r8d
xor r9d, r10d
lea r10, [0x180000000]
mov ebp, r9d
mov dword [r12 + 0x3c], r9d
xor ebp, r11d
mov esi, ebp
mov dword [r12 + 0x40], ebp
xor esi, ebx
mov eax, esi
mov dword [r12 + 0x44], esi
shr eax, 0x10
movzx ecx, al
movzx ebx, byte [rcx + r10 + 0x14730]
mov eax, esi
add r14, 0x10
shr eax, 8
shl ebx, 8
add r12, 0x60
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x14730]
xor ebx, eax
movzx eax, sil
movzx eax, byte [rax + r10 + 0x14730]
shl ebx, 8
xor ebx, eax
mov eax, esi
shr eax, 0x18
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + r10 + 0x14730]
xor ebx, eax
xor ebx, dword [r14 - 0xc]
xor ebx, edi
mov dword [r12 - 0x18], ebx
mov r10d, ebx
xor r10d, edx
mov dword [r12 - 0x14], r10d
mov r11d, r10d
xor r11d, r8d
mov dword [r12 - 0x10], r11d
mov r8d, r11d
xor r8d, r9d
lea r9, [0x180000000]
mov dword [r12 - 0xc], r8d
xor ebp, r8d
xor esi, ebp
mov dword [r12 - 8], ebp
mov dword [r12 - 4], esi
mov eax, esi
shr eax, 0x10
movzx ecx, al
mov eax, esi
movzx edx, byte [rcx + r9 + 0x14730]
shr eax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + r9 + 0x14730]
xor edx, eax
movzx eax, sil
movzx eax, byte [rax + r9 + 0x14730]
shl edx, 8
xor edx, eax
mov eax, esi
shl edx, 8
shr eax, 0x18
movzx ecx, al
movzx eax, byte [rcx + r9 + 0x14730]
xor edx, eax
xor edx, dword [r14 - 8]
xor edx, ebx
mov dword [r12], edx
xor edx, r10d
xor r11d, edx
mov dword [r12 + 4], edx
xor r8d, r11d
mov dword [r12 + 8], r11d
xor ebp, r8d
mov dword [r12 + 0xc], r8d
xor esi, ebp
mov dword [r12 + 0x10], ebp
lea rbp, [0x180000000]
mov dword [r12 + 0x14], esi
cmp r14, r15
jl 0x180001220
mov r14d, 1
lea rbp, [0x180000000]
jmp 0x18000171f
lea rsi, [0x180016934]
lea r15, [0x18001695c]
nop word [rax + rax]
mov r11d, dword [r12 + 0xc]
mov edx, dword [r12 + 4]
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
movzx r9d, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl r9d, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor r9d, eax
movzx eax, r11b
movzx eax, byte [rax + rbp + 0x14730]
shl r9d, 8
xor r9d, eax
mov eax, r11d
shr eax, 0x18
shl r9d, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor r9d, eax
xor r9d, dword [rsi - 4]
xor r9d, dword [r12]
mov dword [r12 + 0x10], r9d
xor edx, r9d
mov dword [r12 + 0x14], edx
mov r8d, edx
xor r8d, dword [r12 + 8]
xor r11d, r8d
mov dword [r12 + 0x18], r8d
mov dword [r12 + 0x1c], r11d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
movzx r10d, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor r10d, eax
movzx eax, r11b
movzx eax, byte [rax + rbp + 0x14730]
shl r10d, 8
xor r10d, eax
mov eax, r11d
shr eax, 0x18
shl r10d, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor r10d, eax
xor r10d, r9d
xor r10d, dword [rsi]
mov dword [r12 + 0x20], r10d
mov r9d, r10d
xor r9d, edx
mov dword [r12 + 0x24], r9d
mov edi, r9d
xor edi, r8d
xor r11d, edi
mov dword [r12 + 0x28], edi
mov dword [r12 + 0x2c], r11d
mov eax, r11d
shr eax, 0x10
movzx ecx, al
mov eax, r11d
movzx r8d, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl r8d, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor r8d, eax
movzx eax, r11b
movzx eax, byte [rax + rbp + 0x14730]
shl r8d, 8
xor r8d, eax
mov eax, r11d
shl r8d, 8
shr eax, 0x18
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
add rsi, 0x14
add r12, 0x50
xor r8d, eax
xor r8d, dword [rsi - 0x10]
xor r8d, r10d
mov dword [r12 - 0x20], r8d
mov edx, r8d
xor edx, r9d
mov dword [r12 - 0x1c], edx
xor edi, edx
mov dword [r12 - 0x18], edi
mov r10d, edi
xor r10d, r11d
mov dword [r12 - 0x14], r10d
mov eax, r10d
shr eax, 0x10
movzx ecx, al
mov eax, r10d
movzx ebx, byte [rcx + rbp + 0x14730]
shr eax, 8
movzx ecx, al
shl ebx, 8
movzx eax, byte [rcx + rbp + 0x14730]
xor ebx, eax
movzx eax, r10b
movzx eax, byte [rax + rbp + 0x14730]
shl ebx, 8
xor ebx, eax
mov eax, r10d
shr eax, 0x18
shl ebx, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor ebx, eax
xor ebx, dword [rsi - 0xc]
xor ebx, r8d
mov dword [r12 - 0x10], ebx
mov r11d, ebx
xor r11d, edx
mov dword [r12 - 0xc], r11d
mov r9d, r11d
xor r9d, edi
mov dword [r12 - 8], r9d
mov r8d, r9d
xor r8d, r10d
mov dword [r12 - 4], r8d
mov eax, r8d
shr eax, 0x10
movzx ecx, al
mov eax, r8d
movzx edx, byte [rcx + rbp + 0x14730]
shr eax, 8
shl edx, 8
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor edx, eax
movzx eax, r8b
movzx eax, byte [rax + rbp + 0x14730]
shl edx, 8
xor edx, eax
mov eax, r8d
shl edx, 8
shr eax, 0x18
movzx ecx, al
movzx eax, byte [rcx + rbp + 0x14730]
xor edx, eax
xor edx, dword [rsi - 8]
xor edx, ebx
mov dword [r12], edx
xor edx, r11d
mov dword [r12 + 4], edx
xor edx, r9d
mov dword [r12 + 8], edx
xor edx, r8d
mov dword [r12 + 0xc], edx
cmp rsi, r15
jl 0x1800014a0
mov r15, qword [rsp + 0x30]
cmp dword [0x18003d7f4], r13d
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
jne 0x18000186c
movzx ecx, byte [r13 + rbp + 0x14730]
add r13, 4
mov eax, dword [rbp + rcx*4 + 0x15930]
mov dword [rbp + r13*4 + 0x3dff0], eax
mov eax, dword [rbp + rcx*4 + 0x15d30]
mov dword [rbp + r13*4 + 0x3dbf0], eax
mov eax, dword [rbp + rcx*4 + 0x16130]
mov dword [rbp + r13*4 + 0x3d7f0], eax
mov eax, dword [rbp + rcx*4 + 0x16530]
movzx ecx, byte [r13 + rbp + 0x1472d]
mov dword [rbp + r13*4 + 0x3e3f0], eax
mov eax, dword [rbp + rcx*4 + 0x15930]
mov dword [rbp + r13*4 + 0x3dff4], eax
mov eax, dword [rbp + rcx*4 + 0x15d30]
mov dword [rbp + r13*4 + 0x3dbf4], eax
mov eax, dword [rbp + rcx*4 + 0x16130]
mov dword [rbp + r13*4 + 0x3d7f4], eax
mov eax, dword [rbp + rcx*4 + 0x16530]
movzx ecx, byte [r13 + rbp + 0x1472e]
mov dword [rbp + r13*4 + 0x3e3f4], eax
mov eax, dword [rbp + rcx*4 + 0x15930]
mov dword [rbp + r13*4 + 0x3dff8], eax
mov eax, dword [rbp + rcx*4 + 0x15d30]
mov dword [rbp + r13*4 + 0x3dbf8], eax
mov eax, dword [rbp + rcx*4 + 0x16130]
mov dword [rbp + r13*4 + 0x3d7f8], eax
mov eax, dword [rbp + rcx*4 + 0x16530]
movzx ecx, byte [r13 + rbp + 0x1472f]
mov dword [rbp + r13*4 + 0x3e3f8], eax
mov eax, dword [rbp + rcx*4 + 0x15930]
mov dword [rbp + r13*4 + 0x3dffc], eax
mov eax, dword [rbp + rcx*4 + 0x15d30]
mov dword [rbp + r13*4 + 0x3dbfc], eax
mov eax, dword [rbp + rcx*4 + 0x16130]
mov dword [rbp + r13*4 + 0x3d7fc], eax
mov eax, dword [rbp + rcx*4 + 0x16530]
mov dword [rbp + r13*4 + 0x3e3fc], eax
cmp r13, 0x100
jl 0x180001740
mov dword [0x18003d7f4], r14d
mov eax, dword [r12]
mov r13, qword [rsp]
lea r10, [r15 + 0x100]
mov dword [r10], eax
mov eax, dword [r12 + 4]
add r10, 0x10
mov dword [r10 - 0xc], eax
mov eax, dword [r12 + 8]
add r12, 0x10
mov dword [r10 - 8], eax
mov eax, dword [r12 - 4]
mov dword [r10 - 4], eax
cmp dword [r15 + 0x200], 1
jle 0x1800019ec
nop
mov r9d, dword [r12 - 0x20]
inc r14d
add r10, 0x10
mov eax, r9d
add r12, 0xfffffffffffffff0
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [rbp + rdx*4 + 0x3e000]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rbp + rcx*4 + 0x3dc00]
xor r8d, dword [rbp + rax*4 + 0x3d800]
movzx eax, byte [r12 - 0x10]
xor r8d, dword [rbp + rax*4 + 0x3e400]
mov dword [r10 - 0x10], r8d
mov r9d, dword [r12 - 0xc]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [rbp + rdx*4 + 0x3e000]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rbp + rcx*4 + 0x3dc00]
xor r8d, dword [rbp + rax*4 + 0x3d800]
movzx eax, byte [r12 - 0xc]
xor r8d, dword [rbp + rax*4 + 0x3e400]
mov dword [r10 - 0xc], r8d
mov r9d, dword [r12 - 8]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [rbp + rdx*4 + 0x3e000]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rbp + rcx*4 + 0x3dc00]
xor r8d, dword [rbp + rax*4 + 0x3d800]
movzx eax, byte [r12 - 8]
xor r8d, dword [rbp + rax*4 + 0x3e400]
mov dword [r10 - 8], r8d
mov r9d, dword [r12 - 4]
mov eax, r9d
shr eax, 0x18
movzx edx, al
mov eax, r9d
shr r9d, 8
mov r8d, dword [rbp + rdx*4 + 0x3e000]
shr eax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8d, dword [rbp + rcx*4 + 0x3dc00]
xor r8d, dword [rbp + rax*4 + 0x3d800]
movzx eax, byte [r12 - 4]
xor r8d, dword [rbp + rax*4 + 0x3e400]
mov dword [r10 - 4], r8d
cmp r14d, dword [r15 + 0x200]
jl 0x1800018b0
mov eax, dword [r12 - 0x20]
mov dword [r10], eax
mov eax, dword [r12 - 0x1c]
mov dword [r10 + 4], eax
mov eax, dword [r12 - 0x18]
mov dword [r10 + 8], eax
mov eax, dword [r12 - 0x14]
mov dword [r10 + 0xc], eax
add rsp, 8
pop r15
pop r14
pop r12
pop rbp
ret