Function at 0x14009a504
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
mov rbp, rsp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov rax, qword [0x1400c8590]
xor rax, rsp
mov qword [rbp - 0x40], rax
mov rax, qword [rcx + 0x10]
mov r14, rcx
mov qword [rsp + 0x40], rcx
mov ebx, dword [rax + 5]
mov esi, dword [rax + 9]
lea rcx, [0x140000000]
lea r9, [rax + 0xd]
mov qword [rsp + 0x48], rdx
mov edx, 0xfffffff
and rbx, rdx
and rsi, rdx
lea rdi, [r9 - 1]
add rbx, rcx
mov ecx, dword [rax + 1]
mov rax, qword [0x14017dba0]
and rcx, rdx
xor r10d, r10d
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xd0], rsi
cmp rdi, rax
jb 0x14009a5d9
mov ecx, dword [0x14010ba84]
mov eax, dword [0x14010ba80]
imul ecx, eax
mov rax, qword [0x14017dba0]
add rcx, rax
cmp rdi, rcx
jae 0x14009a5d9
mov rcx, qword [0x14017dba0]
mov rax, rdi
sub rax, rcx
mov ecx, dword [0x14010ba80]
cqo
idiv rcx
mov edx, dword [0x14010ba80]
mov r8, qword [0x14017dba0]
imul rdx, rax
add r8, rdx
jmp 0x14009a5dc
mov r8, r10
test r8, r8
jne 0x14009a5eb
mov r8, rdi
and r8, 0xffffffffffff0000
sub r9, r8
lea rax, [r9 - 0x40]
test rax, rax
cmovs rax, r10
lea rdi, [r8 + rax]
xor eax, eax
lea r11d, [rax + 0x40]
mov ecx, r11d
rep stosb byte [rdi], al
mov r9d, dword [0x14010ba80]
sub r9, rsi
inc r9
mov rdi, r9
je 0x14009a650
mov rcx, qword [0x14017dbb0]
imul rcx, rcx, 0x343fd
shl rax, 0x10
shr rdi, 0x10
add rcx, 0x269ec3
mov rdx, rcx
shr rdx, 0x10
movzx edx, dx
or rax, rdx
test rdi, rdi
jne 0x14009a621
mov qword [0x14017dbb0], rcx
xor edx, edx
mov dil, r10b
mov byte [rsp + 0x20], r10b
div r9
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rbx
lea r9, [rdx + r8]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x50], r9
test rsi, rsi
je 0x14009aab1
movups xmm0, xmmword [rsi + rbx]
mov r14, r9
mov qword [rbp - 0x68], r10
mov qword [rbp - 0x60], r10
movdqu xmmword [rsp + 0x78], xmm0
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x78]
mov rax, rcx
mov rdx, r8
mov dword [rbp - 0x7c], r8d
shr rax, 0x20
shr rdx, 0x20
mov dword [rbp - 0x74], ecx
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x48], eax
mov eax, dword [0x14010bb68]
mov dword [rbp - 0x80], eax
mov eax, dword [0x14010bb6c]
mov dword [rbp - 0x78], edx
mov dword [rbp - 0x6c], eax
mov eax, dword [0x14010bb70]
mov dword [rbp - 0x54], r8d
mov dword [rbp - 0x58], eax
mov eax, dword [0x14010bb74]
mov dword [rbp - 0x50], edx
mov dword [rbp - 0x44], eax
lea rax, [rsp + 0x90]
mov dword [rbp - 0x4c], ecx
sub r14, rax
mov rax, rbx
sub rax, r9
mov qword [rsp + 0x78], rax
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0xf0]
mov r8, r11
mov qword [rsp + 0x70], r14
call sub.MSVCR100.dll_memcpy
mov eax, dword [rsp + 0x104]
mov ecx, dword [rsp + 0x12c]
mov edx, dword [rsp + 0x128]
mov r8d, dword [rsp + 0x124]
mov r9d, dword [rsp + 0x120]
mov r10d, dword [rsp + 0x11c]
mov r11d, dword [rsp + 0x118]
mov ebx, dword [rsp + 0x114]
mov r12d, dword [rsp + 0x110]
mov r13d, dword [rsp + 0x10c]
mov r15d, dword [rsp + 0x108]
mov r14d, dword [rsp + 0x100]
mov edi, dword [rsp + 0xfc]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xf8]
mov esi, dword [rsp + 0x30]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xf4]
mov qword [rsp + 0x68], 2
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x2c], eax
add eax, r9d
rol eax, 7
xor r14d, eax
mov eax, dword [rsp + 0x2c]
add eax, r14d
rol eax, 9
xor r12d, eax
lea eax, [r12 + r14]
rol eax, 0xd
xor r9d, eax
mov dword [rsp + 0x30], r9d
lea eax, [r12 + r9]
mov r9d, dword [rsp + 0x2c]
ror eax, 0xe
xor r9d, eax
mov eax, dword [rsp + 0x24]
add eax, esi
mov dword [rsp + 0x2c], r9d
rol eax, 7
xor ebx, eax
lea eax, [rsi + rbx]
rol eax, 9
xor r8d, eax
lea eax, [r8 + rbx]
rol eax, 0xd
xor dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
add eax, r8d
ror eax, 0xe
xor esi, eax
lea eax, [r15 + r11]
rol eax, 7
xor edx, eax
lea eax, [r11 + rdx]
rol eax, 9
xor dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
add eax, edx
rol eax, 0xd
xor r15d, eax
mov eax, dword [rsp + 0x28]
add eax, r15d
ror eax, 0xe
xor r11d, eax
lea eax, [r10 + rcx]
rol eax, 7
xor edi, eax
lea eax, [rcx + rdi]
rol eax, 9
xor r13d, eax
lea eax, [rdi + r13]
rol eax, 0xd
xor r10d, eax
lea eax, [r10 + r13]
ror eax, 0xe
xor ecx, eax
lea eax, [rdi + r9]
mov r9d, dword [rsp + 0x24]
rol eax, 7
xor r9d, eax
mov eax, r9d
mov dword [rsp + 0x24], r9d
mov dword [rsp + 0xf4], eax
add eax, dword [rsp + 0x2c]
rol eax, 9
xor dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0xf8], eax
add eax, r9d
mov r9d, dword [rsp + 0x2c]
rol eax, 0xd
xor edi, eax
mov eax, dword [rsp + 0x28]
add eax, edi
ror eax, 0xe
xor r9d, eax
lea eax, [rsi + r14]
rol eax, 7
mov dword [rsp + 0x2c], r9d
mov dword [rsp + 0xf0], r9d
xor r15d, eax
mov r9d, dword [rsp + 0x30]
lea eax, [r15 + rsi]
rol eax, 9
xor r13d, eax
lea eax, [r15 + r13]
rol eax, 0xd
xor r14d, eax
lea eax, [r14 + r13]
ror eax, 0xe
xor esi, eax
lea eax, [r11 + rbx]
rol eax, 7
xor r10d, eax
lea eax, [r10 + r11]
rol eax, 9
xor r12d, eax
lea eax, [r10 + r12]
rol eax, 0xd
xor ebx, eax
lea eax, [rbx + r12]
ror eax, 0xe
xor r11d, eax
lea eax, [rcx + rdx]
rol eax, 7
xor r9d, eax
mov dword [rsp + 0x120], r9d
lea eax, [rcx + r9]
rol eax, 9
xor r8d, eax
lea eax, [r9 + r8]
rol eax, 0xd
xor edx, eax
lea eax, [rdx + r8]
ror eax, 0xe
xor ecx, eax
dec qword [rsp + 0x68]
mov eax, dword [rsp + 0x2c]
jne 0x14009a7b0
mov dword [rsp + 0x12c], ecx
mov dword [rsp + 0x114], ebx
mov rbx, qword [rsp + 0x78]
mov dword [rsp + 0x110], r12d
mov r12, qword [rsp + 0x58]
mov dword [rsp + 0x10c], r13d
mov r13, qword [rsp + 0x50]
mov dword [rsp + 0x108], r15d
mov r15, qword [rsp + 0x60]
mov dword [rsp + 0x104], esi
mov esi, dword [rbp - 0x60]
mov dword [rsp + 0x100], r14d
mov r14, qword [rsp + 0x70]
mov dword [rsp + 0xfc], edi
mov dil, byte [rsp + 0x20]
xor ecx, ecx
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x124], r8d
mov dword [rsp + 0x11c], r10d
mov dword [rsp + 0x118], r11d
mov eax, dword [rbp + rcx - 0x80]
add rcx, 4
add dword [rsp + rcx + 0xec], eax
cmp rcx, 0x40
jl 0x14009a9cd
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x90]
mov r8d, 0x40
call sub.MSVCR100.dll_memcpy
inc esi
mov r11d, 0x40
mov dword [rbp - 0x60], esi
cmp r15, r11
jbe 0x14009aa55
lea rdx, [rsp + 0x90]
mov r8d, r11d
lea rax, [r14 + rdx]
mov cl, byte [rax + rbx]
xor cl, byte [rdx]
mov byte [r14 + rdx], cl
inc rdx
xor dil, cl
dec r8
jne 0x14009aa18
sub r15, r11
add r13, r11
add r14, r11
add r12, r11
mov byte [rsp + 0x20], dil
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], r13
jmp 0x14009a702
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
xor r10d, r10d
mov edx, r10d
test r15, r15
je 0x14009aaa7
lea rax, [rsp + 0x90]
lea rcx, [rsp + 0x90]
sub r12, rax
lea rax, [rsp + 0x90]
sub r13, rax
mov al, byte [rcx + r12]
inc edx
xor al, byte [rcx]
mov byte [rcx + r13], al
xor dil, al
mov eax, edx
inc rcx
cmp rax, r15
jb 0x14009aa8e
mov r14, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
cmp dil, byte [rsi + rbx + 0x10]
je 0x14009ab76
call fcn.14009eca8
lea r8, [r14 + 0x18]
lea r10, [fcn.1400bd550]
mov rbx, rax
mov rax, 0xfffffffffffff000
and r8, 0xfffffffffffffff8
and rbx, rax
lea r9, [r8 + 0xfff]
mov qword [r14 + 0x10], r10
and r9, rax
mov rax, qword [0x14017dbb0]
xor edi, edi
mov r11d, 0xffff
imul rax, rax, 0x343fd
shl rdi, 0x10
shr r11, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or rdi, rdx
test r11, r11
jne 0x14009aafa
mov qword [0x14017dbb0], rax
movabs rax, 0x8000800080008001
mul rdi
mov rax, qword [rsp + 0x48]
shr rdx, 0xf
mov qword [rax + 0x98], rbx
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rax + 0xb0], rdi
mov qword [rsp + 0x48], r11
jmp 0x14009ab6c
mov rax, qword [rsp + 0x48]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x14009ab60
jmp 0x14009ac8b
mov rax, qword [0x14010bb18]
lea rcx, [0x140000000]
mov r11, rbx
mov r14, rcx
sub r11, r9
sub r14, rax
jne 0x14009ab9b
test r11, r11
je 0x14009ac75
mov r10, r9
sub r10, rbx
sub ebx, ecx
lea r12d, [rsi + rbx]
mov rsi, qword [0x14017dbb8]
test rsi, rsi
je 0x14009ac75
mov r15d, dword [rsi]
xor edi, edi
mov r13d, 0x7ffffff
lea r8d, [r15 - 1]
test r8d, r8d
js 0x14009abf2
lea eax, [r8 + rdi]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov edx, dword [rsi + rcx*4 + 4]
and edx, r13d
cmp ebx, edx
jae 0x14009abe8
lea r8d, [rax - 1]
jmp 0x14009abed
jbe 0x14009ac3f
lea edi, [rax + 1]
cmp r8d, edi
jge 0x14009abcb
movsxd r9, edi
cmp r9, r15
jae 0x14009ac70
lea rbx, [rsi + 4]
lea r15, [0x140000000]
lea rbx, [rbx + r9*4]
mov edi, dword [rbx]
mov eax, edi
and eax, r13d
cmp eax, r12d
jae 0x14009ac70
mov edx, dword [rbx]
and rdi, r13
xor r8d, r8d
mov ecx, edx
sar edx, 0x1d
add rdi, r15
sar ecx, 0x1b
and edx, 7
and ecx, 3
dec ecx
je 0x14009ac49
dec ecx
je 0x14009ac44
dec ecx
jne 0x14009ac4f
mov r8, r14
jmp 0x14009ac4f
movsxd r9, eax
jmp 0x14009abf5
mov r8, r11
jmp 0x14009ac4f
mov r8, r14
sub r8, r11
sub edx, 2
je 0x14009ac5e
dec edx
jne 0x14009ac62
add qword [rdi + r10], r8
jmp 0x14009ac62
add dword [rdi + r10], r8d
mov eax, dword [rsi]
inc r9
add rbx, 4
cmp r9, rax
jb 0x14009ac09
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0xe0]
mov eax, dword [0x14010ba80]
mov r14, qword [rsp + 0x40]
add r10, r9
mov qword [r14 + 0x10], r10
mov rcx, qword [rbp - 0x40]
xor rcx, rsp
call fcn.1400056f0
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret