Function at 0x100c0780
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x50], r12
xor r12d, r12d
cmp dword [rcx + 0x2cd8], 2
mov qword [rsp + 0x48], r13
mov rbx, rcx
mov dword [rcx + 0x2cd0], r12d
lea r13d, [r12 + 8]
jne 0x100c0865
mov edx, dword [rcx + 0x50]
mov esi, dword [rbx + 0x54]
mov ecx, r13d
sub ecx, edx
lea eax, [rdx + 1]
shr esi, cl
mov dword [rbx + 0x50], eax
shr esi, 0x17
and esi, 1
cmp eax, r13d
jb 0x100c081c
nop
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c07f9
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0803
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov ecx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x54], ecx
cmp dword [rbx + 0x50], r13d
jae 0x100c07e0
test esi, esi
je 0x100c085e
mov r8d, dword [rbx + 0xa0]
test r8d, r8d
jne 0x100c083a
mov r12d, 1
mov eax, r12d
jmp 0x100c0e3a
mov edx, dword [rbx + 0x9c]
sub qword [rbx + 0xa8], r8
lea rcx, [rbx + 0x18]
call fcn.10013b18
test al, al
sete r12b
mov eax, r12d
jmp 0x100c0e3a
mov dword [rbx + 0x2cd8], r12d
mov edx, dword [rbx + 0x54]
mov ecx, r13d
sub ecx, dword [rbx + 0x50]
shr edx, cl
shr edx, 0x10
cmp dword [rbx + 0x2cc0], 0x25
movzx r11d, dl
jae 0x100c08a2
cmp dword [rbx + 0x2ccc], r12d
lea rax, [0x1013d6c8]
lea r10, [0x1013d6b8]
cmovne r10, rax
lea r8, [0x1013d6f8]
jmp 0x100c08c2
cmp dword [rbx + 0x2ccc], r12d
lea rax, [0x1013d6e8]
lea r10, [0x1013d6d8]
cmovne r10, rax
lea r8, [0x1013d738]
movzx ecx, byte [r10]
mov eax, dword [r8]
mov edx, 0xff
sar edx, cl
xor eax, r11d
mov edi, r12d
not edx
test eax, edx
je 0x100c0902
mov r9, r10
nop
movzx ecx, byte [r9 + 1]
mov eax, dword [r8 + 4]
inc r9
add r8, 4
mov edx, 0xff
xor eax, r11d
sar edx, cl
inc edi
not edx
test eax, edx
jne 0x100c08e0
mov eax, edi
movzx ecx, byte [rax + r10]
add dword [rbx + 0x50], ecx
cmp dword [rbx + 0x50], r13d
jb 0x100c094e
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c092b
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0935
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov ecx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x54], ecx
cmp dword [rbx + 0x50], r13d
jae 0x100c0912
cmp edi, 9
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r15
jb 0x100c0c2d
cmp edi, 9
jne 0x100c09a3
mov r8d, dword [rbx + 0xa0]
inc dword [rbx + 0x2cd8]
test r8d, r8d
jne 0x100c0988
mov r12d, 1
jmp 0x100c0e28
mov edx, dword [rbx + 0x9c]
sub qword [rbx + 0xa8], r8
lea rcx, [rbx + 0x18]
call fcn.10013b18
jmp 0x100c0e22
cmp edi, 0xe
jne 0x100c0b00
mov dword [rbx + 0x2cd8], r12d
mov ebp, dword [rbx + 0x54]
mov edx, dword [0x1013d574]
sub edx, dword [0x1013d570]
mov ecx, r13d
lea esi, [rdi - 0xc]
sub ecx, dword [rbx + 0x50]
shl edx, 0xa
lea r14d, [rdi - 2]
shr ebp, cl
shr ebp, 0xc
and ebp, 0xfff
cmp ebp, edx
jb 0x100c0a0a
lea r8, [0x1013d570]
nop
nop
sub ebp, edx
mov edx, dword [r8 + 8]
add r8, 4
sub edx, dword [r8]
inc esi
mov ecx, r14d
sub ecx, esi
shl edx, cl
cmp ebp, edx
jae 0x100c09f0
add dword [rbx + 0x50], esi
cmp dword [rbx + 0x50], r13d
jb 0x100c0a4f
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c0a2c
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0a36
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov ecx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x54], ecx
cmp dword [rbx + 0x50], r13d
jae 0x100c0a13
sub r14d, esi
mov eax, esi
movzx ecx, r14b
shr ebp, cl
lea rcx, [0x10000000]
mov eax, dword [rcx + rax*4 + 0x13d568]
lea esi, [rbp + rax + 5]
mov eax, dword [rbx + 0x50]
mov ebp, dword [rbx + 0x54]
sub r13d, eax
add eax, 0xf
movzx ecx, r13b
mov dword [rbx + 0x50], eax
shr ebp, cl
shr ebp, 9
and ebp, 0x7fff
cmp eax, 8
jb 0x100c0acc
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c0aa9
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0ab3
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov ecx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x54], ecx
cmp dword [rbx + 0x50], 8
jae 0x100c0a90
test esi, esi
lea edx, [rbp + 0x7fff]
mov dword [rbx + 0xa0], esi
mov dword [rbx + 0x9c], edx
je 0x100c097d
mov eax, esi
lea rcx, [rbx + 0x18]
mov r8d, esi
sub qword [rbx + 0xa8], rax
call fcn.10013b18
jmp 0x100c0e22
mov ecx, dword [rbx + 0x98]
mov dword [rbx + 0x2cd8], r12d
sub r13d, dword [rbx + 0x50]
mov edx, dword [reloc.OLEAUT32.dll_SysReAllocString]
sub ecx, edi
mov dword [rsp + 0x20], r13d
sub edx, dword [0x1013d538]
mov r13d, dword [rbx + 0x54]
inc ecx
and ecx, 3
mov esi, 2
shl edx, 0xa
mov ebp, dword [rbx + rcx*4 + 0x88]
movzx ecx, byte [rsp + 0x20]
mov r15d, edi
shr r13d, cl
lea r14d, [rsi + 0xa]
shr r13d, 0xc
and r13d, 0xfff
cmp r13d, edx
jb 0x100c0b8c
lea r8, [0x1013d538]
nop
nop
nop
nop
sub r13d, edx
mov edx, dword [r8 + 8]
add r8, 4
sub edx, dword [r8]
inc esi
mov ecx, r14d
sub ecx, esi
shl edx, cl
cmp r13d, edx
jae 0x100c0b70
add dword [rbx + 0x50], esi
cmp dword [rbx + 0x50], 8
jb 0x100c0bd1
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c0bae
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0bb8
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov ecx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl ecx, 8
or ecx, eax
mov dword [rbx + 0x54], ecx
cmp dword [rbx + 0x50], 8
jae 0x100c0b95
sub r14d, esi
mov eax, esi
movzx ecx, r14b
shr r13d, cl
lea rcx, [0x10000000]
mov eax, dword [rcx + rax*4 + 0x13d530]
lea edi, [r13 + rax + 2]
cmp edi, 0x101
jne 0x100c0c0c
cmp r15d, 0xa
jne 0x100c0c0c
xor dword [rbx + 0x2ccc], 1
xor eax, eax
jmp 0x100c0e2b
cmp ebp, 0x100
jb 0x100c0c16
inc edi
mov eax, dword [rbx + 0x2ce8]
dec eax
cmp ebp, eax
jb 0x100c0d48
inc edi
jmp 0x100c0d48
mov edx, dword [rbx + 0x2cc0]
mov dword [rbx + 0x2cd8], r12d
mov esi, 2
add edx, edi
lea r14d, [rsi + 0xa]
mov eax, edx
shr eax, 4
sub edx, eax
mov dword [rbx + 0x2cc0], edx
sub r13d, dword [rbx + 0x50]
mov edx, dword [0x1013d61c]
sub edx, dword [0x1013d618]
mov dword [rsp + 0x20], r13d
mov r13d, dword [rbx + 0x54]
movzx ecx, byte [rsp + 0x20]
shl edx, 0xa
shr r13d, cl
shr r13d, 0xc
and r13d, 0xfff
cmp r13d, edx
jb 0x100c0cac
lea r8, [0x1013d618]
nop
sub r13d, edx
mov edx, dword [r8 + 8]
add r8, 4
sub edx, dword [r8]
inc esi
mov ecx, r14d
sub ecx, esi
shl edx, cl
cmp r13d, edx
jae 0x100c0c90
add dword [rbx + 0x50], esi
cmp dword [rbx + 0x50], 8
jb 0x100c0cf1
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x100c0cce
lea rcx, [rbx + 0x58]
call fcn.100068fc
movzx r11d, al
jmp 0x100c0cd8
mov r11b, byte [rax]
inc rax
mov qword [rbx + 0x58], rax
mov edx, dword [rbx + 0x54]
add dword [rbx + 0x50], 0xfffffff8
movzx eax, r11b
shl edx, 8
or edx, eax
mov dword [rbx + 0x54], edx
cmp dword [rbx + 0x50], 8
jae 0x100c0cb5
sub r14d, esi
mov eax, esi
movzx ecx, r14b
shr r13d, cl
lea rcx, [0x10000000]
add r13d, dword [rcx + rax*4 + 0x13d610]
movzx ecx, r13b
mov ebp, dword [rbx + rcx*4 + 0x4b4]
dec ecx
cmp ecx, 0xffffffff
je 0x100c0d45
add dword [rbx + rbp*4 + 0x14b4], 0xffffffff
movsxd rdx, ecx
mov ecx, dword [rbx + rdx*4 + 0x4b4]
inc dword [rbx + rcx*4 + 0x14b4]
mov dword [rbx + rdx*4 + 0x4b8], ecx
mov dword [rbx + rdx*4 + 0x4b4], ebp
add edi, 2
mov eax, dword [rbx + 0x98]
mov dword [rbx + rax*4 + 0x88], ebp
mov eax, dword [rbx + 0x98]
mov dword [rbx + 0xa0], edi
inc eax
mov dword [rbx + 0x9c], ebp
and eax, 3
test edi, edi
mov dword [rbx + 0x98], eax
je 0x100c097d
mov eax, edi
sub qword [rbx + 0xa8], rax
mov r8d, dword [rbx + 0x20]
mov esi, r8d
sub esi, ebp
dec esi
cmp ebp, r8d
jb 0x100c0da2
cmp byte [rbx + 0x48], r12b
je 0x100c0de3
mov eax, dword [rbx + 0x2c]
cmp ebp, eax
jae 0x100c0de3
add esi, eax
mov eax, dword [rbx + 0x24]
sub eax, r8d
cmp eax, edi
jbe 0x100c0df0
mov eax, dword [rbx + 0x2c]
sub eax, esi
cmp eax, edi
jbe 0x100c0df0
mov rax, qword [rbx + 0x18]
mov ecx, esi
lea rdx, [rax + r8]
add rcx, rax
lea eax, [r8 + rdi]
mov dword [rbx + 0x20], eax
nop
nop
movzx eax, byte [rcx]
inc rdx
inc rcx
add edi, 0xffffffff
mov byte [rdx - 1], al
jne 0x100c0dd0
jmp 0x100c0e20
xor al, al
jmp 0x100c0e22
cmp esi, dword [rbx + 0x2c]
mov rdx, qword [rbx + 0x18]
mov ecx, dword [rbx + 0x20]
cmove esi, r12d
movzx eax, byte [rsi + rdx]
inc esi
mov byte [rcx + rdx], al
inc dword [rbx + 0x20]
mov eax, dword [rbx + 0x20]
cmp eax, dword [rbx + 0x24]
jne 0x100c0e1b
lea rcx, [rbx + 0x18]
call fcn.10009be4
add edi, 0xffffffff
jne 0x100c0df0
mov al, 1
test al, al
sete r12b
mov eax, r12d
mov r14, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x38]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x60]
add rsp, 0x58
ret