Function at 0x14012fb70
Capabilities:
Manipulate boot configuration
Read .ini file

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x2a0
mov qword [rsp + 0x200], 0xfffffffffffffffe
mov rax, qword [0x1402bd5c0]
xor rax, rsp
mov qword [rsp + 0x298], rax
mov rax, qword [rsp + 0x2c0]
mov rax, qword [rax]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x38]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x18]
shr rax, 0x20
mov byte [rsp + 0x48], al
mov rax, qword [rsp + 0x60]
add rax, 4
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x2b8]
mov ecx, dword [rax + 0x88]
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
cmp rcx, rax
jae 0x14012fc07
mov eax, 0xffffffff
jmp 0x140131bd5
mov rax, qword [rsp + 0x2b8]
cmp dword [rax + 0xc], 0
jl 0x14012fc61
mov rcx, qword [rsp + 0x2b8]
mov rax, qword [rsp + 0x2b8]
mov eax, dword [rax + 0x3b8]
cmp dword [rcx + 0xc], eax
jge 0x14012fc61
movzx edx, byte [rsp + 0x48]
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
cmp rdx, qword [rax + rcx + 0x108]
jb 0x14012fccf
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x58]
movzx r8d, byte [rax]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a9850
mov r11, qword [rsp + 0x78]
mov byte [r11], 0x1f
mov rax, qword [rsp + 0x78]
movzx ecx, byte [rax]
or ecx, 0x60
mov rax, qword [rsp + 0x78]
mov byte [rax], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rax, qword [rsp + 0x60]
movzx ecx, byte [rax + 4]
add ecx, 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
xor eax, eax
jmp 0x140131bd5
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x208], eax
cmp dword [rsp + 0x208], 0xa0
ja case.0x14012fd10.1
movsxd rax, dword [rsp + 0x208]
lea rcx, [0x140000000]
movzx eax, byte [rcx + rax + 0x131c54]
mov eax, dword [rcx + rax*4 + 0x131bf0]
add rax, rcx
jmp rax
lea rax, str.TEST_UNIT_READY_n
mov qword [rsp + 0x20], rax
mov r9d, 0x11e7
lea r8, [0x1402470d0]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 1
test eax, eax
je 0x14012fd79
lea rax, str._for_Vital_Product_Data
mov qword [rsp + 0x210], rax
jmp 0x14012fd88
lea rax, [0x140228296]
mov qword [rsp + 0x210], rax
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x28], rax
lea rax, str.INQUIRY_s_n
mov qword [rsp + 0x20], rax
mov r9d, 0x128b
lea r8, [0x140247118]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
mov rax, qword [rsp + 0x58]
movzx r8d, byte [rax]
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a9850
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 1
test eax, eax
je 0x1401304f3
mov rax, qword [rsp + 0x78]
add rax, 3
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x60]
mov al, byte [rax + 2]
mov byte [rsp + 0x218], al
cmp byte [rsp + 0x218], 0
je 0x140130423
cmp byte [rsp + 0x218], 0x80
je 0x14012fe48
cmp byte [rsp + 0x218], 0x83
je 0x1401301f7
jmp 0x1401304b6
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x14012fe9a
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0x83
mov rdx, qword [rsp + 0x2b0]
add rdx, 0x228
lea r8, [0x140247138]
lea rcx, [rsp + 0x1c8]
call fcn.1400010b0
mov qword [rsp + 0x220], rax
mov rcx, qword [rsp + 0x220]
call fcn.140050200
mov r9, rax
mov r8d, 1
lea rdx, str.UniqueDiskID
lea rcx, [0x140247170]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [rsp + 0x170], eax
lea rcx, [rsp + 0x1c8]
call fcn.140007060
cmp dword [rsp + 0x170], 0
jne 0x14012ff23
mov dword [rsp + 0x228], reloc.OLEAUT32.dll_SafeArrayGetDim
jmp 0x14012ff2e
mov dword [rsp + 0x228], 0x20
movzx eax, word [rsp + 0x228]
mov word [rsp + 0x70], ax
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rsp + 0x70]
mov byte [rcx], al
lea rcx, [0x14023e80c]
call fcn.1400aa950
movzx r8d, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, 4
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
lea r9, [0x14023e85c]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124510
movzx r9d, byte [rsp + 0x48]
mov rax, qword [rsp + 0x2b8]
mov r8d, dword [rax + 0xc]
lea rdx, str.CCBOOT__04x__04x
lea rcx, [rsp + 0x90]
call fcn.1400ae644
cmp dword [rsp + 0x170], 1
jne 0x1401300b9
mov rcx, qword [rsp + 0x2b8]
add rcx, 0xb0
call qword [sym.imp.WS2_32.dll_inet_addr]
movzx r9d, byte [rsp + 0x48]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x2b8]
mov r8d, dword [rax + 0xc]
lea rdx, str.cb0_02x_02x0_08x
lea rcx, [rsp + 0x90]
call fcn.1400ae644
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x1d0]
call fcn.14000f540
mov qword [rsp + 0x230], rax
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x238], rax
mov rcx, qword [rsp + 0x238]
call fcn.14000f5d0
mov rdx, rax
lea rcx, [rsp + 0x178]
call fcn.140004700
nop
lea rcx, [rsp + 0x1d0]
call fcn.140002dd0
lea rcx, [rsp + 0x178]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x1d8]
call fcn.140002d40
mov qword [rsp + 0x240], rax
mov rax, qword [rsp + 0x240]
mov qword [rsp + 0x248], rax
mov rcx, qword [rsp + 0x248]
call fcn.140002df0
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.1400acae0
nop
lea rcx, [rsp + 0x1d8]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x178]
call fcn.140007060
cmp dword [rsp + 0x170], 2
jne 0x1401301c2
movzx eax, byte [rsp + 0x48]
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x2b8]
mov r9d, dword [rax + 0xc]
mov r8, qword [rsp + 0x2b8]
mov r8, qword [r8 + 0x58]
lea rdx, [0x1402471b0]
lea rcx, [rsp + 0x90]
call fcn.1400ae644
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x1e0]
call fcn.14000f540
mov qword [rsp + 0x250], rax
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0x258], rax
mov rcx, qword [rsp + 0x258]
call fcn.14000f5d0
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.140004700
nop
lea rcx, [rsp + 0x1e0]
call fcn.140002dd0
lea rcx, [rsp + 0x180]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x1e8]
call fcn.140002d40
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x268], rax
mov rcx, qword [rsp + 0x268]
call fcn.140002df0
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.1400acae0
nop
lea rcx, [rsp + 0x1e8]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x180]
call fcn.140007060
movzx r8d, word [rsp + 0x70]
mov rcx, qword [rsp + 0x78]
add rcx, 4
lea rdx, [rsp + 0x90]
call fcn.1400aa500
mov r11, qword [rsp + 0x68]
movzx ecx, byte [r11]
add ecx, 4
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
jmp 0x1401304ee
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x140130249
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0x83
mov rax, qword [rsp + 0x78]
mov byte [rax + 3], 0x1c
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 1
mov rax, qword [rsp + 0x78]
mov byte [rax + 5], 1
mov rax, qword [rsp + 0x78]
mov byte [rax + 7], reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, qword [rsp + 0x78]
add rcx, 8
mov r8d, 8
mov edx, 0x20
call fcn.1400a9850
mov rcx, qword [rsp + 0x2b0]
add rcx, 0x338
call fcn.1400aa950
cmp rax, 8
jae 0x1401302c7
mov rcx, qword [rsp + 0x2b0]
add rcx, 0x338
call fcn.1400aa950
mov qword [rsp + 0x270], rax
jmp 0x1401302d3
mov qword [rsp + 0x270], 8
mov rdx, qword [rsp + 0x2b0]
add rdx, 0x338
mov rcx, qword [rsp + 0x78]
add rcx, 8
mov r8, qword [rsp + 0x270]
call fcn.1400aa500
movzx r11d, byte [rsp + 0x48]
mov dword [rsp + 0x20], r11d
mov rax, qword [rsp + 0x2b8]
mov r9d, dword [rax + 0xc]
mov r8, qword [rsp + 0x2b8]
mov r8, qword [r8 + 0x58]
lea rdx, str._s_08d_08d
lea rcx, [rsp + 0x100]
call fcn.1400ae644
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x1f0]
call fcn.14000f540
mov qword [rsp + 0x278], rax
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x280], rax
mov rcx, qword [rsp + 0x280]
call fcn.14000f5d0
mov rdx, rax
lea rcx, [rsp + 0x188]
call fcn.140004700
nop
lea rcx, [rsp + 0x1f0]
call fcn.140002dd0
lea rcx, [rsp + 0x188]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x1f8]
call fcn.140002d40
mov qword [rsp + 0x288], rax
mov rax, qword [rsp + 0x288]
mov qword [rsp + 0x290], rax
mov rcx, qword [rsp + 0x290]
call fcn.140002df0
mov rdx, rax
lea rcx, [rsp + 0x100]
call fcn.1400acae0
nop
lea rcx, [rsp + 0x1f8]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x188]
call fcn.140007060
mov rcx, qword [rsp + 0x78]
add rcx, 0x10
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea rdx, [rsp + 0x100]
call fcn.1400aa500
mov r11, qword [rsp + 0x40]
mov dword [r11 + 0x14], 0x20
jmp 0x1401304ee
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x140130475
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], 0
mov rax, qword [rsp + 0x68]
mov byte [rax], 3
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 0
mov rax, qword [rsp + 0x78]
mov byte [rax + 5], 0x80
mov rax, qword [rsp + 0x78]
mov byte [rax + 6], 0x83
mov rax, qword [rsp + 0x68]
movzx ecx, byte [rax]
add ecx, 4
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
jmp 0x1401304ee
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
mov dword [rsp + 0x20], eax
lea r9, str.Unsupported_INQUIRY_VPD_page__x_n
mov r8d, 0x12df
lea rdx, [0x1402471f8]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
jmp 0x140130661
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
cmp qword [rax + rcx + 0x10], 0x800
jne 0x140130545
mov rax, qword [rsp + 0x78]
mov byte [rax], 5
mov rax, qword [rsp + 0x78]
mov byte [rax + 2], 3
mov rax, qword [rsp + 0x78]
mov byte [rax + 4], 0x20
mov rax, qword [rsp + 0x78]
movzx ecx, byte [rax + 7]
or ecx, 0x60
mov rax, qword [rsp + 0x78]
mov byte [rax + 7], cl
mov rcx, qword [rsp + 0x2b0]
add rcx, 0x338
call fcn.1400aa950
mov r9, qword [rsp + 0x2b0]
add r9, 0x338
mov rdx, qword [rsp + 0x78]
add rdx, 8
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov r8d, 8
mov rcx, qword [rsp + 0x2b0]
call fcn.140124510
mov rcx, qword [rsp + 0x2b0]
add rcx, 0x238
call fcn.1400aa950
mov r9, qword [rsp + 0x2b0]
add r9, 0x238
mov rdx, qword [rsp + 0x78]
add rdx, 0x10
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, qword [rsp + 0x2b0]
call fcn.140124510
xor r9d, r9d
lea r8, [0x14023e8cc]
mov edx, 8
lea rcx, [rsp + 0x190]
call fcn.1400af078
lea rcx, [rsp + 0x190]
call fcn.1400aa950
mov rdx, qword [rsp + 0x78]
add rdx, 0x20
mov byte [rsp + 0x28], 0x20
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x190]
mov r8d, 4
mov rcx, qword [rsp + 0x2b0]
call fcn.140124510
mov r11, qword [rsp + 0x40]
mov dword [r11 + 0x14], 0x24
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax + 0x74]
test eax, eax
jne 0x14013067a
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x140131b8f
lea rax, str.STOP_START_UNIT_n
mov qword [rsp + 0x20], rax
mov r9d, 0x130c
lea r8, [0x140247230]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, [0x140247250]
mov qword [rsp + 0x20], rax
mov r9d, 0x1312
lea r8, [0x140247260]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
mov qword [rsp + 0x198], rax
mov eax, 0xffffffff
cmp qword [rsp + 0x198], rax
jbe 0x1401307a9
mov ecx, 0xffffffff
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax], r11d
jmp 0x1401307c8
mov rax, qword [rsp + 0x198]
sub rax, 1
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax], r11d
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 4], r11d
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 8
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 8
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
shl eax, 3
sar eax, 3
cmp eax, 0x10
jne 0x140130a40
lea rax, str.READ_CAPACITY_n
mov qword [rsp + 0x20], rax
mov r9d, 0x1329
lea r8, [0x140247290]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov r8d, 0x20
xor edx, edx
mov rcx, qword [rsp + 0x78]
call fcn.1400a9850
mov r11, qword [rsp + 0x2b8]
movsxd rax, dword [r11 + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
sub rax, 1
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
sub rax, 1
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x78]
mov qword [rax], rcx
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x78]
mov dword [rax + 8], r11d
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 0x20
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0x20
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140130a49
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 2
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
call qword [sym.imp.WS2_32.dll_ntohl]
and eax, 0x1fffff
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
test eax, eax
jne 0x140130a87
mov eax, 0x100
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.WRITE_6_lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x133d
lea r8, [0x1402472d0]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
movzx ecx, word [rsp + 0x70]
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012f790
test eax, eax
je 0x140130b2b
lea r9, [0x1402472f0]
mov r8d, 0x1340
lea rdx, [0x140247308]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x2b0]
call fcn.1401246f0
movzx ecx, word [rsp + 0x70]
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012f790
test eax, eax
je 0x140130bc0
lea r9, [0x140247328]
mov r8d, 0x134c
lea rdx, [0x140247340]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
mov qword [rsp + 0x1a0], 0
mov dword [rsp + 0x1a8], 0
mov rdx, qword [rsp + 0x60]
add rdx, 2
mov r8d, 8
lea rcx, [rsp + 0x1a0]
call fcn.1400aa500
mov rax, qword [rsp + 0x1a0]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x1a0]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
mov rax, rbx
or rax, rcx
mov qword [rsp + 0x1a0], rax
mov rdx, qword [rsp + 0x60]
add rdx, 0xa
mov r8d, 4
lea rcx, [rsp + 0x1a8]
call fcn.1400aa500
mov ecx, dword [rsp + 0x1a8]
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rsp + 0x1a8], eax
mov eax, dword [rsp + 0x1a8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x20], rax
movzx r9d, byte [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012f790
test eax, eax
je 0x140130cde
lea r9, str.disk_write___failed_n
mov r8d, 0x135d
lea rdx, [0x140247378]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x2b0]
call fcn.1401246f0
movzx ecx, word [rsp + 0x70]
mov r9d, dword [rsp + 0x80]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012d740
test eax, eax
je 0x140130d72
lea r9, [0x140247398]
mov r8d, 0x136b
lea rdx, [0x1402473b0]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x140131b8f
mov qword [rsp + 0x1b0], 0
mov dword [rsp + 0x1b8], 0
mov rdx, qword [rsp + 0x60]
add rdx, 2
mov r8d, 8
lea rcx, [rsp + 0x1b0]
call fcn.1400aa500
mov rax, qword [rsp + 0x1b0]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x1b0]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ecx, eax
mov rax, rbx
or rax, rcx
mov qword [rsp + 0x1b0], rax
mov rdx, qword [rsp + 0x60]
add rdx, 0xa
mov r8d, 4
lea rcx, [rsp + 0x1b8]
call fcn.1400aa500
mov ecx, dword [rsp + 0x1b8]
call qword [sym.imp.WS2_32.dll_ntohl]
mov dword [rsp + 0x1b8], eax
mov ecx, dword [rsp + 0x1b8]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r9, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012d740
test eax, eax
je 0x140130e8e
lea r9, [0x1402473d0]
mov r8d, 0x137b
lea rdx, [0x1402473e8]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
call qword [sym.imp.WS2_32.dll_ntohl]
and eax, 0x1fffff
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax]
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
test eax, eax
jne 0x140130ed8
mov eax, 0x100
mov word [rsp + 0x70], ax
movzx eax, word [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.READ_6_lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x1389
lea r8, [0x140247428]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
movzx ecx, word [rsp + 0x70]
mov r9d, dword [rsp + 0x80]
movzx eax, byte [rsp + 0x48]
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], rcx
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x2b8]
mov rcx, qword [rsp + 0x2b0]
call fcn.14012d740
test eax, eax
je 0x140130f7b
lea r9, [0x140247448]
mov r8d, 0x138c
lea rdx, [0x140247460]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
jmp 0x140131b8f
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x140130fc0
mov eax, 4
mov word [rsp + 0x70], ax
jmp 0x140130fca
mov eax, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov word [rsp + 0x70], ax
movzx r8d, word [rsp + 0x70]
xor edx, edx
mov rcx, qword [rsp + 0x50]
call fcn.1400a9850
mov r11, qword [rsp + 0x50]
mov byte [r11 + 1], 0
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x140131001
mov rax, qword [rsp + 0x50]
mov byte [rax + 3], 0
jmp 0x14013100a
mov rax, qword [rsp + 0x50]
mov byte [rax + 3], 8
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
jne 0x14013118c
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], r11d
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shr rax, 0x20
test rax, rax
je 0x14013113f
mov rax, qword [rsp + 0x50]
mov dword [rax + 4], 0xffffffff
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov ecx, dword [rax + rcx + 0x10]
call qword [sym.imp.WS2_32.dll_htonl]
mov r11d, eax
mov rax, qword [rsp + 0x50]
mov dword [rax + 8], r11d
mov rax, qword [rsp + 0x2b0]
cmp dword [rax + 0x234], 0
je 0x1401311de
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0x3f
cmp eax, 0x3f
jne 0x1401311de
movzx eax, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, rax
mov r8d, 1
mov rcx, qword [rsp + 0x2b0]
call fcn.140124380
mov r11d, eax
movzx eax, word [rsp + 0x70]
add eax, r11d
mov word [rsp + 0x70], ax
movzx ecx, word [rsp + 0x70]
sub ecx, 1
mov rax, qword [rsp + 0x50]
mov byte [rax], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
movzx ecx, word [rsp + 0x70]
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x14013126e
mov eax, 8
mov word [rsp + 0x70], ax
jmp 0x140131278
mov eax, reloc.OLEAUT32.dll_SafeArrayGetElement
mov word [rsp + 0x70], ax
movzx r8d, word [rsp + 0x70]
xor edx, edx
mov rcx, qword [rsp + 0x50]
call fcn.1400a9850
mov r11, qword [rsp + 0x50]
mov byte [r11], 0
mov rax, qword [rsp + 0x50]
mov byte [rax + 2], 0
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
je 0x1401312b7
mov rax, qword [rsp + 0x50]
mov byte [rax + 7], 0
jmp 0x1401312c0
mov rax, qword [rsp + 0x50]
mov byte [rax + 7], reloc.OLEAUT32.dll_SafeArrayGetDim
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 1]
and eax, 8
test eax, eax
jne 0x140131539
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rax + 8], rcx
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov r9, qword [rsp + 0x2b8]
mov r9, qword [r9 + 0x3c0]
mov r9, qword [r9 + rax + 0x160]
movzx r10d, byte [rsp + 0x48]
imul r10, r10, 0x38
mov r9, qword [r9 + 8]
mov rax, qword [rsp + 0x2b8]
movsxd rax, dword [rax + 0xc]
imul rax, rax, 0x270
mov rcx, qword [rsp + 0x2b8]
mov rcx, qword [rcx + 0x3c0]
mov rcx, qword [rcx + rax + 0x160]
movzx r8d, byte [rsp + 0x48]
imul r8, r8, 0x38
mov rcx, qword [rcx + 8]
xor edx, edx
mov rax, qword [r9 + r10 + 8]
div qword [rcx + r8 + 0x10]
cmp rax, 0xffffffffffffffff
jbe 0x14013148e
mov rax, qword [rsp + 0x50]
mov qword [rax + 8], 0xffffffffffffffff
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov rax, qword [rax + rcx + 0x10]
shl rax, 0x20
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov ebx, eax
shl rbx, 0x20
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
mov rax, qword [rax + rcx + 0x10]
shr rax, 0x20
mov ecx, eax
call qword [sym.imp.WS2_32.dll_ntohl]
mov eax, eax
mov rcx, rbx
or rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x10], rcx
mov rax, qword [rsp + 0x2b0]
cmp dword [rax + 0x234], 0
je 0x14013158b
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0x3f
cmp eax, 0x3f
jne 0x14013158b
movzx eax, word [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdx, rax
mov r8d, 1
mov rcx, qword [rsp + 0x2b0]
call fcn.140124380
mov r11d, eax
movzx eax, word [rsp + 0x70]
add eax, r11d
mov word [rsp + 0x70], ax
movzx ecx, word [rsp + 0x70]
sub ecx, 2
mov rax, qword [rsp + 0x50]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
movzx ecx, word [rsp + 0x70]
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], ecx
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax + 2]
and eax, 0xf
mov dword [rsp + 0x1c0], eax
mov dword [rsp + 0x1bc], 2
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x58]
mov qword [rsp + 0x78], rax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], reloc.OLEAUT32.dll_SafeArrayLock
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 1
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
movsxd rcx, dword [rsp + 0x1bc]
mov rax, qword [rsp + 0x78]
mov byte [rax + rcx], 0
mov eax, dword [rsp + 0x1bc]
add eax, 1
mov dword [rsp + 0x1bc], eax
mov rax, qword [rsp + 0x78]
mov byte [rax], 0
mov ecx, dword [rsp + 0x1bc]
sub ecx, 2
mov rax, qword [rsp + 0x78]
mov byte [rax + 1], cl
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rcx, qword [rsp + 0x40]
mov eax, dword [rsp + 0x1bc]
mov dword [rcx + 0x14], eax
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov r9, qword [rsp + 0x60]
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x2b0]
call fcn.1401246f0
movzx r11d, word [rsp + 0x70]
mov dword [rsp + 0x30], r11d
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x28], eax
lea rax, str.SYNC_CACHE__lba__u__len__u_blocks__n
mov qword [rsp + 0x20], rax
mov r9d, 0x148a
lea r8, [0x1402474a8]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
movzx r8d, word [rsp + 0x70]
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx ecx, byte [rsp + 0x48]
imul rcx, rcx, 0x38
mov rax, qword [rax + 8]
imul r8, qword [rax + rcx + 0x10]
mov r9d, dword [rsp + 0x80]
mov rax, qword [rsp + 0x2b8]
movsxd rcx, dword [rax + 0xc]
imul rcx, rcx, 0x270
mov rax, qword [rsp + 0x2b8]
mov rax, qword [rax + 0x3c0]
mov rax, qword [rax + rcx + 0x160]
movzx edx, byte [rsp + 0x48]
imul rdx, rdx, 0x38
add rdx, qword [rax + 8]
mov qword [rsp + 0x20], r8
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
mov rcx, qword [rsp + 0x2b0]
call fcn.14012c3e0
test eax, eax
jge 0x1401318be
lea r9, str.disk_read___failed_n
mov r8d, 0x148c
lea rdx, [0x1402474e0]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
jmp 0x1401318d3
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, str.LOG_SENSE_n
mov qword [rsp + 0x20], rax
mov r9d, 0x1495
lea r8, [0x140247510]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, str.PERSISTENT_RESERVE_IN_n
mov qword [rsp + 0x20], rax
mov r9d, 0x149b
lea r8, [0x140247548]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x60]
movzx eax, byte [r11 + 1]
and eax, 0x1f
mov r8, qword [rsp + 0x40]
mov r8, qword [r8 + 0x58]
movzx edx, al
mov rcx, qword [rsp + 0x2b0]
call fcn.140125070
mov r11d, eax
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], r11d
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x40]
mov byte [rax + 0x74], 2
jmp 0x140131b8f
lea rax, str.RESERVE_6_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14ac
lea r8, [0x140247578]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, str.RELEASE_6_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14b2
lea r8, [0x1402475a8]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, str.RESERVE_10_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14b8
lea r8, [0x1402475d8]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
lea rax, str.RELEASE_10_n
mov qword [rsp + 0x20], rax
mov r9d, 0x14be
lea r8, [0x140247608]
mov edx, 0x200
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 0
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x14], 0
jmp 0x140131b8f
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x20], eax
lea r9, str.UNKNOWN_OPCODE__x_n
mov r8d, 0x14c4
lea rdx, [0x140247640]
mov rcx, qword [rsp + 0x2b0]
call fcn.140124d20
mov r11, qword [rsp + 0x40]
mov byte [r11 + 0x74], 2
mov rax, qword [rsp + 0x40]
movzx ecx, byte [rax + 0x74]
mov rax, qword [rsp + 0x60]
movzx eax, byte [rax]
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
lea rax, str.SCSI_op__x:_done__status__x__n
mov qword [rsp + 0x20], rax
mov r9d, 0x14ca
lea r8, [0x140247680]
mov edx, 0x100
mov rcx, qword [rsp + 0x2b0]
call fcn.140124e30
xor eax, eax
mov rcx, qword [rsp + 0x298]
xor rcx, rsp
call fcn.1400a9820
add rsp, 0x2a0
pop rbx
ret