Function at 0x14000e010
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x60]
sub rsp, 0x160
mov rax, qword [0x140079008]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rdi, r8
mov rbx, rdx
xor r8d, r8d
mov dword [rsp + 0x70], r8d
mov r13d, r8d
lea r15d, [r8 + 1]
test rdi, rdi
je 0x14000e11e
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x14000e11e
mov rax, qword [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
cmp rax, rcx
jb 0x14000e11e
mov rsi, qword [rdi + 0x28]
sub rax, rcx
cmp rax, rsi
jb 0x14000e11e
lea r12, [rbx + 0xd8]
mov rax, qword [r12]
lea r14, [rcx + rdx]
test rax, rax
je 0x14000e11e
mov edx, dword [rax + 4]
cmp edx, 7
jne 0x14000e151
mov r8, qword [rbx + 8]
lea rdx, [rbx + 0x38]
mov rcx, r12
call fcn.140023870
test eax, eax
jne 0x14000e123
cmp qword [r12], r13
je 0x14000e14a
lea rax, [rsp + 0x68]
mov qword [r12 + 0x30], r13
mov r9, r14
mov qword [rsp + 0x20], rax
mov r8, rsi
mov rdx, r14
mov rcx, r12
call fcn.140023910
test eax, eax
jne 0x14000e123
mov rsi, qword [rsp + 0x68]
lea r8, [rbp - 0x80]
mov rcx, r12
lea rdx, [rsi + r14]
call fcn.140023d40
test eax, eax
jne 0x14000e123
mov rcx, qword [rbp - 0x80]
mov r8, qword [rdi + 0x28]
add rcx, rsi
mov qword [rsp + 0x68], rcx
cmp r8, rcx
je 0x14000e59e
mov eax, 0xffff9400
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.14004c9e0
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x160
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, 0xffff9f00
jmp 0x14000e123
lea eax, [rdx - 6]
test eax, 0xfffffff9
jne 0x14000e29e
cmp edx, 0xc
je 0x14000e29e
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 8], rax
je 0x14000e195
cmp rsi, 8
jb 0x14000e280
mov r15, r14
lea rax, [rcx + 8]
add r14, 8
mov qword [rdi + 0x20], rax
add rsi, 0xfffffffffffffff8
mov qword [rdi + 0x28], rsi
jmp 0x14000e198
mov r15, rdi
mov rax, qword [rbx + 0x20]
cmp rsi, rax
jb 0x14000e280
sub rsi, rax
lea rdx, [rbx + 0x38]
xor eax, eax
mov qword [rdi + 0x28], rsi
mov r8, qword [rbx + 0x10]
lea rcx, [rbp - 0x80]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], eax
call fcn.14004e150
movzx eax, byte [r15]
lea r9, [rbp - 0x70]
xor byte [rbp - 0x7c], al
lea rdx, [rbp - 0x80]
movzx eax, byte [r15 + 1]
mov rcx, rsi
xor byte [rbp - 0x7b], al
movzx eax, byte [r15 + 2]
xor byte [rbp - 0x7a], al
movzx eax, byte [r15 + 3]
xor byte [rbp - 0x79], al
movzx eax, byte [r15 + 4]
xor byte [rbp - 0x78], al
movzx eax, byte [r15 + 5]
xor byte [rbp - 0x77], al
movzx eax, byte [r15 + 6]
xor byte [rbp - 0x76], al
movzx eax, byte [r15 + 7]
xor byte [rbp - 0x75], al
mov rax, qword [rdi]
mov r8, qword [rbx + 8]
mov qword [rbp - 0x70], rax
movzx eax, byte [rdi + 8]
mov byte [rbp - 0x68], al
movzx eax, word [rdi + 9]
shr rcx, 8
mov word [rbp - 0x67], ax
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x68]
mov byte [rbp - 0x65], cl
lea rcx, [rsi + r14]
mov qword [rsp + 0x48], rcx
mov rcx, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], 0xd
mov byte [rbp - 0x64], sil
call fcn.1400240f0
test eax, eax
je 0x14000e28a
cmp eax, 0xffff9d00
jne 0x14000e123
mov eax, 0xffff8e80
jmp 0x14000e123
mov rax, qword [rdi + 0x28]
cmp qword [rsp + 0x68], rax
je 0x14000e6b3
jmp 0x14000e11e
cmp edx, 2
jne 0x14000e11e
mov rcx, r8
mov r8, qword [rbx + 8]
cmp dword [rbx + 0x130], edx
jl 0x14000e2b9
mov rcx, r8
lea rax, [r8 + rcx]
cmp rsi, rax
jb 0x14000e280
mov rdx, qword [rbx + 0x18]
lea rax, [rdx + 1]
add rax, rcx
cmp rsi, rax
jb 0x14000e280
cmp dword [rbx + 0x78], r15d
jne 0x14000e3f5
mov rax, qword [rdi]
lea r15, [rbx + 0x60]
sub rsi, rdx
mov qword [rbp - 0x70], rax
movzx eax, byte [rdi + 8]
mov r8, rsi
mov byte [rbp - 0x68], al
movzx eax, word [rdi + 9]
mov word [rbp - 0x67], ax
mov rax, rsi
shr rax, 8
mov qword [rdi + 0x28], rsi
mov byte [rbp - 0x65], al
mov byte [rbp - 0x64], sil
test r15, r15
je 0x14000e34f
cmp qword [r15], r13
je 0x14000e334
cmp qword [r15 + 0x10], r13
je 0x14000e334
mov r8d, 0xd
lea rdx, [rbp - 0x70]
mov rcx, r15
call fcn.14001b980
mov r8, qword [rdi + 0x28]
test r15, r15
je 0x14000e34f
cmp qword [r15], r13
je 0x14000e34f
cmp qword [r15 + 0x10], r13
je 0x14000e34f
mov rdx, r14
mov rcx, r15
call fcn.14001b980
lea rdx, [rbp - 0x40]
mov rcx, r15
call fcn.14001bdf0
test r15, r15
je 0x14000e38d
cmp qword [r15], r13
je 0x14000e38d
mov r9, qword [r15 + 0x10]
test r9, r9
je 0x14000e38d
mov rcx, r15
call fcn.14001b720
test eax, eax
jne 0x14000e38d
mov rax, qword [r15]
mov rdx, r9
mov rcx, r15
movzx r8d, byte [rax + 0xd]
call fcn.14001b980
mov r9, qword [rdi + 0x28]
xor r8d, r8d
add r9, r14
mov byte [rsp + 0x60], r13b
cmp qword [rbx + 0x18], r8
jbe 0x14000e3d5
lea rax, [rbp - 0x40]
sub r9, rax
nop dword [rax]
lea rax, [rbp - 0x40]
add rax, r8
inc r8
movzx ecx, byte [rax + r9]
movzx edx, byte [rax]
movzx eax, byte [rsp + 0x60]
xor dl, cl
or dl, al
mov byte [rsp + 0x60], dl
cmp r8, qword [rbx + 0x18]
jb 0x14000e3b0
movzx eax, byte [rsp + 0x60]
test al, al
jne 0x14000e280
mov rsi, qword [rdi + 0x28]
mov r13d, 1
mov r8, qword [rbx + 8]
mov dword [rsp + 0x70], r13d
xor edx, edx
mov rax, rsi
div r8
test rdx, rdx
jne 0x14000e280
cmp dword [rbx + 0x130], 2
jl 0x14000e436
mov rdx, r14
lea rcx, [rbx + 0x38]
call fcn.14004e150
mov rax, qword [rbx + 8]
add qword [rdi + 0x20], rax
add r14, rax
mov rax, qword [rbx + 8]
sub qword [rdi + 0x28], rax
mov rsi, qword [rdi + 0x28]
mov r8, qword [rbx + 8]
lea rdx, [rbx + 0x38]
mov rcx, r12
call fcn.140023870
test eax, eax
jne 0x14000e123
cmp qword [r12], 0
je 0x14000e14a
lea rax, [rsp + 0x68]
mov qword [r12 + 0x30], 0
mov r9, r14
mov qword [rsp + 0x20], rax
mov r8, rsi
mov rdx, r14
mov rcx, r12
call fcn.140023910
test eax, eax
jne 0x14000e123
mov rsi, qword [rsp + 0x68]
lea r8, [rsp + 0x78]
mov rcx, r12
lea rdx, [rsi + r14]
call fcn.140023d40
test eax, eax
jne 0x14000e123
mov rdx, qword [rsp + 0x78]
mov r8, qword [rdi + 0x28]
add rdx, rsi
mov qword [rsp + 0x68], rdx
cmp r8, rdx
jne 0x14000e11e
mov r9d, dword [rbx + 0x130]
cmp r9d, 2
jge 0x14000e4e5
mov r8, qword [rbx + 8]
lea rdx, [rbx + 0x110]
lea rcx, [rbx + 0x38]
call fcn.14004e150
mov r8, qword [rdi + 0x28]
mov r9d, dword [rbx + 0x130]
movzx edx, byte [r8 + r14 - 1]
xor r15d, r15d
mov r12d, r15d
cmp r13d, 1
jne 0x14000e500
lea rax, [rdx + 1]
cmp r8, rax
jmp 0x14000e50d
mov rcx, qword [rbx + 0x18]
inc rcx
add rcx, rdx
cmp r8, rcx
setae r12b
mov r11, r12
imul r11, rdx
lea r13, [r11 + 1]
test r9d, r9d
jle 0x14000e11e
mov eax, pe_nt_image_headers64
mov rsi, r8
sub rsi, r13
mov rdx, r8
cmp r8, rax
mov r10, r15
mov r9, r15
cmovbe rax, r8
sub rdx, rax
cmp rdx, r8
jae 0x14000e57a
nop dword [rax + rax]
movzx ecx, byte [rdx + r14]
cmp rdx, rsi
mov r8, qword [rdi + 0x28]
mov rax, r15
setae al
or r9, rax
mov rax, r15
cmp rcx, r11
cmove rax, r9
inc rdx
add r10, rax
cmp rdx, r8
jb 0x14000e550
cmp r10, r13
cmove r15, r12
imul rax, r15, 0x1ff
and r13, rax
mov eax, dword [rsp + 0x70]
sub r8, r13
mov qword [rdi + 0x28], r8
test eax, eax
jne 0x14000e6a1
mov rax, qword [rdi]
sub r8, qword [rbx + 0x18]
mov qword [rbp - 0x70], rax
movzx eax, byte [rdi + 8]
mov byte [rbp - 0x68], al
movzx eax, word [rdi + 9]
mov word [rbp - 0x67], ax
mov rax, r8
shr rax, 8
mov qword [rdi + 0x28], r8
cmp dword [rbx + 0x130], 0
mov byte [rbp - 0x65], al
mov byte [rbp - 0x64], r8b
jle 0x14000e11e
add r13, r8
lea rcx, [rbx + 0x60]
mov eax, 0
lea rdx, [rbp - 0x70]
cmp r13, 0x100
mov r9, r14
lea rsi, [r13 - 0x100]
cmovbe rsi, rax
lea rax, [rbp + 0x20]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r8
mov r8d, 0xd
call fcn.14000d940
test eax, eax
jne 0x14000e123
mov r12, qword [rbx + 0x18]
mov rdi, qword [rdi + 0x28]
cmp rsi, r13
ja 0x14000e660
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rsi + r14]
mov qword [rsp + 0x20], rdi
mov r9, rsi
lea rcx, [rbp - 0x10]
mov r8, r12
call fcn.14000d7d0
inc rsi
cmp rsi, r13
jbe 0x14000e640
xor r8d, r8d
mov byte [rsp + 0x60], 0
mov edx, r8d
cmp qword [rbx + 0x18], rdx
jbe 0x14000e691
movzx eax, byte [rbp + rdx - 0x10]
movzx ecx, byte [rbp + rdx + 0x20]
inc rdx
xor cl, al
movzx eax, byte [rsp + 0x60]
or cl, al
mov byte [rsp + 0x60], cl
cmp rdx, qword [rbx + 0x18]
jb 0x14000e671
movzx eax, byte [rsp + 0x60]
test al, al
mov eax, 1
cmovne r15, r8
test r15, r15
je 0x14000e280
cmp eax, 1
jne 0x14000e11e
xor eax, eax
jmp 0x14000e123