Function at 0x18013b220
Capabilities:
Encode data using xor
Write file on windows

Disassembly:
push rbp
push rbx
push rdi
push r14
push r15
lea rbp, [rsp - 0x2f]
sub rsp, 0xf0
mov rbx, rcx
mov r14, r9
mov rcx, qword [r8 + 0x18]
mov rdi, r8
mov r15, rdx
test rcx, rcx
je 0x18013b551
mov rax, qword [rbx + 0xf0]
call rax
cmp eax, 0xffffffff
je 0x18013b551
mov r9, qword [rdi + 0x18]
mov rcx, rbx
mov r8, qword [r14 + 0x28]
mov rdx, qword [rbp + 0x7f]
mov qword [rsp + 0x120], rsi
mov qword [rsp + 0x128], r12
xor r12d, r12d
mov dword [rsp + 0x20], r12d
call fcn.180141e70
mov rsi, rax
test rax, rax
jne 0x18013b385
movdqa xmm0, xmmword [0x180160e60]
movabs rcx, 0x6dc8d4bcf0e3954a
movdqa xmm1, xmmword [0x1801609c0]
movabs r9, 0xfb15fb380cc1731b
movabs r8, 0x989f58b5d4fa3bbc
mov qword [rbp - 0x71], r9
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rbp - 0x69], r8
mov rax, rcx
movdqu xmmword [rsp + 0x40], xmm1
mov qword [rbp - 0x61], rcx
mov edx, r12d
imul rax, rcx
add r8, r9
add rax, r8
mov rcx, rax
shl rax, 0x20
shr rcx, 0x20
or rcx, rax
movzx eax, cl
xor al, byte [rsp + rdx + 0x30]
mov byte [rbp + rdx - 0x11], al
inc rdx
mov rax, rcx
cmp rdx, 0x1f
jb 0x18013b2e3
movups xmm0, xmmword [rbp - 0x11]
mov byte [rbp + 0xe], r12b
lea r8, [rbp - 0x49]
movups xmm1, xmmword [rbp - 1]
mov edx, 0x100000
lea rcx, [0x18017bd90]
movups xmmword [rbp - 0x49], xmm0
movups xmmword [rbp - 0x39], xmm1
call fcn.1800010e0
mov rcx, qword [0x18017bd78]
lea r9, [0x18017bd80]
mov r8d, eax
mov dword [0x18017bd84], eax
lea rdx, [0x18017bd90]
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor eax, eax
mov rsi, qword [rsp + 0x120]
mov r12, qword [rsp + 0x128]
add rsp, 0xf0
pop r15
pop r14
pop rdi
pop rbx
pop rbp
ret
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x130], r13
call fcn.180146f60
mov r9, r14
mov qword [rdi + 0x18], rsi
mov r8, rdi
mov dword [rsp + 0x20], r12d
mov rdx, r15
mov rcx, rbx
call fcn.18013b570
mov esi, eax
movabs r14, 0xa8ce5db91a41f821
movabs r15, 0x99bd04a33aa037c8
movabs r13, 0x4e0effb15aa2da28
test eax, eax
jne 0x18013b47e
movdqa xmm0, xmmword [0x180161350]
lea rdx, [rsp + 0x30]
movdqa xmm1, xmmword [0x180162640]
lea rcx, [rbp - 0x11]
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rbp - 0x71], 0xd5394e24
movdqu xmmword [rsp + 0x40], xmm1
mov dword [rbp - 0x6d], 0xa6df
mov qword [rbp - 0x69], r14
mov qword [rbp - 0x61], r15
mov qword [rbp - 0x59], r13
call fcn.18000fed0
lea r8, [rbp - 0x49]
mov edx, 0x100000
movups xmm2, xmmword [rax]
movups xmmword [rbp - 0x49], xmm2
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rbp - 0x39], xmm0
mov ecx, dword [rax + 0x20]
mov dword [rbp - 0x29], ecx
movzx ecx, word [rax + 0x24]
mov word [rbp - 0x25], cx
lea rcx, [0x18017bd90]
movzx eax, byte [rax + 0x26]
mov byte [rbp - 0x23], al
call fcn.1800010e0
mov rcx, qword [0x18017bd78]
lea r9, [0x18017bd80]
mov r8d, eax
mov dword [0x18017bd84], eax
lea rdx, [0x18017bd90]
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rax, qword [rbx + 8]
mov rcx, qword [rdi + 0x18]
call rax
test eax, eax
jne 0x18013b542
call qword [sym.imp.KERNEL32.dll_GetLastError]
movdqa xmm0, xmmword [0x180161710]
lea rdx, [rsp + 0x30]
movdqa xmm1, xmmword [0x180162480]
lea rcx, [rbp - 0x11]
mov rdi, qword [rdi + 8]
mov ebx, eax
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rbp - 0x61], r14
movdqa xmm0, xmmword [0x180162490]
movdqu xmmword [rbp - 0x71], xmm0
mov qword [rbp - 0x59], r15
movdqu xmmword [rsp + 0x40], xmm1
mov qword [rbp - 0x51], r13
call fcn.18000aa70
mov r9, rdi
mov dword [rsp + 0x20], ebx
lea r8, [rbp - 0x49]
mov edx, 0x100000
lea rcx, [0x18017bd90]
movups xmm2, xmmword [rax]
movups xmmword [rbp - 0x49], xmm2
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rbp - 0x39], xmm0
movups xmm1, xmmword [rax + 0x20]
movups xmmword [rbp - 0x29], xmm1
movzx eax, byte [rax + 0x30]
mov byte [rbp - 0x19], al
call fcn.1800010e0
mov rcx, qword [0x18017bd78]
lea r9, [0x18017bd80]
mov r8d, eax
mov dword [0x18017bd84], eax
lea rdx, [0x18017bd90]
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r13, qword [rsp + 0x130]
mov eax, esi
jmp 0x18013b366
xor eax, eax
add rsp, 0xf0
pop r15
pop r14
pop rdi
pop rbx
pop rbp
ret