Function at 0x140104900
Capabilities:
Check if file exists
Link many functions at runtime

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0xa10
mov qword [rsp + 0x8d0], 0xfffffffffffffffe
mov rax, qword [0x1402bd5c0]
xor rax, rsp
mov qword [rsp + 0xa00], rax
mov rcx, qword [rsp + 0xa20]
call fcn.1400fabb0
mov dword [rsp + 0x40], eax
mov r8, qword [rsp + 0xa20]
lea rdx, str.Open_disk__s
xor ecx, ecx
call fcn.1400de020
cmp dword [rsp + 0x40], 0
jne 0x1401049cb
lea rdx, str._ERROR__Image__s_unknown_format
lea rcx, [rsp + 0x7c8]
call fcn.140002050
mov qword [rsp + 0x8d8], rax
mov rax, qword [rsp + 0x8d8]
mov qword [rsp + 0x8e0], rax
mov rcx, qword [rsp + 0x8e0]
call fcn.140050200
mov r8, qword [rsp + 0xa20]
mov rdx, rax
mov ecx, 1
call fcn.1400de020
nop
lea rcx, [rsp + 0x7c8]
call fcn.140007060
xor eax, eax
jmp 0x1401068a1
cmp dword [rsp + 0x40], 0xffffffff
jne 0x140104a35
lea rdx, [0x14022ed40]
lea rcx, [rsp + 0x7d0]
call fcn.140002050
mov qword [rsp + 0x8e8], rax
mov rax, qword [rsp + 0x8e8]
mov qword [rsp + 0x8f0], rax
mov rcx, qword [rsp + 0x8f0]
call fcn.140050200
mov r8, qword [rsp + 0xa20]
mov rdx, rax
mov ecx, 1
call fcn.1400de020
nop
lea rcx, [rsp + 0x7d0]
call fcn.140007060
xor eax, eax
jmp 0x1401068a1
cmp dword [rsp + 0xa48], 0
je 0x1401051a0
cmp dword [rsp + 0x40], 5
je 0x140104a5c
cmp dword [rsp + 0x40], 4
je 0x140104a5c
cmp dword [rsp + 0x40], 1
jne 0x1401051a0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
jmp 0x140104a79
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
movsxd rdi, dword [rsp + 0x54]
lea rcx, [0x1403c7f28]
call fcn.14001d480
cmp rdi, rax
jae 0x140104ae3
movsxd rdx, dword [rsp + 0x54]
lea rcx, [0x1403c7f28]
call fcn.140007280
mov rcx, qword [rax]
add rcx, 0xc
mov rdx, qword [rsp + 0xa20]
call fcn.1400ac364
test eax, eax
jne 0x140104ae1
mov dword [rsp + 0x50], 1
movsxd rdx, dword [rsp + 0x54]
lea rcx, [0x1403c7f28]
call fcn.140007280
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rax]
mov qword [rcx], rax
jmp 0x140104ae3
jmp 0x140104a6e
cmp dword [rsp + 0x50], 0
je 0x1401051a0
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
mov ecx, dword [rax + 0x49c]
add ecx, 1
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
mov dword [rax + 0x49c], ecx
mov r8, qword [rsp + 0xa20]
lea rdx, str.Disk__s_already_be_open_before
xor ecx, ecx
call fcn.1400de020
cmp dword [rsp + 0xa30], 0
jne 0x140105180
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax + 0x4a0], 0
jne 0x140105180
mov r8, qword [rsp + 0xa20]
lea rdx, str.Change_disk__s_to_writable_mode
xor ecx, ecx
call fcn.1400de020
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 1
jne 0x140104def
lea rcx, [0x14022ee00]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
jne 0x140104ba0
xor eax, eax
jmp 0x1401068a1
lea rdx, [0x14022ec48]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x78], rax
lea rdx, [0x14022ee20]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x88], rax
lea rdx, str.VixDiskLib_Connect
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x90], rax
lea rdx, [0x14022ee48]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x70], rax
lea rdx, [0x14022ee60]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x40c]
call qword [rsp + 0x78]
mov rdx, qword [rsp + 0xa28]
mov rdx, qword [rdx]
add rdx, 0xc
lea rcx, [rsp + 0x7e0]
call fcn.1400faef0
mov qword [rsp + 0x8f8], rax
mov rax, qword [rsp + 0x8f8]
mov qword [rsp + 0x900], rax
mov rcx, qword [rsp + 0x900]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x7d8]
call fcn.140002d40
mov qword [rsp + 0x908], rax
mov rax, qword [rsp + 0x908]
mov qword [rsp + 0x910], rax
mov rcx, qword [rsp + 0x910]
call fcn.140002df0
lea r9, [rsp + 0x68]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [0x1403c6168]
call qword [rsp + 0x88]
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x7d8]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x7e0]
call fcn.140007060
mov rax, qword [rsp + 0x60]
and rax, 0xffff
test rax, rax
je 0x140104dbb
xor edx, edx
mov rcx, qword [rsp + 0x60]
call qword [rsp + reloc.WS2_32.dll_WSASetLastError]
mov qword [rsp + 0x98], rax
mov rdx, qword [rsp + 0x98]
lea rcx, [rsp + 0x7e8]
call fcn.14000f540
mov qword [rsp + 0x918], rax
mov rax, qword [rsp + 0x918]
mov qword [rsp + 0x920], rax
mov rcx, qword [rsp + 0x920]
call fcn.14000f5d0
mov r9, rax
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14022ee80]
mov ecx, 1
call fcn.1400de020
nop
lea rcx, [rsp + 0x7e8]
call fcn.140002dd0
mov rcx, qword [rsp + 0x98]
call qword [rsp + 0x58]
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x1401068a1
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rax, qword [rsp + 0x68]
mov qword [rcx + 0x40c], rax
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x140105146
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp qword [rax + 0x40c], 0
je 0x140104e47
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp qword [rax + 0x40c], 0xffffffffffffffff
je 0x140104e47
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
mov qword [rax + 0x40c], 0xffffffffffffffff
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
call fcn.1400fc690
test eax, eax
jne 0x140104f26
xor r9d, r9d
mov r8d, 3
mov edx, 0x80000000
mov rcx, qword [rsp + 0xa20]
call fcn.1400fba20
mov rdx, rax
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
mov qword [rax + 0x40c], rdx
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 5
jne 0x140104f06
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x90083
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [rsp + 0xa4], eax
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14022eed0]
mov ecx, 1
call fcn.1400de020
xor eax, eax
jmp 0x1401068a1
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 5
jne 0x140104f9d
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0xac], 0
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x90083
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [rsp + 0xac], eax
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 5
je 0x140105146
xor r9d, r9d
mov r8d, 3
mov edx, 0xc0000000
mov rcx, qword [rsp + 0xa20]
call fcn.1400fba20
mov qword [rsp + 0xb0], rax
cmp qword [rsp + 0xb0], 0xffffffffffffffff
jne 0x14010512c
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR__open__s_failed
mov ecx, 1
call fcn.1400de020
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 4
jne 0x140105125
mov dword [rsp + 0xb8], 0
mov dword [rsp + 0xbc], 0
jmp 0x140105039
mov eax, dword [rsp + 0xbc]
add eax, 1
mov dword [rsp + 0xbc], eax
cmp dword [rsp + 0xbc], 0x10
jge 0x140105125
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
movsxd rax, dword [rsp + 0xbc]
cmp qword [rcx + rax*8 + 0x414], 0xffffffffffffffff
jne 0x14010506a
jmp 0x140105125
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
movsxd rax, dword [rsp + 0xbc]
cmp qword [rcx + rax*8 + 0x414], 0
jne 0x14010508d
jmp 0x140105125
mov rdi, qword [rsp + 0xa28]
mov rdi, qword [rdi]
movsxd rcx, dword [rsp + 0xbc]
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x90020
mov rcx, qword [rdi + rcx*8 + 0x414]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
movsxd rcx, dword [rsp + 0xbc]
mov rcx, qword [rax + rcx*8 + 0x414]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
movsxd rax, dword [rsp + 0xbc]
mov qword [rcx + rax*8 + 0x414], 0xffffffffffffffff
jmp 0x140105028
xor eax, eax
jmp 0x1401068a1
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov rax, qword [rsp + 0xb0]
mov qword [rcx + 0x40c], rax
cmp dword [rsp + 0xa30], 0
jne 0x14010515d
mov dword [rsp + 0x928], 1
jmp 0x140105168
mov dword [rsp + 0x928], 0
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov eax, dword [rsp + 0x928]
mov dword [rcx + 0x4a0], eax
mov r8, qword [rsp + 0xa20]
lea rdx, str.Open_disk__s_return
xor ecx, ecx
call fcn.1400de020
mov eax, 1
jmp 0x1401068a1
mov qword [rsp + 0x48], 0
mov ecx, 0x1544
call fcn.1400fa550
mov qword [rsp + 0x48], rax
mov r8d, 0x1544
xor edx, edx
mov rcx, qword [rsp + 0x48]
call fcn.1400a9850
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov ecx, 0x28
call fcn.140073244
mov qword [rsp + 0x7f0], rax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x7f0]
mov qword [rcx + 0x4ac], rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
cmp dword [rsp + 0xa30], 0
jne 0x140105229
mov dword [rsp + 0x92c], 1
jmp 0x140105234
mov dword [rsp + 0x92c], 0
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x92c]
mov dword [rcx + 0x4a0], eax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x49c]
add ecx, 1
mov rax, qword [rsp + 0x48]
mov dword [rax + 0x49c], ecx
cmp dword [rsp + 0x40], 3
jne 0x1401052d8
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x40]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x48]
add rcx, 0xc
mov r8d, 0x200
mov rdx, qword [rsp + 0xa20]
call fcn.1400aa9f8
mov rcx, qword [rsp + 0x48]
call fcn.1400fa5c0
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 4], rdx
cmp dword [rsp + 0xa48], 0
je 0x1401052be
lea rdx, [rsp + 0x48]
lea rcx, [0x1403c7f28]
call fcn.140020de0
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov eax, 1
jmp 0x1401068a1
cmp dword [rsp + 0x40], 1
jne 0x14010568a
lea rcx, [0x14022ef78]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0xe0], 0
jne 0x14010530a
xor eax, eax
jmp 0x1401068a1
lea rdx, [0x14022ef98]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xe8], rax
lea rdx, [0x14022efa8]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xd8], rax
lea rdx, [0x14022efc0]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xc0], rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x140105438
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x800]
call fcn.1400faef0
mov qword [rsp + 0x930], rax
mov rax, qword [rsp + 0x930]
mov qword [rsp + 0x938], rax
mov rcx, qword [rsp + 0x938]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x7f8]
call fcn.140002d40
mov qword [rsp + 0x940], rax
mov rax, qword [rsp + 0x940]
mov qword [rsp + 0x948], rax
mov rcx, qword [rsp + 0x948]
call fcn.140002df0
lea r9, [rsp + 0xd0]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [0x1403c6168]
call qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x7f8]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x800]
call fcn.140007060
jmp 0x1401054e9
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x810]
call fcn.1400faef0
mov qword [rsp + 0x950], rax
mov rax, qword [rsp + 0x950]
mov qword [rsp + 0x958], rax
mov rcx, qword [rsp + 0x958]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x808]
call fcn.140002d40
mov qword [rsp + 0x960], rax
mov rax, qword [rsp + 0x960]
mov qword [rsp + 0x968], rax
mov rcx, qword [rsp + 0x968]
call fcn.140002df0
lea r9, [rsp + 0xd0]
mov r8d, 4
mov rdx, rax
mov rcx, qword [0x1403c6168]
call qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x808]
call fcn.140002dd0
nop
lea rcx, [rsp + 0x810]
call fcn.140007060
mov rax, qword [rsp + 0xc8]
and rax, 0xffff
test rax, rax
je 0x1401055f2
xor edx, edx
mov rcx, qword [rsp + 0xc8]
call qword [rsp + 0xd8]
mov qword [rsp + 0xf0], rax
mov rdx, qword [rsp + 0xf0]
lea rcx, [rsp + 0x818]
call fcn.14000f540
mov qword [rsp + 0x970], rax
mov rax, qword [rsp + 0x970]
mov qword [rsp + 0x978], rax
mov rcx, qword [rsp + 0x978]
call fcn.14000f5d0
mov r9, rax
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14022efe0]
mov ecx, 1
call fcn.1400de020
nop
lea rcx, [rsp + 0x818]
call fcn.140002dd0
mov rcx, qword [rsp + 0xf0]
call qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x820], rax
mov rcx, qword [rsp + 0x820]
call fcn.140073288
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rdx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x40]
mov dword [rdx], eax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0xd0]
mov qword [rcx + 0x40c], rax
mov rcx, qword [rsp + 0x48]
call fcn.1400fa5c0
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 4], rdx
mov rcx, qword [rsp + 0x48]
add rcx, 0xc
mov r8d, 0x200
mov rdx, qword [rsp + 0xa20]
call fcn.1400aa9f8
cmp dword [rsp + 0xa48], 0
je 0x140105670
lea rdx, [rsp + 0x48]
lea rcx, [0x1403c7f28]
call fcn.140020de0
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov eax, 1
jmp 0x1401068a1
mov rcx, qword [rsp + 0x48]
mov eax, dword [rsp + 0x40]
mov dword [rcx], eax
mov rcx, qword [rsp + 0x48]
add rcx, 0xc
mov r8d, 0x200
mov rdx, qword [rsp + 0xa20]
call fcn.1400aa9f8
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x14010573a
mov rcx, qword [rsp + 0x48]
call fcn.1400fc690
test eax, eax
jne 0x14010573a
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14022f030]
mov ecx, 1
call fcn.1400de020
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x828], rax
mov rcx, qword [rsp + 0x828]
call fcn.140073288
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x140105753
cmp dword [rsp + 0x40], 5
je 0x140105990
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x14010576e
mov dword [rsp + 0x980], 0xc0000000
jmp 0x140105779
mov dword [rsp + 0x980], 0x80000000
xor r9d, r9d
mov r8d, 3
mov edx, dword [rsp + 0x980]
mov rcx, qword [rsp + 0xa20]
call fcn.1400fba20
mov qword [rsp + 0xf8], rax
cmp qword [rsp + 0xf8], 0xffffffffffffffff
jne 0x14010592e
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR__Open__s_failed
mov ecx, 1
call fcn.1400de020
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x1401058da
cmp dword [rsp + 0x40], 4
jne 0x1401058da
mov dword [rsp + 0x100], 0
mov dword [rsp + 0x104], 0
jmp 0x14010580c
mov eax, dword [rsp + 0x104]
add eax, 1
mov dword [rsp + 0x104], eax
cmp dword [rsp + 0x104], 0x10
jge 0x1401058da
movsxd rcx, dword [rsp + 0x104]
mov rax, qword [rsp + 0x48]
cmp qword [rax + rcx*8 + 0x414], 0xffffffffffffffff
jne 0x140105837
jmp 0x1401058da
movsxd rcx, dword [rsp + 0x104]
mov rax, qword [rsp + 0x48]
cmp qword [rax + rcx*8 + 0x414], 0
jne 0x140105854
jmp 0x1401058da
movsxd rdi, dword [rsp + 0x104]
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x100]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x90020
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rdi*8 + 0x414]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movsxd rdx, dword [rsp + 0x104]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rdx*8 + 0x414]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movsxd rdx, dword [rsp + 0x104]
mov rax, qword [rsp + 0x48]
mov qword [rax + rdx*8 + 0x414], 0xffffffffffffffff
jmp 0x1401057fb
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x830], rax
mov rcx, qword [rsp + 0x830]
call fcn.140073288
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0xf8]
mov qword [rcx + 0x40c], rax
mov rax, qword [rsp + 0x48]
cmp dword [rax], 5
jne 0x140105969
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400f9f70
mov rax, qword [rsp + 0x48]
cmp dword [rax], 4
jne 0x140105990
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400f9f70
cmp dword [rsp + 0x40], 2
jne 0x14010636e
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 0xa18
xor edx, edx
call fcn.1400a9850
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fa580
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 0xec4], rdx
mov r8, qword [rsp + 0x48]
add r8, 0x4b4
mov qword [rsp + 0x20], 0
mov r9d, 0x200
xor edx, edx
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 8
lea rdx, [0x14022f0b0]
call fcn.1400ac960
test eax, eax
je 0x140105a63
mov r8, qword [rsp + 0x48]
add r8, 0x4b4
mov rdx, qword [rsp + 0x48]
mov rdx, qword [rdx + 0xec4]
sub rdx, 0x200
mov qword [rsp + 0x20], 0
mov r9d, 0x200
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 8
lea rdx, [0x14022f0c0]
call fcn.1400ac960
test eax, eax
je 0x140105b04
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR___s_invalid_vhd_header
mov ecx, 1
call fcn.1400de020
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x838], rax
mov rcx, qword [rsp + 0x838]
call fcn.140073288
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x4f0]
call fcn.1400afc6c
mov dword [rsp + 0x108], eax
cmp dword [rsp + 0x108], 3
je 0x140105b33
cmp dword [rsp + 0x108], 4
jne 0x14010636e
mov rdi, qword [rsp + 0x48]
add rdi, 0x6b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4c4]
call fcn.1400afca8
mov qword [rsp + 0x20], 0
mov r9d, 0x400
mov r8, rdi
mov rdx, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 0x6d0]
call fcn.1400afc6c
mov ecx, eax
shl ecx, 2
call fcn.1400fa550
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 0xeb4], rdx
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x6d0]
call fcn.1400afc6c
mov ecx, eax
shl rcx, 2
mov edx, 0x200
call fcn.1400fa200
mov rdi, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x6c4]
call fcn.1400afca8
mov qword [rsp + 0x20], 0
mov r9, rdi
mov r8, qword [rsp + 0x48]
mov r8, qword [r8 + 0xeb4]
mov rdx, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 0x6d4]
call fcn.1400afc6c
xor edx, edx
mov ecx, 0x200
div ecx
xor edx, edx
mov ecx, 8
div ecx
mov ecx, eax
mov edx, 0x200
call fcn.1400fa200
mov dword [rsp + 0x10c], eax
mov ecx, 0x178
call fcn.140073244
mov qword [rsp + 0x848], rax
cmp qword [rsp + 0x848], 0
je 0x140105c68
mov rcx, qword [rsp + 0x848]
call fcn.140111320
mov qword [rsp + 0x988], rax
jmp 0x140105c74
mov qword [rsp + 0x988], 0
mov rax, qword [rsp + 0x988]
mov qword [rsp + 0x840], rax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x840]
mov qword [rcx + 0xebc], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 1
mov r8d, dword [rsp + 0x10c]
mov edx, 0x100000
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0xebc]
call fcn.1401141c0
cmp dword [rsp + 0x108], 4
jne 0x14010636e
movzx eax, word [0x14022e8e4]
mov word [rsp + 0x120], ax
lea rdi, [rsp + 0x122]
xor eax, eax
mov ecx, 0x3fe
rep stosb byte [rdi], al
mov dword [rsp + 0x520], 0
jmp 0x140105d1a
mov eax, dword [rsp + 0x520]
add eax, 1
mov dword [rsp + 0x520], eax
cmp dword [rsp + 0x520], 8
jge 0x140106225
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0
jne 0x140105d48
jmp 0x140106225
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0x756b3257
jne 0x140105f0b
mov rax, qword [rsp + 0x48]
add rax, 0xab4
mov qword [rsp + 0x528], rax
mov r8d, 8
xor edx, edx
mov rcx, qword [rsp + 0x528]
call fcn.1400a9850
movsxd rax, dword [rsp + 0x520]
imul rax, rax, 0x18
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rax + 0x904]
call fcn.1400afca8
mov qword [rsp + 0x20], 0
mov r9d, 0x200
mov r8, qword [rsp + 0x528]
mov rdx, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + rcx + 0x8fc]
call fcn.1400afc6c
mov edx, eax
xor ecx, ecx
mov rax, qword [rsp + 0x528]
mov word [rax + rdx*2], cx
mov rcx, qword [rsp + 0x528]
call fcn.1400fabb0
cmp eax, 2
je 0x140105e42
mov rcx, qword [rsp + 0x528]
call fcn.1400fabb0
cmp eax, 1
je 0x140105e42
mov rcx, qword [rsp + 0x528]
call fcn.1400fabb0
cmp eax, 6
jne 0x140105ef0
lea rcx, [rsp + 0x530]
call fcn.1400777f0
nop
xor r8d, r8d
mov rdx, qword [rsp + 0x528]
lea rcx, [rsp + 0x530]
call fcn.1400778f4
test eax, eax
jne 0x140105e7e
lea rcx, [rsp + 0x530]
call fcn.14007784c
jmp 0x140105d09
lea rcx, [rsp + 0x530]
call fcn.1400774fc
lea rdx, [rsp + 0x850]
lea rcx, [rsp + 0x530]
call fcn.140077d48
mov qword [rsp + 0x990], rax
mov rcx, qword [rsp + 0x990]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x850]
call fcn.140007060
lea rcx, [rsp + 0x530]
call fcn.140077428
nop
lea rcx, [rsp + 0x530]
call fcn.14007784c
jmp 0x140105f0b
mov rdx, qword [rsp + 0x528]
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x140106225
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0x75723257
jne 0x140106220
mov rax, qword [rsp + 0x48]
add rax, 0xab4
mov qword [rsp + 0x598], rax
mov r8d, 8
xor edx, edx
mov rcx, qword [rsp + 0x598]
call fcn.1400a9850
movsxd rax, dword [rsp + 0x520]
imul rax, rax, 0x18
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rax + 0x904]
call fcn.1400afca8
mov qword [rsp + 0x20], 0
mov r9d, 0x200
mov r8, qword [rsp + 0x598]
mov rdx, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400fd2b0
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + rcx + 0x8fc]
call fcn.1400afc6c
mov edx, eax
xor ecx, ecx
mov rax, qword [rsp + 0x598]
mov word [rax + rdx*2], cx
lea rcx, [rsp + 0x560]
call fcn.1400777f0
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xc
xor r8d, r8d
lea rcx, [rsp + 0x560]
call fcn.1400778f4
lea rcx, [rsp + 0x560]
call fcn.1400774fc
lea rdx, [rsp + 0x860]
lea rcx, [rsp + 0x560]
call fcn.140077d48
mov qword [rsp + 0x998], rax
mov rax, qword [rsp + 0x998]
mov qword [rsp + 0x9a0], rax
lea rdx, [rsp + 0x868]
lea rcx, [rsp + 0x560]
call fcn.140077e14
mov qword [rsp + 0x9a8], rax
mov rax, qword [rsp + 0x9a8]
mov qword [rsp + 0x9b0], rax
lea rdx, [rsp + 0x858]
lea rcx, [rsp + 0x560]
call fcn.140077d48
mov qword [rsp + 0x9b8], rax
mov rax, qword [rsp + 0x9b8]
mov qword [rsp + 0x9c0], rax
mov rcx, qword [rsp + 0x9b0]
call fcn.1400019a0
mov edi, eax
mov rcx, qword [rsp + 0x9a0]
call fcn.1400019a0
mov r8d, eax
sub r8d, edi
lea rdx, [rsp + 0x590]
mov rcx, qword [rsp + 0x9c0]
call fcn.140006ba0
nop
lea rcx, [rsp + 0x858]
call fcn.140007060
nop
lea rcx, [rsp + 0x868]
call fcn.140007060
nop
lea rcx, [rsp + 0x860]
call fcn.140007060
mov r8, qword [rsp + 0x598]
lea rdx, [rsp + 0x590]
lea rcx, [rsp + 0x878]
call fcn.1400010b0
mov qword [rsp + 0x9c8], rax
mov rax, qword [rsp + 0x9c8]
mov qword [rsp + 0x9d0], rax
mov rcx, qword [rsp + 0x9d0]
call fcn.140050200
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x560]
call fcn.1400778f4
test eax, eax
jne 0x14010614d
mov dword [rsp + 0x9d8], 1
jmp 0x140106158
mov dword [rsp + 0x9d8], 0
movzx eax, byte [rsp + 0x9d8]
mov byte [rsp + 0x870], al
lea rcx, [rsp + 0x878]
call fcn.140007060
movzx edx, byte [rsp + 0x870]
test edx, edx
je 0x1401061a0
lea rcx, [rsp + 0x590]
call fcn.140007060
nop
lea rcx, [rsp + 0x560]
call fcn.14007784c
jmp 0x140105d09
lea rcx, [rsp + 0x560]
call fcn.1400774fc
lea rdx, [rsp + 0x880]
lea rcx, [rsp + 0x560]
call fcn.140077d48
mov qword [rsp + 0x9e0], rax
mov rcx, qword [rsp + 0x9e0]
call fcn.140050200
mov rdx, rax
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x880]
call fcn.140007060
lea rcx, [rsp + 0x560]
call fcn.140077428
nop
lea rcx, [rsp + 0x590]
call fcn.140007060
nop
lea rcx, [rsp + 0x560]
call fcn.14007784c
jmp 0x140106225
jmp 0x140105d09
lea rcx, [rsp + 0x120]
call fcn.1400a99d4
test rax, rax
je 0x14010636e
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x120]
call fcn.1400ab9f8
test eax, eax
jne 0x14010625b
xor eax, eax
jmp 0x1401068a1
mov rdx, qword [rsp + 0x48]
add rdx, 0x494
mov eax, dword [rsp + 0xa48]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xa40]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0xa38]
mov r8d, 1
lea rcx, [rsp + 0x120]
call fcn.140104900
test eax, eax
jne 0x14010636e
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0xebc]
mov qword [rsp + 0x890], rax
mov rax, qword [rsp + 0x890]
mov qword [rsp + 0x888], rax
cmp qword [rsp + 0x888], 0
je 0x1401062eb
mov edx, 1
mov rcx, qword [rsp + 0x888]
call fcn.14002b470
mov qword [rsp + 0x9e8], rax
jmp 0x1401062f7
mov qword [rsp + 0x9e8], 0
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x898], rax
mov rcx, qword [rsp + 0x898]
call fcn.140073288
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0xeb4]
call fcn.1400fa510
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
cmp dword [rsp + 0x40], 8
jne 0x1401067ce
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 0xa18
xor edx, edx
call fcn.1400a9850
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.14010b650
test eax, eax
jne 0x140106447
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR___s_invalid_vhdx_header
mov ecx, 1
call fcn.1400de020
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x8a0], rax
mov rcx, qword [rsp + 0x8a0]
call fcn.140073288
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4c0]
call fcn.1400fa510
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4e4], 0
je 0x14010654b
xor eax, eax
mov word [rsp + 0x5b0], ax
lea rdi, [rsp + 0x5b2]
xor eax, eax
mov ecx, 0x208
rep stosb byte [rdi], al
mov rdx, qword [rsp + 0x48]
add rdx, 0xc
lea rcx, [rsp + 0x5b0]
call fcn.1400aac40
lea rcx, [rsp + 0x5b0]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea rcx, [rsp + 0x5b0]
call fcn.1400a99d4
test rax, rax
je 0x1401064d8
lea rcx, [rsp + 0x5b0]
call fcn.1400a99d4
movzx eax, word [rsp + rax*2 + 0x5ae]
cmp eax, 0x5c
je 0x1401064d8
lea rdx, [0x14022e9cc]
lea rcx, [rsp + 0x5b0]
call fcn.1400aac14
mov rdx, qword [rsp + 0x48]
add rdx, 0x8fc
lea rcx, [rsp + 0x5b0]
call fcn.1400aac14
lea rcx, [rsp + 0x5b0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14010652e
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 0x8fc]
test eax, eax
je 0x14010652e
mov rcx, qword [rsp + 0x48]
add rcx, 0x10fc
lea rdx, [rsp + 0x5b0]
call fcn.1400aac40
jmp 0x14010654b
mov rdx, qword [rsp + 0x48]
add rdx, 0x4fc
mov rcx, qword [rsp + 0x48]
add rcx, 0x10fc
call fcn.1400aac40
mov ecx, 0x178
call fcn.140073244
mov qword [rsp + 0x8b0], rax
cmp qword [rsp + 0x8b0], 0
je 0x14010657f
mov rcx, qword [rsp + 0x8b0]
call fcn.140111320
mov qword [rsp + 0x9f0], rax
jmp 0x14010658b
mov qword [rsp + 0x9f0], 0
mov rax, qword [rsp + 0x9f0]
mov qword [rsp + 0x8a8], rax
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x8a8]
mov qword [rcx + 0x153c], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x4e0]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
movsd xmm0, qword [0x140272fd0]
mulsd xmm0, xmm1
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x4f4]
pxor xmm1, xmm1
cvtsi2sd xmm1, rax
divsd xmm0, xmm1
divsd xmm0, qword [0x1402752a8]
divsd xmm0, qword [0x1402752a0]
call fcn.1400afb58
mulsd xmm0, qword [0x1402752a0]
xor ecx, ecx
comisd xmm0, xmmword [0x140272fc8]
jbe 0x14010662f
subsd xmm0, qword [0x140272fc8]
comisd xmm0, xmmword [0x140272fc8]
jae 0x14010662f
movabs rax, 0x8000000000000000
add rcx, rax
cvttsd2si rax, xmm0
add rax, rcx
mov qword [rsp + 0x5a8], rax
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x4bc]
add ecx, 1
xor edx, edx
mov rax, qword [rsp + 0x48]
mov eax, dword [rax + 0x4c8]
div ecx
add eax, 1
mov eax, eax
imul rax, rax, 0x100000
mov dword [rsp + 0x5a0], eax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 1
mov r8d, dword [rsp + 0x5a8]
mov edx, 0x100000
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x153c]
call fcn.1401141c0
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4e4], 0
je 0x1401067ce
mov rdx, qword [rsp + 0x48]
add rdx, 0x494
mov rcx, qword [rsp + 0x48]
add rcx, 0x10fc
mov eax, dword [rsp + 0xa48]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xa40]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0xa38]
mov r8d, 1
call fcn.140104900
test eax, eax
jne 0x1401067ce
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x153c]
mov qword [rsp + 0x8c0], rax
mov rax, qword [rsp + 0x8c0]
mov qword [rsp + 0x8b8], rax
cmp qword [rsp + 0x8b8], 0
je 0x14010674b
mov edx, 1
mov rcx, qword [rsp + 0x8b8]
call fcn.14002b470
mov qword [rsp + 0x9f8], rax
jmp 0x140106757
mov qword [rsp + 0x9f8], 0
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4ac]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4c0]
call fcn.1400fa510
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x8c8], rax
mov rcx, qword [rsp + 0x8c8]
call fcn.140073288
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400fa510
xor eax, eax
jmp 0x1401068a1
mov rcx, qword [rsp + 0x48]
call fcn.1400fa5c0
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 4], rdx
cmp dword [rsp + 0xa48], 0
je 0x1401067ff
lea rdx, [rsp + 0x48]
lea rcx, [0x1403c7f28]
call fcn.140020de0
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 5
jne 0x140106886
mov dword [rsp + 0x7c0], 0
mov dword [rsp + 0x7c4], 0
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x7c0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x90083
mov rcx, qword [rcx + 0x40c]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [rsp + 0x7c4], eax
mov r8, qword [rsp + 0xa20]
lea rdx, str.Open_disk__s_OK
xor ecx, ecx
call fcn.1400de020
mov eax, 1
mov rcx, qword [rsp + 0xa00]
xor rcx, rsp
call fcn.1400a9820
add rsp, 0xa10
pop rdi
ret