Function at 0x1400e4b7c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov dword [rax + 0x20], r9d
mov qword [rax + 0x18], r8
mov dword [rax + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x270
mov r15, qword [rsp + 0x338]
movsxd r14, dword [rsp + 0x2e0]
xor esi, esi
and dword [r15], esi
cmp r14d, 0x78
mov rdi, rcx
lea rbx, [rax - 0x218]
mov r13d, 0xfffffc18
jle 0x1400e4c3a
xor ebx, ebx
mov esi, 1
mov qword [rax - 0x228], rbx
mov rax, qword [rcx + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4c11
lea r9, [rsp + 0x80]
lea r8d, [rsi + 3]
mov edx, r14d
call fcn.1400abe34
mov rbx, qword [rsp + 0x80]
mov r9d, dword [rsp + 0x2c8]
mov ebp, eax
jmp 0x1400e4c14
mov ebp, r13d
test ebp, ebp
je 0x1400e4c3a
test rbx, rbx
je 0x1400e4c33
mov rax, qword [rdi + 0x10]
mov r8, qword [rax + 0x2a0]
mov rcx, qword [r8 + 0x20]
mov rdx, rbx
call qword [r8 + 0x10]
mov eax, ebp
jmp 0x1400e51fb
mov rcx, qword [rsp + 0x330]
mov r12, qword [rsp + 0x320]
mov rax, qword [rdi]
mov r8, qword [rsp + 0x300]
mov rdx, qword [rsp + 0x2d0]
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0x328]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rsp + 0x318]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x310]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x2e8]
mov dword [rsp + 0x30], r9d
mov r9d, dword [rsp + 0x2f0]
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rcx
mov rcx, qword [rdi + 8]
call qword [rax + 0x130]
mov ebp, eax
test eax, eax
je 0x1400e4ce3
test esi, esi
je 0x1400e4c33
test rbx, rbx
je 0x1400e4c33
mov rcx, qword [rdi + 0x10]
mov r8, qword [rcx + 0x2a0]
jmp 0x1400e4c28
cmp dword [r12], 0
jg 0x1400e4d11
test esi, esi
je 0x1400e4d09
test rbx, rbx
je 0x1400e4d09
mov rax, qword [rdi + 0x10]
mov rdx, rbx
mov r8, qword [rax + 0x2a0]
mov rcx, qword [r8 + 0x20]
call qword [r8 + 0x10]
or eax, 0xffffffff
jmp 0x1400e51fb
cmp dword [r12], 0x78
jle 0x1400e4e2e
mov rax, qword [rsp + 0x350]
mov rdx, qword [rsp + 0x340]
mov r8, qword [rsp + 0x348]
and qword [rdx], 0
and qword [rax], 0
and qword [r8], 0
mov rax, qword [rsp + 0x358]
mov dword [r15], 1
mov r15, qword [rsp + 0x360]
and qword [rax], 0
and qword [r15], 0
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4d8d
mov r9, rdx
mov edx, dword [r12]
mov r8d, 4
call fcn.1400abe34
mov r8, qword [rsp + 0x348]
mov ebp, eax
jmp 0x1400e4d90
mov ebp, r13d
test ebp, ebp
je 0x1400e4da1
test esi, esi
je 0x1400e4c33
jmp 0x1400e4c18
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4dc7
mov edx, dword [r12]
mov r9, r8
mov r8d, 4
call fcn.1400abe34
mov ebp, eax
jmp 0x1400e4dca
mov ebp, r13d
test ebp, ebp
jne 0x1400e4d94
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4df7
mov r9, qword [rsp + 0x358]
mov edx, dword [r12]
lea r8d, [rbp + 8]
call fcn.1400abe34
mov ebp, eax
jmp 0x1400e4dfa
mov ebp, r13d
test ebp, ebp
jne 0x1400e4d94
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4e22
mov edx, dword [r12]
lea r8d, [rbp + 1]
mov r9, r15
call fcn.1400abe34
mov ebp, eax
jmp 0x1400e4e25
mov ebp, r13d
test ebp, ebp
je 0x1400e4e36
jmp 0x1400e4d94
mov r15, qword [rsp + 0x360]
movsxd r8, dword [r12]
mov rcx, qword [rsp + 0x348]
xor edx, edx
mov rcx, qword [rcx]
shl r8, 2
call sub.msvcrt.dll_memset
movsxd r8, dword [r12]
mov rcx, qword [r15]
xor edx, edx
call sub.msvcrt.dll_memset
mov r11, qword [r15]
mov r15, qword [rsp + 0x308]
mov r8d, dword [r12]
mov rcx, qword [rsp + 0x310]
mov r9, r15
mov edx, r14d
mov qword [rsp + 0x20], r11
call fcn.1400d8164
mov ebp, eax
test eax, eax
jne 0x1400e4cc2
mov rdx, r14
test r14d, r14d
jle 0x1400e4eba
mov r8, rbx
mov rcx, r15
sub r8, r15
mov eax, dword [r8 + rcx]
shl eax, 0x11
xor eax, dword [rcx]
and eax, 0x20000
xor dword [rcx], eax
add rcx, 4
sub rdx, 1
jne 0x1400e4ea0
mov rax, qword [rsp + 0x358]
mov r10, qword [rdi]
mov r9d, dword [rsp + 0x2f0]
mov rax, qword [rax]
mov r8, qword [rsp + 0x300]
mov rdx, qword [rsp + 0x2d0]
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x340]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x2c8]
mov dword [rsp + 0x60], eax
mov eax, dword [r12]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x330]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x328]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x318]
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x310]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x2e8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
call qword [r10 + 0x138]
mov ebp, eax
test eax, eax
jne 0x1400e4cc2
cmp dword [rdi + 0x170], eax
je 0x1400e509e
mov rax, qword [rsp + 0x338]
cmp dword [rax], ebp
je 0x1400e4fdd
mov rax, qword [rdi + 0x10]
mov rcx, qword [rax + 0x2a0]
test rcx, rcx
je 0x1400e4fb1
mov r9, qword [rsp + 0x350]
mov edx, dword [r12]
lea r8d, [rbp + 4]
call fcn.1400abe34
mov r13d, eax
test r13d, r13d
je 0x1400e4fdd
test esi, esi
je 0x1400e4fd5
test rbx, rbx
je 0x1400e4fd5
mov rax, qword [rdi + 0x10]
mov rdx, rbx
mov r8, qword [rax + 0x2a0]
mov rcx, qword [r8 + 0x20]
call qword [r8 + 0x10]
mov eax, r13d
jmp 0x1400e51fb
cmp dword [rdi + 0x174], 0
jne 0x1400e5216
mov rax, qword [rsp + 0x358]
mov r10, qword [rdi]
mov r9d, dword [rsp + 0x2f0]
mov rax, qword [rax]
mov r8, qword [rsp + 0x300]
mov rdx, qword [rsp + 0x2d0]
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x350]
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x2c8]
mov dword [rsp + 0x60], eax
mov eax, dword [r12]
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x330]
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x328]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x318]
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x310]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x2e8]
mov qword [rsp + 0x28], rax
and dword [rsp + 0x20], 0
call qword [r10 + 0x138]
mov ebp, eax
test eax, eax
jne 0x1400e4cc2
mov r13, qword [rsp + 0x340]
mov rax, qword [rsp + 0x2d8]
test byte [rax + 8], 2
je 0x1400e5143
mov rax, qword [rsp + 0x360]
movsxd rcx, dword [rsp + 0x2f0]
mov r9d, dword [rsp + 0x2c8]
mov rax, qword [rax]
mov r8, qword [rsp + 0x2c0]
mov edx, dword [rsp + 0x2b8]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x348]
mov qword [rsp + 0x50], r15
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [r13]
mov qword [rsp + 0x40], rax
mov eax, dword [r12]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x2e8]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x2d0]
mov dword [rsp + 0x28], r14d
mov rax, qword [rax + rcx*8 - 8]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1400e5494
mov ebp, eax
test eax, eax
jne 0x1400e4cc2
mov rax, qword [rsp + 0x368]
mov r9d, dword [rsp + 0x2f0]
mov r8, qword [rsp + 0x310]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x378]
mov rdx, r15
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x370]
mov ecx, r14d
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x360]
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x348]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov rax, qword [r13]
mov qword [rsp + 0x38], rax
mov eax, dword [r12]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x300]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x2f8]
mov qword [rsp + 0x20], rax
call fcn.1400e5680
mov ebp, eax
test eax, eax
jne 0x1400e4cc2
test esi, esi
je 0x1400e51f9
test rbx, rbx
je 0x1400e51f9
mov rax, qword [rdi + 0x10]
mov rdx, rbx
mov r8, qword [rax + 0x2a0]
mov rcx, qword [r8 + 0x20]
call qword [r8 + 0x10]
xor eax, eax
mov rbx, qword [rsp + 0x2b0]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rax, qword [rsp + 0x350]
movsxd r8, dword [r12]
mov r13, qword [rsp + 0x340]
mov rdx, qword [r13]
mov rcx, qword [rax]
shl r8, 2
call sub.msvcrt.dll_memcpy
jmp 0x1400e50a6