Function at 0x10100b00
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
xor edi, edi
cmp dword [rcx + 0xdc], 2
mov qword [rsp + 0x38], r15
mov rbx, rcx
mov dword [rcx + 0xd8], edi
lea r15d, [rdi + 8]
jne 0x10100bfc
mov edx, dword [rcx + 0x50]
mov ebp, dword [rbx + 0x54]
mov ecx, r15d
sub ecx, edx
lea eax, [rdx + 1]
shr ebp, cl
mov dword [rbx + 0x50], eax
shr ebp, 0x17
and ebp, 1
cmp eax, r15d
jb 0x10100b9c
nop
nop
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10100b79
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10100b83
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], r15d
jae 0x10100b60
test ebp, ebp
je 0x10100bf6
mov r8d, dword [rbx + 0x9c]
test r8d, r8d
jne 0x10100bb8
mov edi, 1
mov eax, edi
jmp 0x101010f6
mov rax, qword [rbx + 0x90]
cmp rax, r8
jae 0x10100bd0
mov edi, 1
mov eax, edi
jmp 0x101010f6
mov edx, dword [rbx + 0x98]
sub rax, r8
lea rcx, [rbx + 0x18]
mov qword [rbx + 0x90], rax
call fcn.10015f24
test al, al
sete dil
mov eax, edi
jmp 0x101010f6
mov dword [rbx + 0xdc], edi
mov edx, dword [rbx + 0x54]
lea rax, [0x101505e0]
mov ecx, r15d
sub ecx, dword [rbx + 0x50]
lea r8, [0x10150610]
mov esi, edi
shr edx, cl
mov ecx, r15d
shr edx, 0x10
cmp dword [rbx + 0xc8], 0x25
cmovb r8, rax
mov eax, dword [rbx + 0xd4]
movzx r9d, dl
movzx edx, byte [r8]
lea r10, [rax + r8 + 0x10]
mov al, byte [rax + r8 + 0x10]
xor edx, r9d
sub ecx, eax
shr edx, cl
test edx, edx
je 0x10100c6d
mov rdx, r10
sub rdx, r8
mov al, byte [rdx + r8 + 1]
inc r8
mov ecx, r15d
sub ecx, eax
movzx eax, byte [r8]
inc esi
xor eax, r9d
shr eax, cl
test eax, eax
jne 0x10100c51
mov eax, esi
movzx ecx, byte [rax + r10]
add dword [rbx + 0x50], ecx
cmp dword [rbx + 0x50], r15d
jb 0x10100cbc
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10100c99
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10100ca3
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], r15d
jae 0x10100c80
cmp esi, 9
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x40], r14
jb 0x10100f75
cmp esi, 9
jne 0x10100d0f
mov r8d, dword [rbx + 0x9c]
inc dword [rbx + 0xdc]
test r8d, r8d
jne 0x10100cf5
mov edi, 1
jmp 0x101010e5
mov rax, qword [rbx + 0x90]
cmp rax, r8
jb 0x10100ceb
mov edx, dword [rbx + 0x98]
sub rax, r8
jmp 0x101010cf
cmp esi, 0xe
mov dword [rbx + 0xdc], edi
jne 0x10100e64
mov r12d, dword [rbx + 0x54]
mov ecx, r15d
mov r13d, edi
sub ecx, dword [rbx + 0x50]
lea ebp, [rsi - 0xc]
mov r8d, edi
shr r12d, cl
mov eax, edi
lea rdx, [0x10150652]
shr r12d, 0xc
lea r14d, [rsi - 2]
and r12d, 0xfff
nop
sub r12d, eax
inc rdx
add r13d, r8d
movzx r8d, byte [rdx]
inc ebp
mov ecx, r14d
sub ecx, ebp
mov eax, r8d
shl eax, cl
cmp r12d, eax
jae 0x10100d50
add dword [rbx + 0x50], ebp
cmp dword [rbx + 0x50], r15d
jb 0x10100dbc
nop
nop
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10100d99
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10100da3
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], r15d
jae 0x10100d80
mov eax, dword [rbx + 0x50]
sub r14d, ebp
sub r15d, eax
movzx ecx, r14b
add eax, 0xf
shr r12d, cl
movzx ecx, r15b
mov dword [rbx + 0x50], eax
lea ebp, [r12 + r13 + 5]
mov r12d, dword [rbx + 0x54]
shr r12d, cl
shr r12d, 9
and r12d, 0x7fff
cmp eax, 8
jb 0x10100e2e
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10100e0b
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10100e15
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 0x10100df2
test ebp, ebp
lea edx, [r12 + 0x7fff]
mov dword [rbx + 0x9c], ebp
mov dword [rbx + 0x98], edx
je 0x10100ceb
mov rax, qword [rbx + 0x90]
mov ecx, ebp
cmp rax, rcx
jb 0x10100ceb
mov r8d, ebp
jmp 0x101010cc
sub r15d, dword [rbx + 0x50]
mov ecx, dword [rbx + 0xa0]
mov r9d, esi
sub ecx, esi
mov dword [rsp + 0x20], esi
mov esi, dword [rbx + 0x54]
inc ecx
mov ebp, 2
mov eax, 0x800
and ecx, 3
mov r8d, ebp
lea r14d, [rbp + 0xa]
mov r13d, dword [rbx + rcx*4 + 0xa4]
movzx ecx, r15b
mov r15d, edi
shr esi, cl
shr esi, 0xc
and esi, 0xfff
cmp esi, eax
jb 0x10100edc
lea rdx, [0x10150642]
nop
nop
nop
sub esi, eax
inc rdx
add r15d, r8d
movzx r8d, byte [rdx]
inc ebp
mov ecx, r14d
sub ecx, ebp
mov eax, r8d
shl eax, cl
cmp esi, eax
jae 0x10100ec0
add dword [rbx + 0x50], ebp
cmp dword [rbx + 0x50], 8
jb 0x10100f26
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10100efe
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10100f08
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 0x10100ee5
mov r9d, dword [rsp + 0x20]
sub r14d, ebp
movzx ecx, r14b
shr esi, cl
add esi, r15d
cmp esi, 0xff
jne 0x10100f4e
cmp r9d, 0xa
jne 0x10100f4e
xor dword [rbx + 0xd4], 0x10
xor eax, eax
jmp 0x101010e7
cmp r13d, 0x100
jb 0x1010107f
mov eax, dword [rbx + 0xe8]
inc esi
dec eax
cmp r13d, eax
jb 0x1010107f
inc esi
jmp 0x1010107f
mov eax, dword [rbx + 0xc8]
mov dword [rbx + 0xdc], edi
mov ebp, 2
lea edx, [rsi + rax]
mov r8d, edi
lea r14d, [rbp + 0xa]
mov eax, edx
shr eax, 4
sub edx, eax
mov eax, edi
mov dword [rbx + 0xc8], edx
sub r15d, dword [rbx + 0x50]
mov r13d, dword [rbx + 0x54]
movzx ecx, r15b
lea rdx, [0x10150682]
mov r15d, edi
shr r13d, cl
shr r13d, 0xc
and r13d, 0xfff
nop
nop
nop
nop
sub r13d, eax
inc rdx
add r15d, r8d
movzx r8d, byte [rdx]
inc ebp
mov ecx, r14d
sub ecx, ebp
mov eax, r8d
shl eax, cl
cmp r13d, eax
jae 0x10100fd0
add dword [rbx + 0x50], ebp
cmp dword [rbx + 0x50], 8
jb 0x1010103c
nop
nop
nop
mov rax, qword [rbx + 0x58]
cmp rax, qword [rbx + 0x60]
jb 0x10101019
lea rcx, [rbx + 0x58]
call fcn.10007b00
movzx r11d, al
jmp 0x10101023
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 0x10101000
sub r14d, ebp
movzx ecx, r14b
shr r13d, cl
add r13d, r15d
movzx eax, r13b
test eax, eax
mov r13d, dword [rbx + rax*4 + 0x4ec]
je 0x1010107f
add dword [rbx + r13*4 + 0x14ec], 0xffffffff
mov ecx, dword [rbx + rax*4 + 0x4e8]
inc dword [rbx + rcx*4 + 0x14ec]
mov dword [rbx + rax*4 + 0x4ec], ecx
mov dword [rbx + rax*4 + 0x4e8], r13d
mov eax, dword [rbx + 0xa0]
mov dword [rbx + rax*4 + 0xa4], r13d
mov eax, dword [rbx + 0xa0]
mov dword [rbx + 0x98], r13d
inc eax
and eax, 3
add esi, 2
mov dword [rbx + 0x9c], esi
mov dword [rbx + 0xa0], eax
je 0x10100ceb
mov rax, qword [rbx + 0x90]
mov ecx, esi
cmp rax, rcx
jb 0x10100ceb
mov r8d, esi
mov edx, r13d
sub rax, rcx
lea rcx, [rbx + 0x18]
mov qword [rbx + 0x90], rax
call fcn.10015f24
test al, al
sete dil
mov eax, edi
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov r14, qword [rsp + 0x40]
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
add rsp, 0x58
ret