Function at 0x180023950
Capabilities:
Encrypt data using rc4 ksa
Get disk information
Write file on windows

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r15
sub rsp, 0xb58
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0xb40], rax
mov ebx, edx
lea rdx, str.Fixing_MBR._n
xor edi, edi
mov qword [rsp + 0xb50], r14
mov r12, rcx
mov qword [rsp + 0xa8], rcx
mov dword [rsp + 0x40], ebx
mov rsi, rdi
call fcn.180016c70
mov eax, dword [r12 + 0x317]
mov byte [rsp + 0x740], sil
mov r15d, edi
and eax, 0x1ffffff
mov dword [rsp + 0x50], edi
lea ebp, [rdi + 1]
cmp eax, 0xffffffff
je 0x180026063
lea rax, [rsp + 0x58]
test rax, rax
je 0x180026052
lea rcx, [rsp + 0x58]
call fcn.180001a60
test eax, eax
je 0x180026052
mov edx, dword [r12 + 0x317]
mov r14, qword [rsp + 0x58]
mov r8d, ebp
and edx, 0x1ffffff
mov rcx, r14
call fcn.180002620
test eax, eax
je 0x18002600c
mov qword [rsp + 0xba0], r13
test r14, r14
je 0x180023a32
lea rax, [rsp + 0x100]
test rax, rax
je 0x180023a32
lea r13, [r14 + 0x7f]
mov qword [rsp + 0x90], r13
jmp 0x180023a42
mov r13, qword [rsp + 0x100]
mov qword [rsp + 0x90], r13
mov edx, dword [r13]
xor ecx, ecx
mov r8d, 0x1000
lea r9d, [rcx + 4]
shl edx, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov ecx, dword [r12 + 0x317]
bt ecx, 0x1f
mov rsi, rax
mov qword [rsp + 0x68], rax
jae 0x1800251f6
bt ecx, 0x1c
jae 0x180023c5f
lea rax, [rsp + 0x98]
mov ebx, 0x200
lea r9, [rsp + 0x140]
xor edx, edx
mov rcx, r14
mov r8d, ebx
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x180023c5f
lea rdx, [rsp + 0x140]
mov rcx, rsi
mov r8, rbx
call fcn.18002dae0
mov r9d, dword [r12 + 0x307]
mov eax, 0xaa55
mov word [rsp + 0x33e], ax
xor eax, eax
mov r8d, r9d
mov qword [rsp + 0x2fe], rax
mov qword [rsp + 0x306], rax
mov qword [rsp + 0x30e], rax
mov qword [rsp + 0x316], rax
mov qword [rsp + 0x31e], rax
mov qword [rsp + 0x326], rax
mov qword [rsp + 0x32e], rax
mov qword [rsp + 0x336], rax
mov eax, 0x4104105
mov r15d, ebx
mov dword [rsp + 0x50], ebx
mul r9d
sub r8d, edx
mov eax, 0x80808081
shr r8d, 1
add r8d, edx
shr r8d, 5
mov ecx, r8d
mul r8d
imul r8w, r8w, 0x3f
shr edx, 7
mov eax, edx
imul eax, eax, 0xff
sub ecx, eax
movzx eax, dx
mov byte [rsp + 0x2ff], cl
shl ax, 6
movzx ecx, r9w
sub cx, r8w
inc cx
or cx, ax
mov word [rsp + 0x300], cx
test edx, edx
je 0x180023b8c
mov eax, 0xffc0
or cx, ax
mov word [rsp + 0x300], cx
mov eax, 0xffff
mov byte [rsp + 0x302], 0x42
mov byte [rsp + 0x303], 0xfe
mov word [rsp + 0x304], ax
mov eax, dword [r12 + 0x30b]
mov dword [rsp + 0x306], r9d
mov ebp, edi
lea rcx, [rsp + 0x140]
mov rdx, rbx
mov dword [rsp + 0x30a], eax
nop dword [rax]
movzx eax, byte [rcx]
inc rcx
add ebp, eax
sub rdx, 1
jne 0x180023bd0
lea rcx, [rsp + 0x740]
mov dword [rsp + 0x78], ebp
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
mov ecx, eax
xor r9d, r9d
mov dword [rsp + 0x20], ebp
sub rdx, rcx
lea rcx, [rsp + rcx + 0x740]
call fcn.18002e064
lea rdx, str.Writing_new_MBR_at_offset_0._n
xor r8d, r8d
mov rcx, r12
call fcn.180016b80
lea r11, [rsp + 0x74]
lea r9, [rsp + 0x140]
mov r8d, ebx
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x20], r11
call fcn.180002e70
test eax, eax
jne 0x180023c67
lea rdx, str.Failed_to_write_new_MBR._n
or r8, 0xffffffffffffffff
mov rcx, r12
call fcn.180016b80
jmp 0x180023c67
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x78], eax
mov edx, dword [r13]
mov rdi, qword [r12 + 0x30f]
xor ecx, ecx
lea r9d, [rcx + 4]
mov r8d, 0x1000
shl edx, 3
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
mov qword [rsp + 0xc0], rax
test rax, rax
je 0x180025fbf
mov edx, dword [r13]
mov rcx, qword [rsp + 0x58]
xor ebx, ebx
lea ebp, [rdx + rdx*2]
mov r8d, edx
mov r9, rsi
add rbp, rax
lea rax, [rsp + 0x98]
mov rdx, rdi
mov r14d, ebx
mov dword [rsp + 0xb4], ebx
mov r15d, ebx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0xd8], rbp
call fcn.180002c60
test eax, eax
je 0x1800251d1
mov eax, dword [r13]
cmp eax, dword [rsp + 0x98]
jne 0x1800251ca
cmp dword [rsi], 0x42444d56
jne 0x1800251c3
lea rcx, [rsi + 8]
mov qword [rsp + 0x48], rcx
cmp dword [rcx], ebx
je 0x1800251bc
lea rcx, [rax + rsi]
xor r12d, r12d
mov r8, rax
mov qword [rsp + 0xe8], rcx
mov rcx, qword [rsi + 0x75]
mov rdx, rsi
mov qword [rsp + 0x110], rcx
mov ecx, 4
mov dword [rsp + 0xc8], r12d
mov word [rsp + 0xb0], cx
lea ecx, [rax + rax]
mov dword [rsp + 0xf0], 2
add rcx, rsi
mov byte [rsp + 0x60], 2
call fcn.18002dae0
lea r8, [rsi + 4]
lea r9d, [rbx + 2]
mov qword [rsp + 0x120], r8
mov rdx, r8
add r8, 3
nop dword [rax + rax]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
dec r8
mov byte [rdx], al
mov byte [r8 + 1], cl
inc rdx
sub r9, 1
jne 0x180023d80
lea rdx, [rsi + 8]
lea r8, [rsi + 0xb]
mov r9d, 2
nop word [rax + rax]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
dec r8
mov byte [rdx], al
mov byte [r8 + 1], cl
inc rdx
sub r9, 1
jne 0x180023db0
add rsi, 0xc
mov r9d, 2
lea r8, [rsi + 3]
mov qword [rsp + 0x130], rsi
mov rdx, rsi
nop word [rax + rax]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
dec r8
mov byte [rdx], al
mov byte [r8 + 1], cl
inc rdx
sub r9, 1
jne 0x180023df0
mov ecx, dword [rsi]
mov rdx, qword [rsp + 0x90]
mov r13, qword [rsp + 0x58]
mov eax, dword [rdx]
mov r11, qword [rsp + 0xa0]
mov rsi, rbp
sub rcx, rax
lea rax, [rbp + 2]
mov r10d, r12d
add rdi, rcx
mov r12, rsi
mov qword [rsp + 0x128], rax
mov rcx, rdi
mov rbp, rax
add r12, 4
mov qword [rsp + 0x88], rcx
jmp 0x180023e59
mov rdx, qword [rsp + 0x90]
test r10d, r10d
jne 0x180023eb7
mov eax, dword [rdx]
mov r9, qword [rsp + 0xe8]
lea rcx, [rsp + 0x98]
add rdi, rax
mov qword [rsp + 0x20], rcx
mov r8d, eax
mov rdx, rdi
mov rcx, r13
call fcn.180002c60
test eax, eax
je 0x180024007
mov r10, qword [rsp + 0x90]
mov r10d, dword [r10]
cmp r10d, dword [rsp + 0x98]
jne 0x180024011
mov r11, qword [rsp + 0xe8]
mov qword [rsp + 0xa0], r11
test r11, r11
je 0x180024019
mov eax, dword [r11 + 8]
test eax, eax
je 0x180023fe5
mov rdx, r12
shr eax, 0x10
lea r8, [r11 + 0x18]
mov word [rdx], ax
movzx ecx, al
movzx eax, byte [rdx + 1]
mov byte [rdx], al
mov byte [rdx + 1], cl
movzx ecx, byte [r8]
movzx edx, byte [r8 - 5]
xor ebx, ebx
lea eax, [rcx - 1]
inc r15d
add r12, 6
inc r8
movzx r9d, bx
cmp al, 1
ja 0x180023fe7
nop dword [rax]
movzx eax, byte [r8]
shl r9w, 8
inc r8
or r9w, ax
add cl, 0xff
jne 0x180023f10
mov word [rsi], r9w
add rsi, 6
inc r14d
cmp dl, 0x34
je 0x180023fd1
cmp dl, 0x51
jne 0x180023fe7
movzx eax, byte [r8]
movzx edx, bx
inc eax
cdqe
add r8, rax
movzx eax, byte [r8 - 1]
lea rcx, [r8 - 1]
cmp al, 0x30
jb 0x180023f6e
nop dword [rax]
cmp al, 0x39
ja 0x180023f6e
mov al, byte [rcx - 1]
dec rcx
cmp al, 0x30
jae 0x180023f60
inc rcx
cmp rcx, r8
jae 0x180023fa0
nop word [rax + rax]
movzx eax, dx
inc rcx
shl ax, 2
add dx, ax
movzx eax, byte [rcx - 1]
add dx, dx
add dx, ax
sub dx, 0x30
cmp rcx, r8
jb 0x180023f80
movzx eax, byte [r8]
inc dword [rsp + 0xb4]
add rbp, 6
inc eax
movsxd rcx, eax
movzx eax, byte [r8 + rcx + 0x11]
mov word [rbp - 6], ax
movzx eax, byte [r8 + rcx + 0x11]
sub ax, dx
mov word [rsp + 0xb0], ax
jmp 0x180023fe7
cmp byte [r8 + 5], 0x31
jne 0x180023fe7
movzx ecx, r9w
mov dword [rsp + 0xf0], ecx
jmp 0x180023fe7
inc ebx
mov rax, qword [rsp + 0x48]
mov eax, dword [rax]
add r11, rax
sub r10d, eax
mov qword [rsp + 0xa0], r11
cmp ebx, 0x14
jb 0x180023e51
jmp 0x180024019
mov r11, qword [rsp + 0xa0]
jmp 0x180024019
mov r11, qword [rsp + 0xa0]
movsxd r9, dword [rsp + 0xb4]
mov r12, qword [rsp + 0xa8]
xor eax, eax
mov rdx, rax
mov dword [rsp + 0xb8], eax
mov qword [rsp + 0x108], rax
mov eax, dword [rsp + 0x80]
movsxd rbp, r15d
movsxd rsi, r14d
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x100], r9
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0xe0], rsi
mov r13d, edx
mov dword [rsp + 0x44], eax
mov r8d, edx
nop word [rax + rax]
mov rcx, rdx
imul rcx, rcx, 0xc3
add rcx, r12
cmp byte [rcx + 0x10103], 0
je 0x1800240e6
mov ebp, dword [rsp + 0x40]
nop word [rax + rax]
movzx eax, byte [rcx + 0x10105]
and al, 7
cmp al, 2
je 0x1800240ce
cmp r8d, ebp
jne 0x1800240ce
inc rdx
inc r8d
mov rcx, rdx
imul rcx, rcx, 0xc3
add rcx, r12
cmp byte [rcx + 0x10103], 0
jne 0x1800240a0
mov rbp, qword [rsp + 0xd0]
mov dword [rsp + 0xc8], r8d
mov qword [rsp + 0x108], rdx
mov rax, rdx
imul rax, rax, 0xc3
mov qword [rsp + 0x118], rax
cmp byte [rax + r12 + 0x10103], 0
je 0x180024d84
mov bx, word [rsp + 0xb0]
mov rbp, qword [rsp + 0x128]
mov eax, 1
mov edi, 3
movzx r10d, ax
mov word [rsp + 0x54], ax
mov dword [rsp + 0xbc], edi
xor edx, edx
test r9d, r9d
je 0x180024167
movzx r8d, r10w
movzx eax, bx
mov rcx, rbp
add r8d, eax
nop word [rax + rax]
movzx eax, word [rcx]
cmp eax, r8d
je 0x18002423b
inc edx
add rcx, 6
cmp edx, r9d
jb 0x180024150
mov rdx, qword [rsp + 0x100]
mov r8d, dword [rsp + 0xb8]
mov rbp, qword [rsp + 0xd0]
lea ecx, [rbx + r10]
mov rbx, qword [rsp + 0xd8]
lea rax, [rdx + rdx*2]
inc r9d
inc rdx
mov word [rsp + 0x54], r10w
mov word [rbx + rax*2 + 2], cx
mov dword [rsp + 0xb4], r9d
mov qword [rsp + 0x100], rdx
test r8d, r8d
jne 0x18002443d
test r13d, r13d
je 0x18002435d
mov rsi, qword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x88]
mov ebx, dword [rsi]
xor r13d, r13d
mov qword [rsp + 0xf8], rcx
mov dword [rsp + 0x80], r13d
test rdi, rdi
je 0x180024227
lea rax, [rsp + 0x74]
test rax, rax
je 0x180024227
bt dword [rdi + 0x10], 0x1f
jb 0x180024227
add rcx, qword [rdi + 0x28]
mov qword [rsp + 0xf8], rcx
lea rax, [rcx + rbx]
cmp rax, qword [rdi + 0x18]
jbe 0x180024244
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, rdi
call fcn.180001970
lea rdx, str.Unable_to_update_VBLK_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x18002436a
inc r10w
jmp 0x180024131
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0xf8]
mov rcx, qword [rdi + 0x30]
lea r8, [rsp + 0xfc]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0xf8], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x18002429c
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, rdi
call fcn.180001970
lea rdx, str.Unable_to_update_VBLK_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x18002436a
mov rcx, qword [rdi + 0x30]
mov r8d, ebx
mov rbx, qword [rsp + 0xe8]
lea r9, [rsp + 0x80]
mov rdx, rbx
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1800242e8
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, rdi
call fcn.180001970
lea rdx, str.Unable_to_update_VBLK_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x18002436a
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x74], eax
mov eax, dword [rsi]
add dword [rsp + 0x50], eax
test rbx, rbx
je 0x180024324
mov r8d, r13d
mov dword [rsp + 0x78], r13d
test eax, eax
je 0x180024324
mov rcx, rbx
mov rdx, rax
movzx eax, byte [rcx]
inc rcx
add r8d, eax
sub rdx, 1
jne 0x180024310
mov dword [rsp + 0x78], r8d
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
mov ecx, eax
mov eax, dword [rsp + 0x78]
xor r9d, r9d
sub rdx, rcx
lea rcx, [rsp + rcx + 0x740]
mov dword [rsp + 0x20], eax
call fcn.18002e064
jmp 0x18002436a
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x90]
mov eax, dword [rsi]
mov rcx, qword [rsp + 0x88]
mov rbx, qword [rsp + 0xe8]
add rcx, rax
lea rdx, [rsp + 0x98]
mov r9, rbx
mov qword [rsp + 0x20], rdx
mov qword [rsp + 0x88], rcx
mov rdx, rcx
mov rcx, rdi
mov r8d, eax
call fcn.180002c60
test eax, eax
je 0x180024d0c
mov edx, dword [rsi]
cmp edx, dword [rsp + 0x98]
jne 0x180024d16
mov r9d, dword [rsp + 0x50]
lea eax, [rdx + rdx*4]
mov r8d, edx
lea ecx, [rdx + r9]
add eax, eax
mov dword [rsp + 0xb8], edx
mov r11, rbx
mov qword [rsp + 0xa0], rbx
cmp ecx, eax
jae 0x180024420
mov rcx, r9
mov r8, rdx
mov rdx, rbx
add rcx, qword [rsp + 0x68]
call fcn.18002dae0
mov r10w, word [rsp + 0x54]
mov edi, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xb8]
mov rsi, qword [rsp + 0xe0]
mov r11, rbx
mov rbx, qword [rsp + 0xd8]
jmp 0x18002443d
mov r10w, word [rsp + 0x54]
mov edi, dword [rsp + 0xbc]
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
test r11, r11
je 0x180024d1e
cmp dword [r11 + 8], 0
lea r9, [r11 + 8]
jne 0x180024cdf
lea rdi, [r11 + 0x10]
mov dword [r9], 3
xor r10d, r10d
mov edx, r10d
test r15d, r15d
je 0x180024489
mov r8d, dword [r9]
lea rcx, [rbx + 4]
movzx eax, word [rcx]
cmp eax, r8d
je 0x1800247be
inc edx
add rcx, 6
cmp edx, r15d
jb 0x180024472
mov rbp, qword [rsp + 0xd0]
movzx eax, word [r9]
mov r10w, word [rsp + 0x54]
lea rcx, [rbp + rbp*2]
inc r15d
inc rbp
lea rdx, [r9 + 3]
mov r8d, 2
mov word [rbx + rcx*2 + 4], ax
mov qword [rsp + 0xd0], rbp
nop dword [rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x1800244c0
mov r13d, dword [rsp + 0xf0]
xor r12d, r12d
mov eax, pe_nt_image_headers64
lea r8d, [r13 + 1]
mov word [r11 + 0xc], r12w
mov word [r11 + 0xe], ax
mov edx, r12d
test r14d, r14d
je 0x180024519
mov rcx, rbx
movzx eax, word [rcx]
cmp eax, r8d
je 0x1800247ca
inc edx
add rcx, 6
cmp edx, r14d
jb 0x180024502
mov r12, qword [rsp + 0xa8]
lea rax, [rsi + rsi*2]
inc rsi
mov word [rbx + rax*2], r8w
mov eax, dword [rsp + 0xbc]
inc r14d
sub eax, 1
mov qword [rsp + 0xe0], rsi
je 0x1800249c6
sub eax, 1
je 0x1800247f5
cmp eax, 1
jne 0x180024cc1
mov rbp, qword [rsp + 0xc0]
add rdi, 4
mov dword [rsp + 0x70], r8d
add dword [rbp + 0xa1], 0x1000000
mov byte [rdi - 4], 0
mov byte [rdi - 3], 0
mov byte [rdi - 2], 2
mov byte [rdi - 1], 0x51
mov rsi, rdi
add rdi, 4
mov cl, 4
je 0x1800245e9
lea rax, [rsp + 0x80]
test rax, rax
je 0x1800245e9
lea r9, [rdi + 1]
mov dword [r9], r8d
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x1800245b4
dec cl
cmp cl, 1
ja 0x1800245a4
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x1800245e9
mov ecx, eax
shr ecx, 1
je 0x1800245e9
lea rdx, [r9 + rax - 1]
mov r8d, ecx
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x1800245d0
movzx eax, byte [rdi]
lea rdx, str.Volume_d
movzx r8d, r10w
inc eax
add rdi, rax
lea rcx, [rdi + 1]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rdx, [0x180042b3c]
mov byte [rdi], al
movzx eax, al
inc eax
cdqe
add rdi, rax
lea rcx, [rdi + 1]
mov byte [rdi], 3
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
movzx eax, byte [rdi]
lea rdx, str.ACTIVE
inc eax
cdqe
add rdi, rax
lea rcx, [rdi + 1]
mov byte [rdi], 0
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ax, word [rsp + 0x54]
mov byte [rdi + 0xf], 3
mov byte [rdi + 0x10], 1
mov byte [rdi + 0x11], al
mov rax, qword [rsp + 0x110]
mov byte [rdi + 0x12], 0
mov byte [rdi + 0x13], 0
mov byte [rdi + 0x14], 0
mov byte [rdi + 0x15], 0x11
mov byte [rdi + 0x16], 1
mov byte [rdi + 0x17], 1
mov qword [rdi + 0x18], rax
xor eax, eax
add rdi, 0x20
mov qword [rdi], rax
mov rax, qword [rsp + 0x90]
xor edx, edx
mov ecx, dword [rax]
mov rax, qword [rsp + 0x118]
mov rax, qword [rax + r12 + 0x100eb]
div rcx
add rdi, 8
mov cl, 8
je 0x180024709
lea rdx, [rsp + 0x80]
test rdx, rdx
je 0x180024709
lea r8, [rdi + 1]
mov qword [r8], rax
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x1800246d6
dec cl
cmp cl, 1
ja 0x1800246c6
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024709
mov ecx, eax
mov rdx, rax
shr ecx, 1
je 0x180024709
lea rdx, [r8 + rax - 1]
mov r9d, ecx
movzx eax, byte [rdx]
movzx ecx, byte [r8]
dec rdx
mov byte [r8], al
mov byte [rdx + 1], cl
inc r8
sub r9, 1
jne 0x1800246f0
movzx eax, byte [rdi]
inc eax
add rdi, rax
xor eax, eax
mov dword [rdi], eax
lea rcx, [rdi + 5]
mov byte [rdi + 4], 7
call qword [sym.imp.ole32.dll_CoCreateGuid]
add rdi, 0x15
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
movzx edx, byte [rsp + 0x60]
cmp dl, 0x1a
jae 0x180024757
nop word [rax + rax]
movzx ecx, dl
bt eax, ecx
jae 0x1800247d2
inc dl
mov byte [rsp + 0x60], dl
cmp dl, 0x1a
jb 0x180024740
mov r11, qword [rsp + 0xa0]
mov byte [r11 + 0x12], 0
sub edi, esi
lea rdx, [rsi + 3]
mov r8d, 2
sub edi, 4
mov dword [rsi], edi
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [rsi]
dec rdx
mov byte [rsi], al
mov byte [rdx + 1], cl
inc rsi
sub r8, 1
jne 0x180024780
add dword [rbp + 0x85], 0x1000000
mov rbx, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xd0]
jmp 0x180024cc1
lea eax, [r8 + 1]
mov dword [r9], eax
jmp 0x180024463
inc r8d
jmp 0x1800244f7
cmp dl, 0x1a
jae 0x180024757
mov r11, qword [rsp + 0xa0]
mov byte [rdi], 2
lea eax, [rdx + 0x41]
mov byte [rdi + 1], al
mov byte [rdi + 2], 0x3a
add rdi, 3
jmp 0x180024764
mov rbp, qword [rsp + 0xc0]
add rdi, 4
mov dword [rsp + 0x44], r8d
add dword [rbp + 0xa5], 0x1000000
mov byte [rdi - 4], 0
mov byte [rdi - 3], 0
mov byte [rdi - 2], 0
mov byte [rdi - 1], 0x32
mov rsi, rdi
add rdi, 4
mov cl, 4
je 0x180024889
lea rax, [rsp + 0x80]
test rax, rax
je 0x180024889
lea r9, [rdi + 1]
mov dword [r9], r8d
nop
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024850
dec cl
cmp cl, 1
ja 0x180024840
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024889
mov ecx, eax
shr ecx, 1
je 0x180024889
lea rdx, [r9 + rax - 1]
mov r8d, ecx
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x180024870
movzx eax, byte [rdi]
lea rdx, str.Volume_d_01
movzx r8d, r10w
inc eax
add rdi, rax
lea rcx, [rdi + 1]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rdx, str.ACTIVE
mov byte [rdi], al
movzx eax, al
inc eax
cdqe
add rdi, rax
lea rcx, [rdi + 1]
mov byte [rdi], 6
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov byte [rdi + 7], 2
xor eax, eax
mov dword [rdi + 8], eax
mov rax, qword [rsp + 0x110]
mov byte [rdi + 0xc], 1
mov byte [rdi + 0xd], 1
mov qword [rdi + 0xe], rax
add rdi, 0x16
xor eax, eax
add rdi, 8
mov cl, 4
mov qword [rdi - 8], rax
je 0x180024959
lea rax, [rsp + 0x80]
test rax, rax
je 0x180024959
mov eax, dword [rsp + 0x70]
lea r8, [rdi + 1]
mov dword [r8], eax
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024927
dec cl
cmp cl, 1
ja 0x180024917
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024959
mov ecx, eax
shr ecx, 1
je 0x180024959
lea rdx, [r8 + rax - 1]
mov r9d, ecx
nop
movzx eax, byte [rdx]
movzx ecx, byte [r8]
dec rdx
mov byte [r8], al
mov byte [rdx + 1], cl
inc r8
sub r9, 1
jne 0x180024940
movzx eax, byte [rdi]
lea rdx, [rsi + 3]
mov r8d, 2
inc eax
add rdi, rax
mov byte [rdi], 0
sub edi, esi
sub edi, 3
mov dword [rsi], edi
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [rsi]
dec rdx
mov byte [rsi], al
mov byte [rdx + 1], cl
inc rsi
sub r8, 1
jne 0x180024980
add dword [rbp + 0x89], 0x1000000
mov r11, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xe0]
jmp 0x180024cc1
mov rbp, qword [rsp + 0xc0]
add rdi, 4
mov cl, 4
add dword [rbp + 0xa9], 0x1000000
mov byte [rdi - 4], 0
mov byte [rdi - 3], 0
mov byte [rdi - 2], 0x40
mov byte [rdi - 1], 0x33
mov rsi, rdi
add rdi, 4
je 0x180024a59
lea rax, [rsp + 0x80]
test rax, rax
je 0x180024a59
lea r9, [rdi + 1]
mov dword [r9], r8d
nop dword [rax + rax]
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024a20
dec cl
cmp cl, 1
ja 0x180024a10
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024a59
mov ecx, eax
shr ecx, 1
je 0x180024a59
lea rdx, [r9 + rax - 1]
mov r8d, ecx
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x180024a40
movzx eax, byte [rdi]
lea rdx, str.Disk1__.2d
movzx r8d, r10w
inc eax
add rdi, rax
lea rcx, [rdi + 1]
call qword [sym.imp.USER32.dll_wsprintfA]
lea rcx, [rdi + 1]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov r10, qword [rsp + 0x90]
mov r11, qword [rsp + 0x118]
mov byte [rdi], al
movzx eax, al
xor edx, edx
inc eax
mov r9d, 4
cdqe
add rdi, rax
mov rax, qword [rsp + 0x110]
mov qword [rdi + 4], rax
mov ecx, dword [r10]
mov rax, qword [r11 + r12 + 0x100e3]
div rcx
mov ecx, dword [r12 + 0x307]
lea rdx, [rdi + 0xc]
sub rax, rcx
lea r8, [rdi + 0x13]
mov qword [rdi + 0xc], rax
nop word [rax + rax]
movzx eax, byte [r8]
movzx ecx, byte [rdx]
dec r8
mov byte [rdx], al
mov byte [r8 + 1], cl
inc rdx
sub r9, 1
jne 0x180024ae0
xor eax, eax
add rdi, 0x14
xor edx, edx
mov qword [rdi], rax
mov ecx, dword [r10]
mov rax, qword [r11 + r12 + 0x100eb]
div rcx
add rdi, 8
mov cl, 8
je 0x180024b79
lea rdx, [rsp + 0x80]
test rdx, rdx
je 0x180024b79
lea r8, [rdi + 1]
mov qword [r8], rax
nop
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024b40
dec cl
cmp cl, 1
ja 0x180024b30
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024b79
mov ecx, eax
shr ecx, 1
je 0x180024b79
lea rdx, [r8 + rax - 1]
mov r9d, ecx
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r8]
dec rdx
mov byte [r8], al
mov byte [rdx + 1], cl
inc r8
sub r9, 1
jne 0x180024b60
movzx eax, byte [rdi]
mov cl, 4
inc eax
add rdi, rax
je 0x180024be9
lea rax, [rsp + 0x80]
test rax, rax
je 0x180024be9
mov eax, dword [rsp + 0x44]
lea r8, [rdi + 1]
mov dword [r8], eax
nop dword [rax]
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024bb0
dec cl
cmp cl, 1
ja 0x180024ba0
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024be9
mov ecx, eax
shr ecx, 1
je 0x180024be9
lea rdx, [r8 + rax - 1]
mov r9d, ecx
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r8]
dec rdx
mov byte [r8], al
mov byte [rdx + 1], cl
inc r8
sub r9, 1
jne 0x180024bd0
movzx eax, byte [rdi]
mov cl, 4
inc eax
add rdi, rax
je 0x180024c59
lea rax, [rsp + 0x80]
test rax, rax
je 0x180024c59
lea r8, [rdi + 1]
mov dword [r8], r13d
nop dword [rax]
movzx eax, cl
cmp byte [rax + rdi], 0
jne 0x180024c20
dec cl
cmp cl, 1
ja 0x180024c10
mov byte [rdi], cl
movzx eax, cl
test cl, cl
je 0x180024c59
mov ecx, eax
shr ecx, 1
je 0x180024c59
lea rdx, [r8 + rax - 1]
mov r9d, ecx
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r8]
dec rdx
mov byte [r8], al
mov byte [rdx + 1], cl
inc r8
sub r9, 1
jne 0x180024c40
movzx eax, byte [rdi]
lea rdx, [rsi + 3]
mov r8d, 2
inc eax
add rdi, rax
mov byte [rdi], 0
sub edi, esi
sub edi, 3
mov dword [rsi], edi
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [rsi]
dec rdx
mov byte [rsi], al
mov byte [rdx + 1], cl
inc rsi
sub r8, 1
jne 0x180024c80
add dword [rbp + 0x8d], 0x1000000
mov r11, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xe0]
mov edi, dword [rsp + 0xbc]
mov r8d, dword [rsp + 0xb8]
mov r13d, 1
dec edi
mov dword [rsp + 0xbc], edi
mov rax, qword [rsp + 0x48]
mov r10w, word [rsp + 0x54]
mov eax, dword [rax]
add r11, rax
sub r8d, eax
mov qword [rsp + 0xa0], r11
mov dword [rsp + 0xb8], r8d
test edi, edi
jne 0x1800241b0
jmp 0x180024d1e
mov r11, qword [rsp + 0xa0]
jmp 0x180024d1e
mov r11, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x118]
mov r8d, dword [rsp + 0xc8]
mov rdx, qword [rsp + 0x108]
and byte [r12 + rbp + 0x10105], 0xf9
or byte [r12 + rbp + 0x10105], 1
mov r9d, dword [rsp + 0xb4]
mov rsi, qword [rsp + 0xe0]
inc r8d
inc rdx
mov byte [r12 + rbp + 0x10104], 0
mov rbp, qword [rsp + 0xd0]
mov qword [rsp + 0x108], rdx
mov dword [rsp + 0xc8], r8d
jmp 0x180024080
test r13d, r13d
je 0x180024f0f
mov rdi, qword [rsp + 0x90]
mov r14, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x88]
mov ebx, dword [rdi]
xor r15d, r15d
mov qword [rsp + 0x88], rcx
mov dword [rsp + 0x44], r15d
test r14, r14
je 0x180024df0
lea rax, [rsp + 0x74]
test rax, rax
je 0x180024df0
bt dword [r14 + 0x10], 0x1f
jb 0x180024df0
add rcx, qword [r14 + 0x28]
mov qword [rsp + 0x88], rcx
lea rax, [rcx + rbx]
cmp rax, qword [r14 + 0x18]
jbe 0x180024e0e
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
lea rdx, str.Unable_to_update_VBLK_structure._n
mov rcx, r12
call fcn.180016b80
mov ebp, dword [rsp + 0x50]
mov r13d, 0x400
jmp 0x180024f29
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x88]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x8c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x88], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180024e54
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x180024df0
mov rcx, qword [r14 + 0x30]
mov r8d, ebx
mov rbx, qword [rsp + 0xe8]
lea r9, [rsp + 0x44]
mov rdx, rbx
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180024e8e
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x180024df0
mov eax, dword [rsp + 0x44]
mov ebp, dword [rsp + 0x50]
mov dword [rsp + 0x74], eax
mov eax, dword [rdi]
add ebp, eax
mov dword [rsp + 0x50], ebp
test rbx, rbx
je 0x180024ed2
mov edx, r15d
mov dword [rsp + 0x78], edx
test eax, eax
je 0x180024ed2
mov rcx, rax
nop word [rax + rax]
movzx eax, byte [rbx]
inc rbx
add edx, eax
sub rcx, 1
jne 0x180024ec0
mov dword [rsp + 0x78], edx
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov r13d, 0x400
lea r8, str._.16I64x_.8x
mov ecx, eax
mov eax, dword [rsp + 0x78]
mov rdx, r13
sub rdx, rcx
lea rcx, [rsp + rcx + 0x740]
xor r9d, r9d
mov dword [rsp + 0x20], eax
call fcn.18002e064
jmp 0x180024f29
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x90]
mov ebp, dword [rsp + 0x50]
mov r13d, 0x400
xor r15d, r15d
mov r9, qword [rsp + 0x120]
mov r8d, 2
lea rdx, [r9 + 3]
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x180024f40
mov r9, qword [rsp + 0x48]
mov r8d, 2
lea rdx, [r9 + 3]
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x180024f70
mov r9, qword [rsp + 0x130]
mov r8d, 2
lea rdx, [r9 + 3]
nop dword [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r9]
dec rdx
mov byte [r9], al
mov byte [rdx + 1], cl
inc r9
sub r8, 1
jne 0x180024fa0
mov rcx, qword [r12 + 0x30f]
mov ebx, dword [rdi]
mov dword [rsp + 0x44], r15d
mov qword [rsp + 0x88], rcx
test r14, r14
je 0x18002518a
lea rax, [rsp + 0x74]
test rax, rax
je 0x180025171
bt dword [r14 + 0x10], 0x1f
jb 0x1800251a3
add rcx, qword [r14 + 0x28]
mov qword [rsp + 0x88], rcx
lea rax, [rcx + rbx]
cmp rax, qword [r14 + 0x18]
jbe 0x180025034
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
mov rsi, qword [rsp + 0xc0]
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x88]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x8c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x88], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025094
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
mov rsi, qword [rsp + 0xc0]
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
mov rsi, qword [rsp + 0xc0]
mov rcx, qword [r14 + 0x30]
lea r9, [rsp + 0x44]
mov rdx, rsi
mov r8d, ebx
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x1800250dd
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x74], eax
mov edx, dword [rdi]
lea eax, [rdx + rdx*4]
lea ecx, [rdx + rbp]
add eax, eax
cmp ecx, eax
jae 0x1800251d6
mov r8, rdx
add edx, edx
mov ecx, ebp
add rcx, qword [rsp + 0x68]
add rdx, rsi
call fcn.18002dae0
mov r11d, dword [rdi]
mov ebx, r15d
add ebp, r11d
mov dword [rsp + 0x50], ebp
test r11d, r11d
je 0x18002513e
mov rcx, rsi
mov r8, r11
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
add ebx, eax
sub r8, 1
jne 0x180025130
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8, str._.16I64x_.8x
xor r9d, r9d
mov ecx, eax
mov dword [rsp + 0x20], ebx
sub r13, rcx
lea rcx, [rsp + rcx + 0x740]
mov rdx, r13
call fcn.18002e064
jmp 0x1800251d6
mov rsi, qword [rsp + 0xc0]
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
mov rsi, qword [rsp + 0xc0]
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
mov rsi, qword [rsp + 0xc0]
lea rdx, str.Unable_to_update_VMDB_structure._n
mov rcx, r12
call fcn.180016b80
jmp 0x1800251d6
mov r14, qword [rsp + 0x58]
jmp 0x1800251d6
mov r14, qword [rsp + 0x58]
jmp 0x1800251d6
mov r14, qword [rsp + 0x58]
jmp 0x1800251d6
mov r14, qword [rsp + 0x58]
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov r15d, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov rdi, rbx
imul rdi, rdi, 0xc3
movzx eax, byte [rdi + r12 + 0x10105]
and al, 7
cmp al, bpl
je 0x180025fc4
mov rdx, qword [rdi + r12 + 0x100fb]
test rdx, rdx
jne 0x1800253d4
lea rdx, str.Creating_and_applying_new_MBR_at_0
mov rcx, r12
call fcn.180016b80
mov eax, dword [r13]
lea r11, [rsp + 0x340]
mov qword [rsp + 0x28], r11
or r9d, 0xffffffff
mov r8d, ebx
xor edx, edx
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x1800252c4
lea rax, [rsp + 0x44]
mov ebx, 0x200
lea r9, [rsp + 0x540]
xor edx, edx
mov rcx, r14
mov r8d, ebx
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x1800252c4
xor edi, edi
mov dword [rsp + 0x40], edi
test r14, r14
je 0x1800252c4
lea rax, [rsp + 0x70]
test rax, rax
je 0x1800252c4
bt dword [r14 + 0x10], 0x1f
jb 0x1800252c4
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [r14 + 0x18]
jbe 0x1800252d8
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
lea rdx, str.Failed_to_create_or_apply_new_MBR_at_0
mov rcx, r12
call fcn.180016b80
jmp 0x180025fc4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025327
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
lea rdx, str.Failed_to_create_or_apply_new_MBR_at_0
mov rcx, r12
call fcn.180016b80
jmp 0x180025fc4
mov rcx, qword [r14 + 0x30]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x18002536d
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
lea rdx, str.Failed_to_create_or_apply_new_MBR_at_0
mov rcx, r12
call fcn.180016b80
jmp 0x180025fc4
lea rdx, [rsp + 0x540]
mov rcx, rsi
mov r8, rbx
call fcn.18002dae0
mov r15d, ebx
lea rcx, [rsp + 0x340]
nop dword [rax + rax]
movzx eax, byte [rcx]
inc rcx
add edi, eax
sub rbx, rbp
jne 0x180025390
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
sub edx, eax
mov eax, eax
xor r9d, r9d
lea rcx, [rsp + rax + 0x740]
mov dword [rsp + 0x20], edi
call fcn.18002e064
jmp 0x180025fc4
xor eax, eax
mov ebp, eax
mov rcx, rax
cmp byte [r12 + 0x10103], al
je 0x180025fc4
mov rax, r12
nop dword [rax]
cmp rdx, qword [rax + 0x100e3]
je 0x180025419
inc rcx
inc ebp
mov rax, rcx
imul rax, rax, 0xc3
add rax, r12
cmp byte [rax + 0x10103], r15b
jne 0x1800253f0
jmp 0x180025fc4
cmp ebp, 0xffffffff
je 0x180025fc4
mov esi, ebp
mov r14d, ebp
imul rsi, rsi, 0xc3
cmp qword [rsi + r12 + 0x100fb], r15
jne 0x18002580a
mov rbp, qword [rsi + r12 + 0x100e3]
and byte [rdi + r12 + 0x10105], 0xf9
or byte [rdi + r12 + 0x10105], 1
lea rdx, str.Creating_and_applying_new_EBR_at__I64x
mov r8, rbp
mov rcx, r12
call fcn.180016b80
mov eax, dword [r13]
lea r11, [rsp + 0x340]
mov qword [rsp + 0x28], r11
or r9d, 0xffffffff
mov r8d, ebx
mov rdx, rbp
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x1800257d7
mov r14, qword [rsp + 0x58]
lea rax, [rsp + 0x44]
mov ebx, 0x200
lea r9, [rsp + 0x540]
mov r8d, ebx
mov rdx, rbp
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x1800257dc
xor eax, eax
mov dword [rsp + 0x40], eax
test r14, r14
je 0x1800257dc
lea rax, [rsp + 0x70]
test rax, rax
je 0x1800257dc
bt dword [r14 + 0x10], 0x1f
jb 0x1800257dc
mov rax, qword [r14 + 0x28]
add rax, rbp
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [r14 + 0x18]
jbe 0x18002551b
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
jmp 0x1800257dc
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x18002555b
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x1800257dc
mov rcx, qword [r14 + 0x30]
xor eax, eax
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180025594
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x1800257dc
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x540]
mov r8, rbx
call fcn.18002dae0
xor eax, eax
mov r15d, ebx
lea rcx, [rsp + 0x340]
mov rdx, rbx
mov edi, eax
nop dword [rax + rax]
movzx eax, byte [rcx]
inc rcx
add edi, eax
sub rdx, 1
jne 0x1800255c0
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
sub edx, eax
mov eax, eax
mov r9, rbp
lea rcx, [rsp + rax + 0x740]
mov dword [rsp + 0x20], edi
call fcn.18002e064
movzx ecx, byte [rsi + r12 + 0x10105]
movzx eax, cl
and al, 7
cmp al, 1
je 0x180025fb8
and cl, 0xf9
lea rdx, str.Creating_and_applying_new_EBR_at__I64x
xor r8d, r8d
or cl, 1
mov byte [rsi + r12 + 0x10105], cl
mov rcx, r12
call fcn.180016b80
mov eax, dword [r13]
lea r11, [rsp + 0x340]
or r9d, 0xffffffff
mov qword [rsp + 0x28], r11
xor edx, edx
or r8d, r9d
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x1800256bc
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x540]
mov r8d, ebx
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x1800256bc
xor edi, edi
lea rax, [rsp + 0x70]
mov dword [rsp + 0x40], edi
test rax, rax
je 0x1800256bc
bt dword [r14 + 0x10], 0x1f
jb 0x1800256bc
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [r14 + 0x18]
jbe 0x1800256ea
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
and byte [rsi + r12 + 0x10105], 0xfa
or byte [rsi + r12 + 0x10105], 2
lea rdx, str.Failed_to_create_or_apply_new_MBR_at__I64x
xor r8d, r8d
mov rcx, r12
call fcn.180016b80
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025727
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x1800256bc
mov rcx, qword [r14 + 0x30]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x18002575e
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x1800256bc
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x540]
mov r8, rbx
add rcx, rbx
call fcn.18002dae0
mov esi, 0x400
lea rcx, [rsp + 0x340]
mov r15d, esi
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
add edi, eax
sub rbx, 1
jne 0x180025790
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea r8, str._.16I64x_.8x
xor r9d, r9d
sub esi, eax
mov eax, eax
mov dword [rsp + 0x20], edi
lea rcx, [rsp + rax + 0x740]
mov edx, esi
call fcn.18002e064
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov r14, qword [rsp + 0x58]
and byte [rdi + r12 + 0x10105], 0xfa
or byte [rdi + r12 + 0x10105], 2
lea rdx, str.Failed_to_create_or_apply_new_MBR_at__I64x
mov r8, rbp
mov rcx, r12
call fcn.180016b80
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov rbx, qword [rsi + r12 + 0x100e3]
mov rcx, qword [rsp + 0xa8]
xor r13d, r13d
mov r11, rbx
mov r9, r13
mov r12d, 0xffffffff
sub r11, qword [rsi + rcx + 0x100f3]
mov r8d, r13d
mov r10, r13
mov rsi, rcx
mov rdx, rcx
nop dword [rax]
mov rcx, qword [rdx + 0x100e3]
cmp rcx, r11
jne 0x180025854
mov r9, rcx
mov r12d, r8d
jmp 0x180025880
movzx eax, byte [rdx + 0x10105]
and al, 7
cmp al, 1
jne 0x180025880
cmp rcx, rbx
jae 0x180025880
cmp r9, rcx
jae 0x180025880
movzx eax, byte [rdx + 0x10103]
cmp al, 5
je 0x18002587a
cmp al, 0xf
jne 0x180025880
mov r9, rcx
mov r12d, r8d
inc r10
inc r8d
mov rax, r10
imul rax, rax, 0xc3
lea rdx, [rax + rsi]
cmp byte [rdx + 0x10103], r13b
jne 0x180025840
cmp r12d, 0xffffffff
je 0x180025f9f
or r15d, 0xffffffff
mov r8d, r13d
mov rdx, r13
mov rcx, rsi
cmp qword [rcx + 0x100fb], r9
jne 0x1800258d9
movzx eax, byte [rcx + 0x10105]
and al, 7
cmp al, 1
jne 0x1800258d9
movzx eax, byte [rcx + 0x10103]
cmp al, 5
je 0x1800258f8
cmp al, 0xf
je 0x1800258f8
inc rdx
inc r8d
mov rax, rdx
imul rax, rax, 0xc3
lea rcx, [rax + rsi]
cmp byte [rcx + 0x10103], r13b
jne 0x1800258b4
jmp 0x1800258fb
mov r15d, r8d
movsxd rax, ebp
or ebx, 0xffffffff
mov r8d, r13d
mov rdx, r13
mov rcx, rsi
imul rax, rax, 0xc3
mov r9, qword [rax + rsi + 0x100e3]
nop dword [rax]
cmp qword [rcx + 0x100fb], r9
jne 0x180025938
movzx eax, byte [rcx + 0x10103]
cmp al, 5
je 0x180025957
cmp al, 0xf
je 0x180025957
inc rdx
inc r8d
mov rax, rdx
imul rax, rax, 0xc3
lea rcx, [rax + rsi]
cmp byte [rcx + 0x10103], r13b
jne 0x180025920
jmp 0x18002595a
mov ebx, r8d
imul r14, r14, 0xc3
lea rdx, str.Creating_and_applying_new_EBR_at__I64x
mov rcx, rsi
mov r13, qword [r14 + rsi + 0x100e3]
and byte [rdi + rsi + 0x10105], 0xf9
or byte [rdi + rsi + 0x10105], 1
mov r8, r13
call fcn.180016b80
mov rax, qword [rsp + 0x90]
lea r11, [rsp + 0x340]
mov eax, dword [rax]
mov qword [rsp + 0x28], r11
mov r9d, ebx
mov r8d, r15d
mov rdx, r13
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x180025f62
mov rsi, qword [rsp + 0x58]
lea rax, [rsp + 0x44]
mov ebx, 0x200
lea r9, [rsp + 0x540]
mov r8d, ebx
mov rdx, r13
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x180025f5b
xor eax, eax
mov dword [rsp + 0x40], eax
test rsi, rsi
je 0x180025f4d
lea rax, [rsp + 0x70]
test rax, rax
je 0x180025f46
bt dword [rsi + 0x10], 0x1f
jb 0x180025f54
mov rax, qword [rsi + 0x28]
add rax, r13
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [rsi + 0x18]
jbe 0x180025a45
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, rsi
mov r14, rsi
call fcn.180001970
jmp 0x180025f67
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsi + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025a8a
mov r14, qword [rsp + 0x58]
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x180025f67
mov rcx, qword [rsi + 0x30]
xor eax, eax
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180025ac8
mov r14, qword [rsp + 0x58]
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x180025f67
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x540]
mov r8, rbx
call fcn.18002dae0
xor eax, eax
mov dword [rsp + 0x50], ebx
mov esi, eax
lea rcx, [rsp + 0x340]
mov rdx, rbx
movzx eax, byte [rcx]
inc rcx
add esi, eax
sub rdx, 1
jne 0x180025af0
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
sub edx, eax
mov eax, eax
mov r9, r13
lea rcx, [rsp + rax + 0x740]
mov dword [rsp + 0x20], esi
call fcn.18002e064
mov rcx, qword [rsp + 0xa8]
lea rdx, str.Creating_and_applying_new_EBR_at__I64x
imul r12, r12, 0xc3
and byte [r14 + rcx + 0x10105], 0xf9
or byte [r14 + rcx + 0x10105], 1
mov r13, qword [r12 + rcx + 0x100e3]
mov r8, r13
call fcn.180016b80
mov rax, qword [rsp + 0x90]
mov r8d, ebp
mov eax, dword [rax]
mov rbp, qword [rsp + 0xa8]
lea r11, [rsp + 0x340]
mov qword [rsp + 0x28], r11
mov r9d, r15d
mov rdx, r13
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x180025ef8
mov r14, qword [rsp + 0x58]
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x540]
mov r8d, ebx
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x180025efd
xor esi, esi
lea rax, [rsp + 0x70]
mov dword [rsp + 0x40], esi
test rax, rax
je 0x180025efd
bt dword [r14 + 0x10], 0x1f
jb 0x180025efd
mov rax, qword [r14 + 0x28]
add rax, r13
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [r14 + 0x18]
jbe 0x180025c1a
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
jmp 0x180025efd
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025c5a
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x180025efd
mov rcx, qword [r14 + 0x30]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180025c91
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x180025efd
mov rcx, qword [rsp + 0x68]
lea rdx, [rsp + 0x540]
mov r8, rbx
add rcx, rbx
call fcn.18002dae0
mov r15d, 0x400
lea rcx, [rsp + 0x340]
mov rdx, rbx
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
add esi, eax
sub rdx, 1
jne 0x180025cc0
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, r15d
lea r8, str._.16I64x_.8x
sub edx, eax
mov eax, eax
mov r9, r13
lea rcx, [rsp + rax + 0x740]
mov dword [rsp + 0x20], esi
call fcn.18002e064
movzx ecx, byte [r12 + rbp + 0x10105]
movzx eax, cl
and al, 7
cmp al, 1
je 0x180025fae
and cl, 0xf9
lea rdx, str.Creating_and_applying_new_EBR_at__I64x
xor r8d, r8d
or cl, 1
mov byte [r12 + rbp + 0x10105], cl
mov rcx, rbp
call fcn.180016b80
mov rax, qword [rsp + 0x90]
lea r11, [rsp + 0x340]
mov eax, dword [rax]
or r9d, 0xffffffff
mov qword [rsp + 0x28], r11
or r8d, r9d
xor edx, edx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call fcn.1800237a0
test eax, eax
je 0x180025dc2
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x540]
mov r8d, ebx
xor edx, edx
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.180002c60
test eax, eax
je 0x180025dc2
xor r13d, r13d
lea rax, [rsp + 0x70]
mov dword [rsp + 0x40], r13d
test rax, rax
je 0x180025dc2
bt dword [r14 + 0x10], 0x1f
jb 0x180025dc2
mov rax, qword [r14 + 0x28]
mov qword [rsp + 0x48], rax
add rax, rbx
cmp rax, qword [r14 + 0x18]
jbe 0x180025e03
lea rdx, str.CachedDrive_Read:_Last_byte_to_read_is_out_of_drive._n
mov rcx, r14
call fcn.180001970
and byte [r12 + rbp + 0x10105], 0xfa
or byte [r12 + rbp + 0x10105], 2
and byte [rdi + rbp + 0x10105], 0xfa
or byte [rdi + rbp + 0x10105], 2
lea rdx, str.Failed_to_create_or_apply_new_MBR_at__I64x
xor r8d, r8d
mov rcx, rbp
mov r12, rbp
call fcn.180016b80
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [rsp + 0x48]
mov rcx, qword [r14 + 0x30]
lea r8, [rsp + 0x4c]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x180025e40
lea rdx, str.CachedDrive_Read:_Error_positioning._n
mov rcx, r14
call fcn.180001970
jmp 0x180025dc2
mov rcx, qword [r14 + 0x30]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x340]
mov r8d, ebx
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x180025e77
lea rdx, str.CachedDrive_Read:_WriteFile_error._n
mov rcx, r14
call fcn.180001970
jmp 0x180025dc2
mov rsi, qword [rsp + 0x68]
lea rdx, [rsp + 0x540]
mov r8, rbx
lea rcx, [rsi + 0x400]
call fcn.18002dae0
mov r15d, 0x600
mov edi, r13d
lea rcx, [rsp + 0x340]
nop word [rax + rax]
movzx eax, byte [rcx]
inc rcx
add edi, eax
sub rbx, 1
jne 0x180025eb0
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, 0x400
lea r8, str._.16I64x_.8x
sub edx, eax
mov eax, eax
xor r9d, r9d
lea rcx, [rsp + rax + 0x740]
mov dword [rsp + 0x20], edi
call fcn.18002e064
mov r12, rbp
jmp 0x180025fc4
mov r14, qword [rsp + 0x58]
mov eax, r15d
lea rdx, str.Failed_to_create_or_apply_new_MBR_at__I64x
mov r8, r13
mov rcx, rbp
mov r12, rbp
imul rax, rax, 0xc3
and byte [rax + rbp + 0x10105], 0xfa
or byte [rax + rbp + 0x10105], 2
and byte [rdi + rbp + 0x10105], 0xfa
or byte [rdi + rbp + 0x10105], 2
call fcn.180016b80
mov rsi, qword [rsp + 0x68]
mov r15d, ebx
jmp 0x180025fc4
mov r14, qword [rsp + 0x58]
jmp 0x180025f67
mov r14, qword [rsp + 0x58]
jmp 0x180025f67
mov r14, qword [rsp + 0x58]
jmp 0x180025f67
mov r14, qword [rsp + 0x58]
jmp 0x180025f67
mov r14, qword [rsp + 0x58]
mov r12, qword [rsp + 0xa8]
lea rdx, str.Failed_to_create_or_apply_new_MBR_at__I64x
mov r8, r13
and byte [rdi + r12 + 0x10105], 0xfa
or byte [rdi + r12 + 0x10105], 2
mov rcx, r12
call fcn.180016b80
mov r15d, dword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov r14, qword [rsp + 0x58]
mov r12, rsi
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov rsi, qword [rsp + 0x68]
mov r12, rbp
jmp 0x180025fc4
mov rsi, qword [rsp + 0x68]
jmp 0x180025fc4
mov rsi, qword [rsp + 0x68]
mov rcx, qword [r14 + 0x30]
xor edi, edi
lea rax, [rsp + 0x40]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x70140
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x40], edi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rcx, r14
call fcn.180001b80
mov r13, qword [rsp + 0xba0]
lea ebp, [rdi + 1]
jmp 0x18002601b
lea rdx, str._tUnable_to_open_drive._n
mov rcx, r12
call fcn.180016c70
test r14, r14
je 0x180026072
mov rcx, r14
call fcn.180001b80
mov rcx, qword [r14 + 0x77]
test rcx, rcx
je 0x18002603f
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
xor edx, edx
mov r8d, 0x8000
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x180026072
lea rdx, str._tUnable_to_create_drive._n
mov rcx, r12
call fcn.180016c70
jmp 0x180026072
lea rdx, str._tPhysical_disk_index_error._n
mov rcx, r12
call fcn.180016c70
cmp byte [rsp + 0x740], 0
mov r14, qword [rsp + 0xb50]
je 0x180026113
test rsi, rsi
je 0x180026113
cmp r15d, 0x1400
jae 0x180026113
lea rdx, str._tSaving_sector_backup._n
mov rcx, r12
call fcn.180016c70
lea rdx, [0x1800428dc]
lea rcx, [rsp + 0x740]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x740]
xor r9d, r9d
mov r8d, ebp
mov edx, 0x40000000
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180026113
lea r9, [rsp + 0x74]
mov r8d, r15d
mov rdx, rsi
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, str._tMBR_fix_complete._n
mov rcx, r12
call fcn.180016c70
mov eax, ebp
mov rcx, qword [rsp + 0xb40]
xor rcx, rsp
call fcn.18002d590
add rsp, 0xb58
pop r15
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret