Function at 0x140027bd0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf0
mov r15, r8
mov rdi, rdx
mov rsi, rcx
mov r12, rdi
add r12, 0x68
movzx eax, byte [rdi + 0x68]
test eax, eax
je 0x140027c0c
jmp 0x140027bfc
sub eax, 1
je 0x140027ef0
jmp 0x140027c07
jmp 0x140027cd6
mov rax, qword [rdi]
mov qword [rsp + 0x90], rax
mov rax, qword [rdi + 8]
mov qword [rsp + 0x98], rax
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0xa0], rax
mov rax, qword [rdi + 0x18]
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x90]
call fcn.140072a20
mov r8, qword [rsp + 0x70]
mov r14, qword [rsp + 0x78]
cmp r8, 0xffffffffffffffff
je 0x140027ccb
mov eax, dword [0x1400d4e30]
sub eax, dword [0x1400d4e34]
or eax, 0x1f10bd8c
imul eax, eax, 0x9224a450
xor eax, 0xc620d30a
cmp eax, 0xfcbce0d3
jae 0x140027f25
mov eax, dword [0x1400d4e38]
imul eax, dword [0x1400d4e3c]
mov ecx, 0xdfeacb6d
xor edx, edx
div ecx
and eax, 0x54d88fca
add eax, 0x966bb96d
mov rbx, rdi
add rbx, 0x20
mov qword [rdi + 0x20], r8
mov qword [rdi + 0x28], r14
mov r13, rdi
add r13, 0x60
mov byte [rdi + 0x60], 0
cmp eax, 0x1778f55c
jbe 0x140027f25
jmp 0x140027d09
mov r15d, 2
jmp 0x140027eca
mov r13, rdi
add r13, 0x60
mov al, byte [rdi + 0x60]
mov rbx, rdi
add rbx, 0x20
test al, al
je 0x140027d00
jmp 0x140027ced
sub al, 1
je 0x140027dab
jmp 0x140027cf7
mov rdx, qword [rdi + 0x58]
jmp 0x140027d8e
mov r8, qword [rbx]
mov r14, qword [rdi + 0x28]
jmp 0x140027d09
lea rcx, [rsp + 0xb0]
mov rdx, r8
mov r8, r14
call fcn.140060a70
mov rax, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp rax, 2
je 0x140027d89
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0xc8]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 0x68], rcx
mov rdx, rdi
add rdx, 0x30
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], r14
mov rax, qword [rsp + 0x58]
mov qword [rdi + 0x40], rax
mov rax, qword [rsp + 0x60]
mov qword [rdi + 0x48], rax
mov rax, qword [rsp + 0x68]
mov qword [rdi + 0x50], rax
mov qword [rdi + 0x58], rdx
jmp 0x140027d8e
jmp 0x140027e50
lea rcx, [rsp + 0x80]
mov r8, r15
call fcn.14005e290
mov al, byte [rsp + 0x89]
cmp al, 3
je 0x140027dbf
jmp 0x140027dad
ud2
mov r14, qword [rsp + 0x80]
cmp al, 2
je 0x140027e44
jmp 0x140027e15
mov eax, dword [0x1400d4e40]
imul eax, dword [0x1400d4e44]
sub eax, 0x74ad3294
sub eax, 0xd4bbe1d8
or eax, 0x8f16b3d6
cmp eax, 0x31680fca
jbe 0x140027f42
jmp 0x140027de8
mov eax, dword [0x1400d4e48]
sub eax, dword [str.E7d]
sub eax, 0xaff0739f
xor eax, 0xe38f91c
imul eax, eax, 0xf22f3e66
mov byte [r13], 3
cmp eax, 0x6f5568ce
je 0x140027de8
jmp 0x140027f1a
mov r15, rdi
add r15, 0x30
mov rcx, rdi
add rcx, 0x48
cmp qword [rdi + 0x48], 0xffffffffffffffff
jne 0x140027e2c
ud2
call fcn.140072b20
mov r14, rdx
cmp rax, 0
je 0x140027e3c
jmp 0x140027e44
cmp r14, 0
je 0x140027e84
jmp 0x140027e44
add rdi, 0x30
mov rcx, rdi
call fcn.1400273e0
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov byte [r13], 1
mov r15d, 2
jmp 0x140027ef2
mov r15, qword [r15]
mov r14, qword [rdi + 0x38]
mov rax, qword [rdi + 0x40]
mov qword [rsp + 0x28], rax
mov rax, qword [rdi + 0x48]
mov qword [rsp + 0x30], rax
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x38], rax
mov byte [r13], 1
cmp r15, 3
je 0x140027f1a
jmp 0x140027ef2
mov byte [r12], al
add rsp, 0xf0
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsi], r15
mov qword [rsi + 8], r14
mov rax, qword [rsp + 0x40]
mov qword [rsi + 0x10], rax
mov rax, qword [rsp + 0x48]
mov qword [rsi + 0x18], rax
mov rax, qword [rsp + 0x50]
mov qword [rsi + 0x20], rax
mov al, 1
jmp 0x140027eb3
ud2
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x50], rax
mov rcx, rbx
call fcn.140027a50
jmp 0x140027eca
mov qword [rsi], 3
mov al, 3
jmp 0x140027eb3
xchg ebx, eax
jmp 0x18558ed32
loope 0x140027f84
push rsp
outsd dx, dword [rsi]
or esi, dword [rbx]
retf 0x41c7
mov dh, 0x47
adc byte [rax - 0x73], cl
or eax, 0x8cbf2
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax