Function at 0x1400e54e0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
mov eax, 0x170
call fcn.140103e70
sub rsp, rax
mov rax, qword [0x140172b58]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x1d0]
mov rbp, qword [rsp + 0x1c0]
mov rsi, qword [rsp + 0x1e8]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x1e0]
mov r14, r8
mov qword [rsp + 0xb0], rcx
mov rcx, qword [rsp + 0x1d8]
shr r14, 3
mov qword [rsp + 0xa8], rax
xor eax, eax
mov rdi, r9
mov qword [rsp + 0x40], r9
mov rbx, rdx
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x78], 2
cmp r14d, 0x14
je 0x1400e559b
cmp r14d, 0x1c
je 0x1400e559b
cmp r14d, 0x20
jne 0x1400e5d44
test r9, r9
jne 0x1400e55d9
cmp r14d, 0x14
jne 0x1400e55b5
call fcn.14005b3b0
mov rdi, rax
mov qword [rsp + 0x40], rax
jmp 0x1400e55e4
cmp r14d, 0x1c
jne 0x1400e55ca
call fcn.14005b4e0
mov rdi, rax
mov qword [rsp + 0x40], rax
jmp 0x1400e55e4
call fcn.14005b4f0
mov rdi, rax
mov qword [rsp + 0x40], rax
jmp 0x1400e55e4
mov rcx, r9
call fcn.140034810
mov r14d, eax
mov eax, 0x200
cmp rbx, rax
cmovb rbx, rax
lea rax, [rbx + 0x3f]
and rax, 0xffffffffffffffc0
mov qword [rsp + 0x88], rax
test rbp, rbp
je 0x1400e5653
mov r8, qword [rsp + 0x1c8]
movsxd rax, r14d
cmp r8, rax
jae 0x1400e563c
mov edx, 0x7d
lea r9, [0x14014f578]
mov dword [rsp + 0x20], 0x55
lea ecx, [rdx - 0x73]
lea r8d, [rdx - 0xf]
call fcn.140045670
xor eax, eax
cmp r8, rax
lea rcx, [rsp + 0x100]
mov rdx, rbp
cmova r8, rax
call sub.MSVCR90.dll_memcpy
mov qword [rsp + 0x168], r12
mov qword [rsp + 0x160], r13
mov qword [rsp + 0x158], r15
call fcn.140075f10
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400e5d09
call fcn.140097530
mov rbp, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x1400e5d0e
mov rcx, rax
call fcn.140097630
mov rcx, rbp
call fcn.140097720
mov rcx, rbp
mov r13, rax
call fcn.140097720
mov rcx, rbp
mov qword [rsp + 0x58], rax
call fcn.140097720
mov rcx, rbp
mov r15, rax
call fcn.140097720
mov rcx, rbp
mov qword [rsp + 0x50], rax
call fcn.140097720
mov rcx, rbp
mov qword [rsp + 0x80], rax
call fcn.140097720
mov rcx, rbp
mov qword [rsp + 0x98], rax
call fcn.140097720
mov rcx, rbp
mov qword [rsp + 0x60], rax
call fcn.140097720
mov rbx, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1400e5d0e
movsxd r12, r14d
call fcn.140049d10
mov r8, qword [rsp + 0x88]
dec r8d
mov rdx, rax
mov rcx, rbx
call fcn.140049c50
test eax, eax
je 0x1400e5d0e
nop dword [rax + rax]
mov r8d, dword [rsp + 0x3c]
xor ebx, ebx
mov rcx, rsi
cmp qword [rsp + 0x90], rbx
sete bl
xor edx, edx
call fcn.1400fbee0
inc dword [rsp + 0x3c]
test eax, eax
je 0x1400e5d0e
test ebx, ebx
je 0x1400e5786
lea rcx, [rsp + 0x100]
mov edx, r14d
call fcn.1400507c0
test eax, eax
jle 0x1400e5d0e
jmp 0x1400e5792
mov qword [rsp + 0x90], 0
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xe0]
mov r8, r12
call sub.MSVCR90.dll_memcpy
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x120]
mov r8, r12
call sub.MSVCR90.dll_memcpy
lea r11, [r12 - 1]
test r11, r11
js 0x1400e57e1
nop dword [rax]
add byte [rsp + r11 + 0xe0], 1
jne 0x1400e57e1
sub r11, 1
jns 0x1400e57d0
lea r8, [rsp + 0xc0]
lea rcx, [rsp + 0x100]
xor r9d, r9d
mov rdx, r12
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
call fcn.140033440
test eax, eax
je 0x1400e5d0e
lea r8, [rsp + 0x120]
lea rcx, [rsp + 0xe0]
xor r9d, r9d
mov rdx, r12
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
call fcn.140033440
test eax, eax
je 0x1400e5d0e
xor ecx, ecx
test r14d, r14d
jle 0x1400e5867
nop word [rax + rax]
movzx eax, byte [rsp + rcx + 0x120]
inc rcx
xor byte [rsp + rcx + 0xbf], al
cmp rcx, r12
jl 0x1400e5850
or byte [rsp + 0xc0], 0x80
mov r8, qword [rsp + 0x50]
or byte [rsp + r12 + 0xbf], 1
lea rcx, [rsp + 0xc0]
mov edx, r14d
call fcn.14004ae30
test rax, rax
je 0x1400e5d0e
mov rcx, qword [rsp + 0x50]
mov r9d, ebx
mov r8, rbp
mov edx, 0x40
mov qword [rsp + 0x20], rsi
call fcn.1400fc500
test eax, eax
jg 0x1400e58c1
test eax, eax
je 0x1400e5740
jmp 0x1400e5d0e
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 2]
call fcn.1400fbee0
test eax, eax
je 0x1400e5d0e
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 3]
call fcn.1400fbee0
test eax, eax
je 0x1400e5d0e
mov rcx, qword [rsp + 0x88]
movabs rax, 0xcccccccccccccccd
xor esi, esi
dec rcx
lea rbp, [r12 - 1]
mul rcx
mov rdi, rdx
shr rdi, 7
test esi, esi
je 0x1400e5930
mov rcx, qword [rsp + 0x48]
mov r8d, esi
xor edx, edx
call fcn.1400fbee0
test eax, eax
je 0x1400e5d09
xor edx, edx
mov rcx, r15
call fcn.14004adc0
xor ebx, ebx
test edi, edi
js 0x1400e59f1
mov rax, rbp
test rbp, rbp
js 0x1400e5960
nop dword [rax]
add byte [rsp + rax + 0xe0], 1
jne 0x1400e5960
sub rax, 1
jns 0x1400e5950
mov rax, qword [rsp + 0x40]
lea r8, [rsp + 0xc0]
lea rcx, [rsp + 0xe0]
xor r9d, r9d
mov rdx, r12
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
call fcn.140033440
test eax, eax
je 0x1400e5d09
lea rcx, [rsp + 0xc0]
mov r8, r13
mov edx, r14d
call fcn.14004ae30
test rax, rax
je 0x1400e5d09
lea r8d, [r14*8]
mov rdx, r13
mov rcx, r13
imul r8d, ebx
call fcn.140049c50
test eax, eax
je 0x1400e5d09
mov r8, r13
mov rdx, r15
mov rcx, r15
call fcn.140097f00
test eax, eax
je 0x1400e5d09
inc ebx
cmp ebx, edi
jle 0x1400e5944
mov rdx, qword [rsp + 0x88]
mov rcx, r15
dec edx
call fcn.14004ac30
test eax, eax
je 0x1400e5d09
mov rbx, qword [rsp + 0x80]
mov rdx, r15
mov rcx, rbx
call fcn.14004ad10
test rax, rax
je 0x1400e5d09
mov r8, qword [rsp + 0x70]
mov rdx, rbx
mov rcx, rbx
call fcn.140097f00
test eax, eax
je 0x1400e5d09
mov rdx, qword [rsp + 0x50]
mov rcx, r13
call fcn.140049840
test eax, eax
je 0x1400e5d09
mov rbx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x98]
mov r9, r13
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.140097c10
test eax, eax
je 0x1400e5d04
call fcn.140049d10
mov rdx, qword [rsp + 0x98]
mov rcx, r13
mov r8, rax
call fcn.140097fa0
test eax, eax
je 0x1400e5d04
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
mov r8, r13
call fcn.140097fa0
test eax, eax
je 0x1400e5d04
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
call fcn.14004a020
test eax, eax
js 0x1400e5afd
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov r9d, 1
lea edx, [r9 + 0x3f]
mov r8, rbx
mov qword [rsp + 0x20], rax
call fcn.1400fc500
test eax, eax
jg 0x1400e5b1d
test eax, eax
jne 0x1400e5d04
inc esi
cmp esi, 0x1000
jl 0x1400e5915
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, rbx
jmp 0x1400e5740
mov rbx, qword [rsp + 0x48]
mov edx, 2
lea r8d, [rdx - 1]
mov rcx, rbx
call fcn.1400fbee0
test eax, eax
je 0x1400e5d09
call fcn.140049d10
mov r14, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x70]
mov rdx, r14
mov rcx, rdi
mov r8, rax
call fcn.140097fa0
test eax, eax
je 0x1400e5d09
mov r15, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x30]
mov r8, rdi
xor edx, edx
mov rcx, r13
mov r9, r15
mov qword [rsp + 0x20], rbp
call fcn.140097c10
test eax, eax
je 0x1400e5d0e
mov edx, 2
mov rcx, rdi
call fcn.14004adc0
test eax, eax
je 0x1400e5d0e
mov rcx, qword [rsp + 0x68]
mov r8, rbp
mov rdx, r14
call fcn.140075a80
test eax, eax
je 0x1400e5d0e
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov r9, r14
mov qword [rsp + 0x28], rax
mov r8, r13
mov rdx, rdi
mov qword [rsp + 0x20], rbp
call fcn.1400991f0
test eax, eax
je 0x1400e5d0e
nop
mov rcx, qword [rsp + 0x58]
call fcn.14004a3d0
test eax, eax
je 0x1400e5c38
call fcn.140049d10
mov rdx, rdi
mov rcx, rdi
mov r8, rax
call fcn.140097f00
test eax, eax
je 0x1400e5d0e
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
inc dword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov r9, r14
mov r8, r13
mov rdx, rdi
mov qword [rsp + 0x20], rbp
call fcn.1400991f0
test eax, eax
jne 0x1400e5be0
jmp 0x1400e5d0e
mov edx, 3
mov rcx, rbx
lea r8d, [rdx - 2]
call fcn.1400fbee0
test eax, eax
je 0x1400e5d0e
mov rbx, qword [rsp + 0xb0]
mov dword [rsp + 0x38], 1
mov rcx, qword [rbx + 8]
call fcn.14004a670
mov rcx, qword [rbx + 0x10]
call fcn.14004a670
mov rcx, qword [rbx + 0x18]
call fcn.14004a670
mov rcx, r14
call fcn.14004b090
mov rcx, r15
mov qword [rbx + 8], rax
call fcn.14004b090
mov rcx, qword [rsp + 0x58]
mov qword [rbx + 0x10], rax
call fcn.14004b090
cmp qword [rbx + 8], 0
mov qword [rbx + 0x18], rax
je 0x1400e5cfa
cmp qword [rbx + 0x10], 0
je 0x1400e5cfa
test rax, rax
je 0x1400e5cfa
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x1400e5cc4
mov dword [rax], esi
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x1400e5cd8
mov rax, qword [rsp + 0x78]
mov dword [rdx], eax
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x1400e5d0e
lea rdx, [rsp + 0x100]
mov r8, r12
mov rcx, rax
call sub.MSVCR90.dll_memcpy
jmp 0x1400e5d0e
mov dword [rsp + 0x38], 0
jmp 0x1400e5d0e
mov rbp, rbx
jmp 0x1400e5d0e
mov rbp, qword [rsp + 0x30]
mov rcx, rbp
call fcn.1400976a0
mov rcx, rbp
call fcn.1400975d0
mov rcx, qword [rsp + 0x68]
call fcn.140075a20
mov eax, dword [rsp + 0x38]
mov r15, qword [rsp + 0x158]
mov r13, qword [rsp + 0x160]
mov r12, qword [rsp + 0x168]