Function at 0x140012f10
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov r13, rdx
mov rsi, rcx
mov rax, r13
add rax, 8
mov rcx, qword [r13 + 8]
cmp rcx, 0
je 0x140012f5e
mov rdx, qword [r13]
mov r12b, byte [rdx]
mov r8, rdx
add r8, 1
mov r9, rcx
add r9, 0xffffffffffffffff
mov qword [r13], r8
mov qword [rax], r9
cmp r9, 0
je 0x140012fa8
jmp 0x140012f7c
mov byte [rsi + 8], 0
mov qword [rsi + 0x10], 1
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x140013416
mov bl, byte [r8]
add rdx, 2
add rcx, 0xfffffffffffffffe
mov qword [r13], rdx
mov qword [rax], rcx
lea rcx, [rsp + 0x50]
mov rdx, r13
call fcn.140054a20
mov al, byte [rsp + 0x50]
cmp al, 0x11
je 0x140012fc6
jmp 0x1400130b1
mov byte [rsi + 8], 0
mov qword [rsi + 0x10], 1
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x140013416
mov rdi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
lea rcx, [rsp + 0x90]
mov rdx, r13
call fcn.140054a20
mov al, byte [rsp + 0x90]
cmp al, 0x11
jne 0x140013033
mov qword [rsp + 0x28], r15
mov r15, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0xa8]
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x30], rdx
mov r8, rbp
call fcn.1400a30e0
cmp qword [rsp + 0xd0], 0
je 0x1400130f8
jmp 0x140013073
mov ecx, dword [rsp + 0x91]
mov dword [rsp + 0x21], ecx
mov cx, word [rsp + 0x95]
mov word [rsp + 0x25], cx
mov cl, byte [rsp + 0x97]
mov byte [rsp + 0x27], cl
mov r12, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
jmp 0x14001311b
mov r12, qword [rsp + 0xd8]
mov rbx, qword [rsp + 0xe0]
mov al, 5
cmp r15, 0
jne 0x140013095
mov r15, qword [rsp + 0x28]
jmp 0x14001311b
mov rcx, qword [rsp + 0x30]
mov rdx, r15
mov r8d, 1
call fcn.140063a00
mov al, 5
mov r15, qword [rsp + 0x28]
jmp 0x14001311b
mov ecx, dword [rsp + 0x51]
mov dword [rsi + 9], ecx
mov cx, word [rsp + 0x55]
mov word [rsi + 0xd], cx
mov cl, byte [rsp + 0x57]
mov byte [rsi + 0xf], cl
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdx
mov qword [rsi + 0x20], r8
mov byte [rsi + 8], al
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x140013416
mov qword [rsp + 0x38], r15
lea rcx, [rsp + 0x70]
mov rdx, r13
call fcn.140054da0
mov al, byte [rsp + 0x70]
cmp al, 0x11
je 0x1400131bb
jmp 0x140013260
mov edx, dword [0x1400e47b8]
add edx, dword [0x1400e47bc]
sub edx, 0xfab65e68
imul edx, edx, 0xf2e06cb3
xor edx, 0x3a9f638a
cmp edx, 0xf407367
jbe 0x140013440
jmp 0x140013147
mov r8d, dword [0x1400e47c0]
and r8d, dword [0x1400e47c4]
add r8d, 0xad20f73f
xor r8d, 0xaed70f8a
and r8d, 0x5138963d
mov edx, dword [rsp + 0x21]
mov dword [rsi + 9], edx
mov dx, word [rsp + 0x25]
mov word [rsi + 0xd], dx
mov dl, byte [rsp + 0x27]
mov byte [rsi + 0xf], dl
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rcx
mov byte [rsi + 8], al
movabs rdx, 0x8000000000000000
mov qword [rsi], rdx
cmp rdi, 0
sete dl
cmp r8d, 0xb5fde705
je 0x140013147
test dl, 1
jne 0x140013416
jmp 0x14001342d
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x40], rax
mov r15, qword [rsp + 0x88]
lea rcx, [rsp + 0xb0]
mov rdx, r13
call fcn.140042ae0
mov cl, byte [rsp + 0xb0]
cmp cl, 0x11
jne 0x140013226
mov eax, dword [rsp + 0xb4]
mov cl, 4
lea rdx, str.FileMode
mov r8d, 8
lea r9, [0x1400c36c8]
cmp eax, 4
mov r13, qword [rsp + 0x38]
jb 0x1400132d7
jmp 0x14001331d
mov r11b, byte [rsp + 0xb1]
mov r10w, word [rsp + 0xb2]
mov eax, dword [rsp + 0xb4]
mov rdx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xc0]
mov r9, qword [rsp + 0xc8]
mov r13, qword [rsp + 0x38]
jmp 0x14001331d
mov ecx, dword [rsp + 0x71]
mov dword [rsi + 9], ecx
mov cx, word [rsp + 0x75]
mov word [rsi + 0xd], cx
mov cl, byte [rsp + 0x77]
mov byte [rsi + 0xf], cl
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdx
mov qword [rsi + 0x20], r8
mov byte [rsi + 8], al
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rdx, qword [rsp + 0x38]
cmp rdx, 0
je 0x1400132c3
mov rcx, qword [rsp + 0x30]
mov r8d, 1
call fcn.140063a00
cmp rdi, 0
mov r15, qword [rsp + 0x28]
je 0x140013416
jmp 0x14001342d
mov qword [rsi], rdi
mov rcx, qword [rsp + 0x28]
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], r14
mov qword [rsi + 0x18], r13
mov rcx, qword [rsp + 0x30]
mov qword [rsi + 0x20], rcx
mov qword [rsi + 0x28], rbp
mov rcx, qword [rsp + 0x48]
mov qword [rsi + 0x30], rcx
mov rcx, qword [rsp + 0x40]
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0x40], r15
mov byte [rsi + 0x48], al
mov byte [rsi + 0x49], r12b
mov byte [rsi + 0x4a], bl
jmp 0x140013416
mov byte [rsi + 8], cl
mov byte [rsi + 9], r11b
mov word [rsi + 0xa], r10w
mov dword [rsi + 0xc], eax
mov qword [rsi + 0x10], rdx
mov qword [rsi + 0x18], r8
mov qword [rsi + 0x20], r9
movabs rax, 0x8000000000000000
mov qword [rsi], rax
cmp r15, 0
mov r14, qword [rsp + 0x40]
je 0x140013381
xor ebx, ebx
jmp 0x140013354
imul rcx, rbx, 0x18
mov rax, r14
add rax, rcx
add rbx, 1
mov rdx, qword [rax]
cmp rdx, 0
je 0x14001337a
mov rcx, qword [rax + 8]
mov r8d, 1
call fcn.140063a00
cmp rbx, r15
jne 0x140013354
jmp 0x140013381
mov rax, qword [rsp + 0x48]
cmp rax, 0
je 0x14001339e
imul rdx, rax, 0x18
mov rcx, r14
mov r8d, 8
call fcn.140063a00
cmp r13, 0
je 0x1400133b7
mov rcx, qword [rsp + 0x30]
mov rdx, r13
mov r8d, 1
call fcn.140063a00
mov eax, dword [0x1400e47c8]
sub eax, dword [0x1400e47cc]
or eax, 0xc1145070
or eax, 0xf487b6e6
sub eax, 0x308c04f0
cmp eax, 0x3f52ceda
je 0x140013480
mov ecx, dword [0x1400e47d0]
imul ecx, dword [0x1400e47d4]
and ecx, 0x3668de8
add ecx, 0xd42622a7
sub ecx, 0x72f85a7
cmp rdi, 0
sete al
cmp ecx, 0x63c55fee
jbe 0x140013480
test al, 1
mov r15, qword [rsp + 0x28]
jne 0x140013416
jmp 0x14001342d
mov rax, rsi
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r15
mov rdx, rdi
mov r8d, 1
call fcn.140063a00
jmp 0x140013416
insd dword [rdi], dx
or ebx, dword [rbp + rbx*8 + 0x4d]
mov bh, 0x50
movabs al, byte [0x660956892124548b]
mov edx, dword [rsp + 0x25]
mov word [rsi + 0xd], dx
mov dl, byte [rsp + 0x27]
mov byte [rsi + 0xf], dl
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rcx
mov byte [rsi + 8], al
movabs rdx, 0x8000000000000000
mov qword [rsi], rdx
jmp 0x140013145
int 0x7b
invalid