Function at 0x140077820
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov rax, qword [0x1408f0280]
xor rax, rsp
mov qword [rsp + 0xe0], rax
xor ebx, ebx
mov ebp, r8d
mov rsi, rcx
mov r11d, r9d
mov rcx, qword [rsp + 0x160]
mov r15, rdx
mov qword [rsp + 0x50], rcx
mov r8d, ebx
mov r12d, ebx
mov r13d, ebx
movzx eax, byte [rsi + 0x325]
movzx r14d, byte [rsi + 0x329]
cmp al, 1
jne 0x140077a69
movzx edx, word [rsi + 0x448]
bt dx, 0xe
jae 0x140077897
movzx r8d, word [rsi + 0x320]
mov eax, r8d
mov rcx, rbp
sub rcx, rax
mov r13d, 1
bt dx, 0xd
mov dword [rsp + 0x48], r13d
mov rdi, rbp
movzx r12d, byte [rcx + r15 - 1]
mov eax, r12d
mov r9d, r12d
mov dword [rsp + 0x44], eax
jae 0x14007799d
sub ebp, r8d
mov eax, 0xff
movsxd rdx, ebp
dec rdx
add rdx, r15
lea ecx, [rbp - 1]
movzx r9d, byte [rdx]
mov edi, r9d
sub edi, ebp
add edi, r14d
shr edi, 0x1f
dec dil
cmp ecx, eax
cmovg ecx, eax
movsxd r8, ecx
test ecx, ecx
jle 0x140077921
nop dword [rax + rax]
mov ecx, r9d
lea rdx, [rdx - 1]
sub ecx, ebx
movzx eax, r9b
xor al, byte [rdx + 1]
inc ebx
shr ecx, 0x1f
dec cl
and cl, al
or dil, cl
sub r8, r13
jne 0x140077900
mov r9d, ebp
mov dword [rsp + 0x30], r13d
sub r9d, r14d
mov dword [rsp + 0x28], r11d
sub r9d, r12d
mov dword [rsp + 0x20], r12d
dec r9d
lea rdx, [rsp + 0xa0]
mov r8, r15
mov rcx, rsi
call qword [rsi + 0xf0]
movzx r8d, byte [rsi + 0x329]
lea r9, [rsp + 0xa0]
mov edx, ebp
mov rcx, r15
mov ebx, eax
call fcn.1400772e0
or al, dil
not al
movzx ecx, al
shr cl, 4
and al, cl
movzx ecx, al
mov edx, ecx
shr edx, 2
and edx, ecx
mov eax, edx
shr eax, 1
and eax, edx
dec eax
add eax, ebx
je 0x140077a4b
mov eax, 0xfffffecf
jmp 0x140077af5
sub ebp, r14d
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r11d
lea rdx, [rsp + 0x60]
mov r13d, ebx
mov r8, r15
lea ecx, [rbp - 1]
cmp r12d, ecx
mov dword [rsp + 0x40], ecx
cmova r12d, ebx
cmp eax, ecx
mov rcx, rsi
cmovbe r13d, r9d
sub ebp, r13d
mov dword [rsp + 0x20], r13d
lea r9d, [rbp - 1]
call qword [rsi + 0xf0]
mov r10d, eax
test r14d, r14d
je 0x140077a2f
mov ecx, r13d
lea rax, [rsp + 0x60]
sub rdi, rcx
lea rdx, [rsp + 0x60]
sub rdi, r14
mov r8, r14
sub rdi, rax
lea r9, [rdi + r15]
nop word [rax + rax]
movzx ecx, byte [r9 + rdx - 1]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or ebx, ecx
sub r8, 1
jne 0x140077a10
test ebx, ebx
jne 0x140077ae3
test r10d, r10d
jne 0x140077ae3
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x44], eax
ja 0x140077ae3
mov r13d, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
cmp byte [rsi + 0x325], 2
jne 0x140077aea
movzx eax, word [rsi + 0x322]
jmp 0x140077af1
test al, al
jne 0x140077a50
mov r9d, ebp
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r11d
lea rdx, [rsp + 0x60]
sub r9d, r14d
mov dword [rsp + 0x20], 0xffffffff
mov r8, r15
mov rcx, rsi
call qword [rsi + 0xf0]
mov r10d, eax
test r14d, r14d
je 0x140077ada
mov r9, rbp
lea rax, [rsp + 0x60]
sub r9, r14
lea rdx, [rsp + 0x60]
sub r9, rax
mov r8, r14
add r9, r15
nop word [rax + rax]
movzx ecx, byte [r9 + rdx]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or ebx, ecx
sub r8, 1
jne 0x140077ac0
test ebx, ebx
jne 0x140077ae3
test r10d, r10d
je 0x140077a4b
mov eax, 0xfffffecf
jmp 0x140077af5
lea eax, [r14 + r13]
add eax, r12d
mov dword [rcx], eax
xor eax, eax
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.140117aa0
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret