Function at 0x140103080
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 [0x1402aa5c0]
xor rax, rsp
mov qword [rsp + 0xa00], rax
mov rcx, qword [rsp + 0xa20]
call fcn.1400f9330
mov dword [rsp + 0x40], eax
mov r8, qword [rsp + 0xa20]
lea rdx, str.Open_disk__s
xor ecx, ecx
call fcn.1400dcf70
cmp dword [rsp + 0x40], 0
jne 0x14010314b
lea rdx, str._ERROR__Image__s_unknown_format
lea rcx, [rsp + 0x7c8]
call fcn.140002100
mov qword [rsp + 0x8d8], rax
mov rax, qword [rsp + 0x8d8]
mov qword [rsp + 0x8e0], rax
mov rcx, qword [rsp + 0x8e0]
call fcn.14000f8f0
mov r8, qword [rsp + 0xa20]
mov rdx, rax
mov ecx, 1
call fcn.1400dcf70
nop
lea rcx, [rsp + 0x7c8]
call fcn.140001490
xor eax, eax
jmp 0x140105021
cmp dword [rsp + 0x40], 0xffffffff
jne 0x1401031b5
lea rdx, [0x14021ea00]
lea rcx, [rsp + 0x7d0]
call fcn.140002100
mov qword [rsp + 0x8e8], rax
mov rax, qword [rsp + 0x8e8]
mov qword [rsp + 0x8f0], rax
mov rcx, qword [rsp + 0x8f0]
call fcn.14000f8f0
mov r8, qword [rsp + 0xa20]
mov rdx, rax
mov ecx, 1
call fcn.1400dcf70
nop
lea rcx, [rsp + 0x7d0]
call fcn.140001490
xor eax, eax
jmp 0x140105021
cmp dword [rsp + 0xa48], 0
je 0x140103920
cmp dword [rsp + 0x40], 5
je 0x1401031dc
cmp dword [rsp + 0x40], 4
je 0x1401031dc
cmp dword [rsp + 0x40], 1
jne 0x140103920
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
jmp 0x1401031f9
mov eax, dword [rsp + 0x54]
add eax, 1
mov dword [rsp + 0x54], eax
movsxd rdi, dword [rsp + 0x54]
lea rcx, [0x1403b4ee8]
call fcn.14001be50
cmp rdi, rax
jae 0x140103263
movsxd rdx, dword [rsp + 0x54]
lea rcx, [0x1403b4ee8]
call fcn.14001fd00
mov rcx, qword [rax]
add rcx, 0xc
mov rdx, qword [rsp + 0xa20]
call fcn.1400ab100
test eax, eax
jne 0x140103261
mov dword [rsp + 0x50], 1
movsxd rdx, dword [rsp + 0x54]
lea rcx, [0x1403b4ee8]
call fcn.14001fd00
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rax]
mov qword [rcx], rax
jmp 0x140103263
jmp 0x1401031ee
cmp dword [rsp + 0x50], 0
je 0x140103920
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.1400dcf70
cmp dword [rsp + 0xa30], 0
jne 0x140103900
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax + 0x4a0], 0
jne 0x140103900
mov r8, qword [rsp + 0xa20]
lea rdx, str.Change_disk__s_to_writable_mode
xor ecx, ecx
call fcn.1400dcf70
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 1
jne 0x14010356f
lea rcx, [0x14021eac0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x80], rax
cmp qword [rsp + 0x80], 0
jne 0x140103320
xor eax, eax
jmp 0x140105021
lea rdx, [0x14021e908]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x78], rax
lea rdx, [0x14021eae0]
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, [0x14021eb08]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x70], rax
lea rdx, [0x14021eb20]
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.1400f9670
mov qword [rsp + 0x8f8], rax
mov rax, qword [rsp + 0x8f8]
mov qword [rsp + 0x900], rax
mov rcx, qword [rsp + 0x900]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x7d8]
call fcn.140002e10
mov qword [rsp + 0x908], rax
mov rax, qword [rsp + 0x908]
mov qword [rsp + 0x910], rax
mov rcx, qword [rsp + 0x910]
call fcn.140002ec0
lea r9, [rsp + 0x68]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [0x1403b3148]
call qword [rsp + 0x88]
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x7d8]
call fcn.140002ea0
nop
lea rcx, [rsp + 0x7e0]
call fcn.140001490
mov rax, qword [rsp + 0x60]
and rax, 0xffff
test rax, rax
je 0x14010353b
xor edx, edx
mov rcx, qword [rsp + 0x60]
call qword [rsp + reloc.WSOCK32.dll_WSASetLastError]
mov qword [rsp + 0x98], rax
mov rdx, qword [rsp + 0x98]
lea rcx, [rsp + 0x7e8]
call fcn.14000e700
mov qword [rsp + 0x918], rax
mov rax, qword [rsp + 0x918]
mov qword [rsp + 0x920], rax
mov rcx, qword [rsp + 0x920]
call fcn.1400118c0
mov r9, rax
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14021eb40]
mov ecx, 1
call fcn.1400dcf70
nop
lea rcx, [rsp + 0x7e8]
call fcn.140002ea0
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 0x140105021
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 0x1401038c6
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp qword [rax + 0x40c], 0
je 0x1401035c7
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp qword [rax + 0x40c], 0xffffffffffffffff
je 0x1401035c7
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.1400fae10
test eax, eax
jne 0x1401036a6
xor r9d, r9d
mov r8d, 3
mov edx, 0x80000000
mov rcx, qword [rsp + 0xa20]
call fcn.1400fa1a0
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 0x140103686
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, [0x14021eb90]
mov ecx, 1
call fcn.1400dcf70
xor eax, eax
jmp 0x140105021
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 5
jne 0x14010371d
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 0x1401038c6
xor r9d, r9d
mov r8d, 3
mov edx, 0xc0000000
mov rcx, qword [rsp + 0xa20]
call fcn.1400fa1a0
mov qword [rsp + 0xb0], rax
cmp qword [rsp + 0xb0], 0xffffffffffffffff
jne 0x1401038ac
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR__open__s_failed
mov ecx, 1
call fcn.1400dcf70
mov rax, qword [rsp + 0xa28]
mov rax, qword [rax]
cmp dword [rax], 4
jne 0x1401038a5
mov dword [rsp + 0xb8], 0
mov dword [rsp + 0xbc], 0
jmp 0x1401037b9
mov eax, dword [rsp + 0xbc]
add eax, 1
mov dword [rsp + 0xbc], eax
cmp dword [rsp + 0xbc], 0x10
jge 0x1401038a5
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
movsxd rax, dword [rsp + 0xbc]
cmp qword [rcx + rax*8 + 0x414], 0xffffffffffffffff
jne 0x1401037ea
jmp 0x1401038a5
mov rcx, qword [rsp + 0xa28]
mov rcx, qword [rcx]
movsxd rax, dword [rsp + 0xbc]
cmp qword [rcx + rax*8 + 0x414], 0
jne 0x14010380d
jmp 0x1401038a5
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 0x1401037a8
xor eax, eax
jmp 0x140105021
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 0x1401038dd
mov dword [rsp + 0x928], 1
jmp 0x1401038e8
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.1400dcf70
mov eax, 1
jmp 0x140105021
mov qword [rsp + 0x48], 0
mov ecx, 0x1544
call fcn.1400f8cd0
mov qword [rsp + 0x48], rax
mov r8d, 0x1544
xor edx, edx
mov rcx, qword [rsp + 0x48]
call fcn.1400a87c0
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov ecx, 0x28
call fcn.140072204
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 0x1401039a9
mov dword [rsp + 0x92c], 1
jmp 0x1401039b4
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 0x140103a58
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.1400a9968
mov rcx, qword [rsp + 0x48]
call fcn.1400f8d40
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 4], rdx
cmp dword [rsp + 0xa48], 0
je 0x140103a3e
lea rdx, [rsp + 0x48]
lea rcx, [0x1403b4ee8]
call fcn.140029ec0
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov eax, 1
jmp 0x140105021
cmp dword [rsp + 0x40], 1
jne 0x140103e0a
lea rcx, [0x14021ec38]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0xe0], 0
jne 0x140103a8a
xor eax, eax
jmp 0x140105021
lea rdx, [0x14021ec58]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xe8], rax
lea rdx, [0x14021ec68]
mov rcx, qword [rsp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0xd8], rax
lea rdx, [0x14021ec80]
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 0x140103bb8
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x800]
call fcn.1400f9670
mov qword [rsp + 0x930], rax
mov rax, qword [rsp + 0x930]
mov qword [rsp + 0x938], rax
mov rcx, qword [rsp + 0x938]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x7f8]
call fcn.140002e10
mov qword [rsp + 0x940], rax
mov rax, qword [rsp + 0x940]
mov qword [rsp + 0x948], rax
mov rcx, qword [rsp + 0x948]
call fcn.140002ec0
lea r9, [rsp + 0xd0]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [0x1403b3148]
call qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x7f8]
call fcn.140002ea0
nop
lea rcx, [rsp + 0x800]
call fcn.140001490
jmp 0x140103c69
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x810]
call fcn.1400f9670
mov qword [rsp + 0x950], rax
mov rax, qword [rsp + 0x950]
mov qword [rsp + 0x958], rax
mov rcx, qword [rsp + 0x958]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x808]
call fcn.140002e10
mov qword [rsp + 0x960], rax
mov rax, qword [rsp + 0x960]
mov qword [rsp + 0x968], rax
mov rcx, qword [rsp + 0x968]
call fcn.140002ec0
lea r9, [rsp + 0xd0]
mov r8d, 4
mov rdx, rax
mov rcx, qword [0x1403b3148]
call qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0x808]
call fcn.140002ea0
nop
lea rcx, [rsp + 0x810]
call fcn.140001490
mov rax, qword [rsp + 0xc8]
and rax, 0xffff
test rax, rax
je 0x140103d72
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.14000e700
mov qword [rsp + 0x970], rax
mov rax, qword [rsp + 0x970]
mov qword [rsp + 0x978], rax
mov rcx, qword [rsp + 0x978]
call fcn.1400118c0
mov r9, rax
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14021eca0]
mov ecx, 1
call fcn.1400dcf70
nop
lea rcx, [rsp + 0x818]
call fcn.140002ea0
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.140072248
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
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.1400f8d40
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.1400a9968
cmp dword [rsp + 0xa48], 0
je 0x140103df0
lea rdx, [rsp + 0x48]
lea rcx, [0x1403b4ee8]
call fcn.140029ec0
mov rcx, qword [rsp + 0xa28]
mov rax, qword [rsp + 0x48]
mov qword [rcx], rax
mov eax, 1
jmp 0x140105021
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.1400a9968
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x140103eba
mov rcx, qword [rsp + 0x48]
call fcn.1400fae10
test eax, eax
jne 0x140103eba
mov r8, qword [rsp + 0xa20]
lea rdx, [0x14021ecf0]
mov ecx, 1
call fcn.1400dcf70
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.140072248
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x140103ed3
cmp dword [rsp + 0x40], 5
je 0x140104110
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x140103eee
mov dword [rsp + 0x980], 0xc0000000
jmp 0x140103ef9
mov dword [rsp + 0x980], 0x80000000
xor r9d, r9d
mov r8d, 3
mov edx, dword [rsp + 0x980]
mov rcx, qword [rsp + 0xa20]
call fcn.1400fa1a0
mov qword [rsp + 0xf8], rax
cmp qword [rsp + 0xf8], 0xffffffffffffffff
jne 0x1401040ae
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR__Open__s_failed
mov ecx, 1
call fcn.1400dcf70
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4a0], 0
je 0x14010405a
cmp dword [rsp + 0x40], 4
jne 0x14010405a
mov dword [rsp + 0x100], 0
mov dword [rsp + 0x104], 0
jmp 0x140103f8c
mov eax, dword [rsp + 0x104]
add eax, 1
mov dword [rsp + 0x104], eax
cmp dword [rsp + 0x104], 0x10
jge 0x14010405a
movsxd rcx, dword [rsp + 0x104]
mov rax, qword [rsp + 0x48]
cmp qword [rax + rcx*8 + 0x414], 0xffffffffffffffff
jne 0x140103fb7
jmp 0x14010405a
movsxd rcx, dword [rsp + 0x104]
mov rax, qword [rsp + 0x48]
cmp qword [rax + rcx*8 + 0x414], 0
jne 0x140103fd4
jmp 0x14010405a
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 0x140103f7b
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.140072248
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
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 0x1401040e9
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400f86f0
mov rax, qword [rsp + 0x48]
cmp dword [rax], 4
jne 0x140104110
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400f86f0
cmp dword [rsp + 0x40], 2
jne 0x140104aee
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 0xa18
xor edx, edx
call fcn.1400a87c0
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.1400f8d00
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.1400fba30
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 8
lea rdx, [0x14021ed70]
call fcn.1400ad3e0
test eax, eax
je 0x1401041e3
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.1400fba30
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 8
lea rdx, [0x14021ed80]
call fcn.1400ad3e0
test eax, eax
je 0x140104284
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR___s_invalid_vhd_header
mov ecx, 1
call fcn.1400dcf70
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.140072248
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + 0x4f0]
call fcn.1400aeb1c
mov dword [rsp + 0x108], eax
cmp dword [rsp + 0x108], 3
je 0x1401042b3
cmp dword [rsp + 0x108], 4
jne 0x140104aee
mov rdi, qword [rsp + 0x48]
add rdi, 0x6b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4c4]
call fcn.1400aeb58
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.1400fba30
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 0x6d0]
call fcn.1400aeb1c
mov ecx, eax
shl ecx, 2
call fcn.1400f8cd0
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.1400aeb1c
mov ecx, eax
shl rcx, 2
mov edx, 0x200
call fcn.1400f8980
mov rdi, rax
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x6c4]
call fcn.1400aeb58
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.1400fba30
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 0x6d4]
call fcn.1400aeb1c
xor edx, edx
mov ecx, 0x200
div ecx
xor edx, edx
mov ecx, 8
div ecx
mov ecx, eax
mov edx, 0x200
call fcn.1400f8980
mov dword [rsp + 0x10c], eax
mov ecx, 0x178
call fcn.140072204
mov qword [rsp + 0x848], rax
cmp qword [rsp + 0x848], 0
je 0x1401043e8
mov rcx, qword [rsp + 0x848]
call fcn.14010fab0
mov qword [rsp + 0x988], rax
jmp 0x1401043f4
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.140112950
cmp dword [rsp + 0x108], 4
jne 0x140104aee
movzx eax, word [0x14021e5a4]
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 0x14010449a
mov eax, dword [rsp + 0x520]
add eax, 1
mov dword [rsp + 0x520], eax
cmp dword [rsp + 0x520], 8
jge 0x1401049a5
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0
jne 0x1401044c8
jmp 0x1401049a5
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0x756b3257
jne 0x14010468b
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.1400a87c0
movsxd rax, dword [rsp + 0x520]
imul rax, rax, 0x18
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rax + 0x904]
call fcn.1400aeb58
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.1400fba30
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + rcx + 0x8fc]
call fcn.1400aeb1c
mov edx, eax
xor ecx, ecx
mov rax, qword [rsp + 0x528]
mov word [rax + rdx*2], cx
mov rcx, qword [rsp + 0x528]
call fcn.1400f9330
cmp eax, 2
je 0x1401045c2
mov rcx, qword [rsp + 0x528]
call fcn.1400f9330
cmp eax, 1
je 0x1401045c2
mov rcx, qword [rsp + 0x528]
call fcn.1400f9330
cmp eax, 6
jne 0x140104670
lea rcx, [rsp + 0x530]
call fcn.1400767b0
nop
xor r8d, r8d
mov rdx, qword [rsp + 0x528]
lea rcx, [rsp + 0x530]
call fcn.1400768b4
test eax, eax
jne 0x1401045fe
lea rcx, [rsp + 0x530]
call fcn.14007680c
jmp 0x140104489
lea rcx, [rsp + 0x530]
call fcn.1400764bc
lea rdx, [rsp + 0x850]
lea rcx, [rsp + 0x530]
call fcn.140076d08
mov qword [rsp + 0x990], rax
mov rcx, qword [rsp + 0x990]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x850]
call fcn.140001490
lea rcx, [rsp + 0x530]
call fcn.1400763e8
nop
lea rcx, [rsp + 0x530]
call fcn.14007680c
jmp 0x14010468b
mov rdx, qword [rsp + 0x528]
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x1401049a5
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
cmp dword [rax + rcx + 0x8f4], 0x75723257
jne 0x1401049a0
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.1400a87c0
movsxd rax, dword [rsp + 0x520]
imul rax, rax, 0x18
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + rax + 0x904]
call fcn.1400aeb58
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.1400fba30
movsxd rcx, dword [rsp + 0x520]
imul rcx, rcx, 0x18
mov rax, qword [rsp + 0x48]
mov ecx, dword [rax + rcx + 0x8fc]
call fcn.1400aeb1c
mov edx, eax
xor ecx, ecx
mov rax, qword [rsp + 0x598]
mov word [rax + rdx*2], cx
lea rcx, [rsp + 0x560]
call fcn.1400767b0
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xc
xor r8d, r8d
lea rcx, [rsp + 0x560]
call fcn.1400768b4
lea rcx, [rsp + 0x560]
call fcn.1400764bc
lea rdx, [rsp + 0x860]
lea rcx, [rsp + 0x560]
call fcn.140076d08
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.140076dd4
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.140076d08
mov qword [rsp + 0x9b8], rax
mov rax, qword [rsp + 0x9b8]
mov qword [rsp + 0x9c0], rax
mov rcx, qword [rsp + 0x9b0]
call fcn.140001a40
mov edi, eax
mov rcx, qword [rsp + 0x9a0]
call fcn.140001a40
mov r8d, eax
sub r8d, edi
lea rdx, [rsp + 0x590]
mov rcx, qword [rsp + 0x9c0]
call fcn.140006b20
nop
lea rcx, [rsp + 0x858]
call fcn.140001490
nop
lea rcx, [rsp + 0x868]
call fcn.140001490
nop
lea rcx, [rsp + 0x860]
call fcn.140001490
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.14000f8f0
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x560]
call fcn.1400768b4
test eax, eax
jne 0x1401048cd
mov dword [rsp + 0x9d8], 1
jmp 0x1401048d8
mov dword [rsp + 0x9d8], 0
movzx eax, byte [rsp + 0x9d8]
mov byte [rsp + 0x870], al
lea rcx, [rsp + 0x878]
call fcn.140001490
movzx edx, byte [rsp + 0x870]
test edx, edx
je 0x140104920
lea rcx, [rsp + 0x590]
call fcn.140001490
nop
lea rcx, [rsp + 0x560]
call fcn.14007680c
jmp 0x140104489
lea rcx, [rsp + 0x560]
call fcn.1400764bc
lea rdx, [rsp + 0x880]
lea rcx, [rsp + 0x560]
call fcn.140076d08
mov qword [rsp + 0x9e0], rax
mov rcx, qword [rsp + 0x9e0]
call fcn.14000f8f0
mov rdx, rax
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x880]
call fcn.140001490
lea rcx, [rsp + 0x560]
call fcn.1400763e8
nop
lea rcx, [rsp + 0x590]
call fcn.140001490
nop
lea rcx, [rsp + 0x560]
call fcn.14007680c
jmp 0x1401049a5
jmp 0x140104489
lea rcx, [rsp + 0x120]
call fcn.1400a8944
test rax, rax
je 0x140104aee
mov rdx, qword [rsp + 0xa20]
lea rcx, [rsp + 0x120]
call fcn.1400aa794
test eax, eax
jne 0x1401049db
xor eax, eax
jmp 0x140105021
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.140103080
test eax, eax
jne 0x140104aee
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 0x140104a6b
mov edx, 1
mov rcx, qword [rsp + 0x888]
call fcn.140029e80
mov qword [rsp + 0x9e8], rax
jmp 0x140104a77
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.140072248
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0xeb4]
call fcn.1400f8c90
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
cmp dword [rsp + 0x40], 8
jne 0x140104f4e
mov rcx, qword [rsp + 0x48]
add rcx, 0x4b4
mov r8d, 0xa18
xor edx, edx
call fcn.1400a87c0
mov rdx, qword [rsp + 0x48]
add rdx, 0x4b4
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x40c]
call fcn.140109dd0
test eax, eax
jne 0x140104bc7
mov r8, qword [rsp + 0xa20]
lea rdx, str._ERROR___s_invalid_vhdx_header
mov ecx, 1
call fcn.1400dcf70
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.140072248
mov rcx, qword [rsp + 0x48]
mov rcx, qword [rcx + 0x4c0]
call fcn.1400f8c90
mov rdx, qword [rsp + 0x48]
mov qword [rdx + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4e4], 0
je 0x140104ccb
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.1400a99dc
lea rcx, [rsp + 0x5b0]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea rcx, [rsp + 0x5b0]
call fcn.1400a8944
test rax, rax
je 0x140104c58
lea rcx, [rsp + 0x5b0]
call fcn.1400a8944
movzx eax, word [rsp + rax*2 + 0x5ae]
cmp eax, 0x5c
je 0x140104c58
lea rdx, [0x14021e68c]
lea rcx, [rsp + 0x5b0]
call fcn.1400a99b0
mov rdx, qword [rsp + 0x48]
add rdx, 0x8fc
lea rcx, [rsp + 0x5b0]
call fcn.1400a99b0
lea rcx, [rsp + 0x5b0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140104cae
mov rax, qword [rsp + 0x48]
movzx eax, word [rax + 0x8fc]
test eax, eax
je 0x140104cae
mov rcx, qword [rsp + 0x48]
add rcx, 0x10fc
lea rdx, [rsp + 0x5b0]
call fcn.1400a99dc
jmp 0x140104ccb
mov rdx, qword [rsp + 0x48]
add rdx, 0x4fc
mov rcx, qword [rsp + 0x48]
add rcx, 0x10fc
call fcn.1400a99dc
mov ecx, 0x178
call fcn.140072204
mov qword [rsp + 0x8b0], rax
cmp qword [rsp + 0x8b0], 0
je 0x140104cff
mov rcx, qword [rsp + 0x8b0]
call fcn.14010fab0
mov qword [rsp + 0x9f0], rax
jmp 0x140104d0b
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 [0x140261560]
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 [0x140263818]
divsd xmm0, qword [0x140263810]
call fcn.1400aea08
mulsd xmm0, qword [0x140263810]
xor ecx, ecx
comisd xmm0, xmmword [0x140261558]
jbe 0x140104daf
subsd xmm0, qword [0x140261558]
comisd xmm0, xmmword [0x140261558]
jae 0x140104daf
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.140112950
mov rax, qword [rsp + 0x48]
cmp dword [rax + 0x4e4], 0
je 0x140104f4e
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.140103080
test eax, eax
jne 0x140104f4e
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 0x140104ecb
mov edx, 1
mov rcx, qword [rsp + 0x8b8]
call fcn.140029e80
mov qword [rsp + 0x9f8], rax
jmp 0x140104ed7
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.1400f8c90
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x4ac]
mov qword [rsp + 0x8c8], rax
mov rcx, qword [rsp + 0x8c8]
call fcn.140072248
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x4ac], 0
mov rcx, qword [rsp + 0x48]
call fcn.1400f8c90
xor eax, eax
jmp 0x140105021
mov rcx, qword [rsp + 0x48]
call fcn.1400f8d40
mov rdx, rax
mov rax, qword [rsp + 0x48]
mov qword [rax + 4], rdx
cmp dword [rsp + 0xa48], 0
je 0x140104f7f
lea rdx, [rsp + 0x48]
lea rcx, [0x1403b4ee8]
call fcn.140029ec0
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 0x140105006
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.1400dcf70
mov eax, 1
mov rcx, qword [rsp + 0xa00]
xor rcx, rsp
call fcn.1400a8790
add rsp, 0xa10
pop rdi
ret