Function at 0x140017160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1e8]
sub rsp, 0x2e8
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x14005f020]
xor rax, rsp
mov qword [rbp + 0x1d0], rax
mov qword [rsp + 0x28], r9
mov r13, r8
mov r8, rdx
mov r14, rcx
xor ebx, ebx
mov dword [rcx + 0x1f70], ebx
mov dword [rsp + 0x60], 0x6aef
mov eax, dword [rsp + 0x60]
xor eax, 0x7b
mov word [rsp + 0x64], ax
mov eax, dword [rsp + 0x60]
inc ax
xor eax, 0x31
mov word [rsp + 0x66], ax
mov eax, dword [rsp + 0x60]
add ax, 2
xor eax, 0x43
mov word [rsp + 0x68], ax
mov eax, dword [rsp + 0x60]
add ax, 3
xor eax, 0x37
mov word [rsp + 0x6a], ax
mov eax, dword [rsp + 0x60]
add ax, 4
xor eax, 0x39
mov word [rsp + 0x6c], ax
mov eax, dword [rsp + 0x60]
add ax, 5
xor eax, 0x41
mov word [rsp + 0x6e], ax
mov eax, dword [rsp + 0x60]
add ax, 6
xor eax, 0x43
mov word [rsp + 0x70], ax
mov eax, dword [rsp + 0x60]
add ax, 7
xor eax, 0x31
mov word [rsp + 0x72], ax
mov eax, dword [rsp + 0x60]
add ax, 8
xor eax, 0x41
mov word [rsp + 0x74], ax
mov eax, dword [rsp + 0x60]
add ax, 9
xor eax, 0x2d
mov word [rsp + 0x76], ax
mov eax, dword [rsp + 0x60]
add ax, 0xa
xor eax, 0x38
mov word [rsp + 0x78], ax
mov eax, dword [rsp + 0x60]
add ax, 0xb
xor eax, 0x37
mov word [rsp + 0x7a], ax
mov eax, dword [rsp + 0x60]
add ax, 0xc
xor eax, 0x32
mov word [rsp + 0x7c], ax
mov eax, dword [rsp + 0x60]
add ax, 0xd
xor eax, 0x46
mov word [rsp + 0x7e], ax
mov eax, dword [rsp + 0x60]
add ax, 0xe
xor eax, 0x2d
mov word [rbp - 0x80], ax
mov eax, dword [rsp + 0x60]
add ax, 0xf
xor eax, 0x34
mov word [rbp - 0x7e], ax
mov eax, dword [rsp + 0x60]
add ax, 0x10
xor eax, 0x63
mov word [rbp - 0x7c], ax
mov eax, dword [rsp + 0x60]
add ax, 0x11
xor eax, 0x64
mov word [rbp - 0x7a], ax
mov eax, dword [rsp + 0x60]
add ax, 0x12
xor eax, 0x65
mov word [rbp - 0x78], ax
mov eax, dword [rsp + 0x60]
add ax, 0x13
xor eax, 0x2d
mov word [rbp - 0x76], ax
mov eax, dword [rsp + 0x60]
add ax, 0x14
xor eax, 0x39
mov word [rbp - 0x74], ax
mov eax, dword [rsp + 0x60]
add ax, 0x15
xor eax, 0x34
mov word [rbp - 0x72], ax
mov eax, dword [rsp + 0x60]
add ax, 0x16
xor eax, 0x37
mov word [rbp - 0x70], ax
mov eax, dword [rsp + 0x60]
add ax, 0x17
xor eax, 0x32
mov word [rbp - 0x6e], ax
mov eax, dword [rsp + 0x60]
add ax, 0x18
xor eax, 0x2d
mov word [rbp - 0x6c], ax
mov eax, dword [rsp + 0x60]
add ax, 0x19
xor eax, 0x25
mov word [rbp - 0x6a], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1a
xor eax, 0x30
mov word [rbp - 0x68], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1b
xor eax, 0x38
mov word [rbp - 0x66], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1c
xor eax, 0x78
mov word [rbp - 0x64], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1d
xor eax, 0x2d
mov word [rbp - 0x62], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1e
xor eax, 0x32
mov word [rbp - 0x60], ax
mov eax, dword [rsp + 0x60]
add ax, 0x1f
xor eax, 0x38
mov word [rbp - 0x5e], ax
mov eax, dword [rsp + 0x60]
add ax, 0x20
xor eax, 0x46
mov word [rbp - 0x5c], ax
mov eax, dword [rsp + 0x60]
add ax, 0x21
xor eax, 0x35
mov word [rbp - 0x5a], ax
mov eax, dword [rsp + 0x60]
add ax, 0x22
xor eax, 0x37
mov word [rbp - 0x58], ax
mov eax, dword [rsp + 0x60]
add ax, 0x23
xor eax, 0x34
mov word [rbp - 0x56], ax
mov eax, dword [rsp + 0x60]
add ax, 0x24
xor eax, 0x39
mov word [rbp - 0x54], ax
mov eax, dword [rsp + 0x60]
add ax, 0x25
xor eax, 0x38
mov word [rbp - 0x52], ax
mov eax, dword [rsp + 0x60]
add ax, 0x26
xor eax, 0x31
mov word [rbp - 0x50], ax
mov eax, dword [rsp + 0x60]
add ax, 0x27
xor eax, 0x36
mov word [rbp - 0x4e], ax
mov eax, dword [rsp + 0x60]
add ax, 0x28
xor eax, 0x39
mov word [rbp - 0x4c], ax
mov eax, dword [rsp + 0x60]
add ax, 0x29
xor eax, 0x32
mov word [rbp - 0x4a], ax
mov eax, dword [rsp + 0x60]
add ax, 0x2a
xor eax, 0x7d
mov word [rbp - 0x48], ax
xor eax, eax
mov word [rbp - 0x46], ax
movzx eax, word [rsp + 0x64]
mov eax, ebx
nop
movzx ecx, word [rsp + rax*2 + 0x64]
mov edx, dword [rsp + 0x60]
add edx, eax
xor edx, ecx
mov word [rsp + rax*2 + 0x64], dx
inc rax
cmp rax, 0x2b
jb 0x140017450
mov word [rbp - 0x46], bx
mov rcx, r8
call fcn.14000a300
mov r9d, eax
lea r8, [rsp + 0x64]
mov edx, 0x208
lea rcx, [rbp - 0x40]
call fcn.14000b530
lea rdx, [rbp - 0x40]
lea rcx, [r14 + 0x1f68]
call fcn.140017060
test eax, eax
js 0x1400175e1
xor r15b, r15b
mov byte [rsp + 0x40], r15b
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x20], rbx
mov r12, qword [r14 + 0x1f68]
mov edx, 0xffffffff
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1400174e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
or esi, 0xe0ff0000
jmp 0x1400174e3
mov esi, ebx
mov rdi, rbx
test esi, esi
cmovns rdi, r12
mov qword [rsp + 0x20], rdi
cmovns esi, ebx
test esi, esi
js 0x1400175c1
mov ecx, 0x28
call fcn.14002fd10
mov rsi, rax
mov qword [rsp + 0x58], rax
lea rax, vtable.MemoryFileIO.0
mov qword [rsi], rax
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], rbx
mov qword [rsi + 8], rbx
mov rdx, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x10]
call fcn.14001b090
mov rax, qword [rsi + 0x10]
mov qword [rsi + 0x18], rax
mov rcx, qword [r14 + 0x1f60]
mov qword [r14 + 0x1f60], rsi
test rcx, rcx
je 0x14001755a
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x38], r14
mov rcx, qword [r14 + 0x1f60]
mov rax, qword [rcx]
mov r8, qword [rsp + 0x28]
mov rdx, r13
call qword [rax + 8]
mov esi, eax
test eax, eax
js 0x1400175b0
mov rcx, r14
call fcn.140017e90
mov esi, eax
test eax, eax
js 0x1400175b0
mov rcx, r14
call fcn.140017bc0
mov esi, eax
test eax, eax
js 0x1400175b0
mov byte [rsp + 0x30], 1
mov r15b, 1
mov byte [rsp + 0x40], r15b
mov esi, ebx
movzx eax, r15b
jmp 0x1400175b2
xor al, al
test al, al
jne 0x1400175c1
lea rcx, [rsp + 0x38]
call fcn.14001b010
nop
test rdi, rdi
je 0x1400175d0
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
test r15b, r15b
jne 0x1400175df
lea rcx, [rsp + 0x48]
call fcn.14001b040
mov eax, esi
mov rcx, qword [rbp + 0x1d0]
xor rcx, rsp
call fcn.14002fb30
add rsp, 0x2e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret