Function at 0x419180
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49d64a
mov eax, dword fs:[0]
push eax
sub esp, 0x750
mov eax, dword [0x4c6374]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
mov dword [ebp - 0x664], 7
mov dword [ebp - 0x668], 0
mov word [ebp - 0x678], ax
push 0x100
push eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x110]
push eax
call fcn.004793f0
sub esp, 0xc
lea edi, [ebp - 0x630]
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x419213
mov eax, dword [ecx]
jmp 0x419215
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
push edx
push esi
mov word [eax], dx
call fcn.0040ec30
mov ecx, edi
call fcn.00424cd0
mov ecx, esp
mov dword [ebp - 0x614], 0
lea edx, [esi + 0x48]
mov ebx, eax
mov dword [ebp - 0x630], edx
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x419267
mov eax, dword [ecx]
jmp 0x419269
mov eax, ecx
push 0xffffffffffffffff
xor edi, edi
push edi
push edx
mov word [eax], di
call fcn.0040ec30
lea ecx, [ebp - 0x614]
call fcn.00424cd0
add esp, 0x18
cmp eax, ebx
jne 0x419293
mov ecx, dword [ebp - 0x614]
dec ecx
push ecx
jmp 0x419299
push dword [ebp - 0x614]
push eax
push str._d:_d
lea eax, [ebp - 0x110]
push 0x80
push eax
call fcn.0040edf0
add esp, 0x14
cmp word [ebp - 0x110], di
jne 0x4192c0
xor ecx, ecx
jmp 0x4192df
lea ecx, [ebp - 0x110]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4192d0
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x678]
call fcn.0040e610
push 1
push ecx
add esi, 0x18
push 0x4b66d4
mov ecx, esi
call fcn.0040a470
mov edi, eax
cmp edi, 0xffffffff
je 0x41973e
push edi
push 0
lea eax, [ebp - 0x648]
mov ecx, esi
push eax
call fcn.00408960
mov byte [ebp - 4], 1
cmp dword [ebp - 0x638], 3
jbe 0x4194b2
push 0x98
lea eax, [ebp - 0x710]
push 0
push eax
call fcn.004793f0
add esp, 4
lea ecx, [ebp - 0x710]
call fcn.00408c30
mov edx, 0x4b66d8
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x710]
call fcn.0040b820
lea edx, [ebp - 0x648]
mov ecx, eax
call fcn.0040be40
push 0x18
push str.CGptRestore::GhostCreate
lea ecx, [ebp - 0x728]
mov dword [ebp - 0x714], 0xf
mov dword [ebp - 0x718], 0
mov byte [ebp - 0x728], 0
call fcn.0040f450
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x758]
push 0xe
push str.GptRestore.cpp
mov dword [ebp - 0x744], 0xf
mov dword [ebp - 0x748], 0
mov byte [ebp - 0x758], 0
call fcn.0040f450
lea eax, [ebp - 0x740]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x710]
call fcn.00408b50
push eax
lea eax, [ebp - 0x728]
mov byte [ebp - 4], 5
push eax
push 0xc6
lea eax, [ebp - 0x758]
push eax
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f910
mov eax, dword [ebp - 0x72c]
cmp eax, 8
jb 0x41942a
inc eax
lea ecx, [ebp - 0x740]
push eax
push dword [ebp - 0x740]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x72c], 7
mov word [ebp - 0x740], ax
mov eax, dword [ebp - 0x744]
mov dword [ebp - 0x730], 0
cmp eax, 0x10
jb 0x419465
inc eax
lea ecx, [ebp - 0x758]
push eax
push dword [ebp - 0x758]
call fcn.0040f330
mov eax, dword [ebp - 0x714]
mov dword [ebp - 0x744], 0xf
mov dword [ebp - 0x748], 0
mov byte [ebp - 0x758], 0
cmp eax, 0x10
jb 0x41949e
inc eax
lea ecx, [ebp - 0x728]
push eax
push dword [ebp - 0x728]
call fcn.0040f330
lea ecx, [ebp - 0x6c0]
call fcn.00408b70
mov byte [ebp - 4], 6
jmp 0x4195f2
cmp dword [ebp - 0x634], 8
lea eax, [ebp - 0x648]
cmovae eax, dword [ebp - 0x648]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
test eax, eax
jne 0x419630
push 0x98
push eax
lea eax, [ebp - 0x710]
push eax
call fcn.004793f0
add esp, 4
lea ecx, [ebp - 0x710]
call fcn.00408c30
mov edx, str.Error
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x710]
call fcn.0040b820
lea edx, [ebp - 0x648]
mov ecx, eax
call fcn.0040be40
mov edx, str.:DRIVE_UNKNOWN
mov ecx, eax
call fcn.0040b820
push str.CGptRestore::GhostCreate
lea ecx, [ebp - 0x740]
call fcn.0040f550
push str.GptRestore.cpp
lea ecx, [ebp - 0x728]
mov byte [ebp - 4], 8
call fcn.0040f550
lea eax, [ebp - 0x758]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x710]
call fcn.00408b50
push eax
lea eax, [ebp - 0x740]
mov byte [ebp - 4], 0xa
push eax
push 0xcc
lea eax, [ebp - 0x728]
push eax
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f910
lea ecx, [ebp - 0x758]
call fcn.0040f680
mov eax, dword [ebp - 0x714]
cmp eax, 0x10
jb 0x4195aa
inc eax
lea ecx, [ebp - 0x728]
push eax
push dword [ebp - 0x728]
call fcn.0040f330
mov eax, dword [ebp - 0x72c]
mov dword [ebp - 0x714], 0xf
mov dword [ebp - 0x718], 0
mov byte [ebp - 0x728], 0
cmp eax, 0x10
jb 0x4195e3
inc eax
lea ecx, [ebp - 0x740]
push eax
push dword [ebp - 0x740]
call fcn.0040f330
lea ecx, [ebp - 0x6c0]
call fcn.00408b70
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x6c0]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.0042f0f8
mov eax, dword [ebp - 0x634]
add esp, 4
cmp eax, 8
jb 0x419629
inc eax
lea ecx, [ebp - 0x648]
push eax
push dword [ebp - 0x648]
call fcn.0040f5b0
xor bl, bl
jmp 0x419bd0
xor eax, eax
mov dword [ebp - 0x618], 7
mov dword [ebp - 0x61c], 0
mov word [ebp - 0x62c], ax
push 0x100
push eax
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 0xc
push eax
call fcn.004793f0
sub esp, 0xc
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 7
cmp dword [ecx + 0x14], 8
mov dword [ecx + 0x10], 0
jb 0x41968e
mov eax, dword [ecx]
jmp 0x419690
mov eax, ecx
xor edx, edx
push 0xffffffffffffffff
mov word [eax], dx
lea eax, [ebp - 0x648]
push edx
push eax
call fcn.0040ec30
lea ecx, [ebp - 0x614]
call fcn.00424cd0
add esp, 0x18
cmp ebx, eax
jne 0x4196c0
mov ecx, dword [ebp - 0x614]
dec ecx
push ecx
jmp 0x4196c6
push dword [ebp - 0x614]
push eax
push str._d:_d
lea eax, [ebp - 0x210]
push 0x80
push eax
call fcn.0040edf0
add esp, 0x14
lea eax, [ebp - 0x210]
lea ecx, [ebp - 0x62c]
push eax
call fcn.004089f0
push edi
push 0
mov ecx, esi
call fcn.0040ee80
push esi
lea edx, [ebp - 0x62c]
lea ecx, [ebp - 0x740]
call fcn.0040c0c0
add esp, 4
mov ecx, esi
push eax
call fcn.00408a40
lea ecx, [ebp - 0x740]
call fcn.0040f680
lea ecx, [ebp - 0x62c]
call fcn.0040f680
lea ecx, [ebp - 0x648]
mov byte [ebp - 4], 0
call fcn.0040f680
push 0x1f
xor eax, eax
mov dword [ebp - 0x64c], 7
push str.Z:EFIMicrosoftBootGhost.txt
lea ecx, [ebp - 0x660]
mov dword [ebp - 0x650], 0
mov word [ebp - 0x660], ax
call fcn.0040e610
push 0x400
lea eax, [ebp - 0x610]
mov byte [ebp - 4], 0xd
push 0
push eax
call fcn.004793f0
mov edx, dword [ebp - 0x630]
lea ecx, [ebp - 0x728]
add esp, 0xc
call fcn.00425830
mov ebx, eax
lea edx, [ebp - 0x678]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x740]
call fcn.00425830
mov edi, eax
mov edx, esi
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x62c]
call fcn.00425830
cmp dword [ebx + 0x14], 0x10
jb 0x4197ca
mov ebx, dword [ebx]
cmp dword [edi + 0x14], 0x10
jb 0x4197d2
mov edi, dword [edi]
cmp dword [eax + 0x14], 0x10
jb 0x4197da
mov eax, dword [eax]
push ebx
push edi
push eax
push str._nousb__clone_modepload_src__s:1__dst__s___fro__crcignore__sure__fx__afile_GHOSTERR.TXT__s
lea eax, [ebp - 0x610]
push 0x400
push eax
call fcn.0040ee60
mov ecx, dword [ebp - 0x618]
add esp, 0x18
mov esi, eax
cmp ecx, 0x10
jb 0x419816
inc ecx
push ecx
push dword [ebp - 0x62c]
lea ecx, [ebp - 0x62c]
call fcn.0040f330
mov eax, dword [ebp - 0x72c]
mov dword [ebp - 0x618], 0xf
mov dword [ebp - 0x61c], 0
mov byte [ebp - 0x62c], 0
cmp eax, 0x10
jb 0x41984f
inc eax
lea ecx, [ebp - 0x740]
push eax
push dword [ebp - 0x740]
call fcn.0040f330
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x714]
mov dword [ebp - 0x72c], 0xf
mov dword [ebp - 0x730], 0
mov byte [ebp - 0x740], 0
cmp eax, 0x10
jb 0x41988c
inc eax
lea ecx, [ebp - 0x728]
push eax
push dword [ebp - 0x728]
call fcn.0040f330
cmp esi, 0xffffffff
jne 0x419a16
push 0x98
lea eax, [ebp - 0x710]
push 0
push eax
call fcn.004793f0
add esp, 4
lea ecx, [ebp - 0x710]
call fcn.00408c30
mov edx, str.sprintf_s_Error:
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x710]
call fcn.0040b820
lea edx, [ebp - 0x610]
mov ecx, eax
call fcn.0040bae0
push 0x18
push str.CGptRestore::GhostCreate
lea ecx, [ebp - 0x728]
mov dword [ebp - 0x714], 0xf
mov dword [ebp - 0x718], 0
mov byte [ebp - 0x728], 0
call fcn.0040f450
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x758]
push 0xe
push str.GptRestore.cpp
mov dword [ebp - 0x744], 0xf
mov dword [ebp - 0x748], 0
mov byte [ebp - 0x758], 0
call fcn.0040f450
lea eax, [ebp - 0x62c]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x710]
call fcn.00408b50
push eax
lea eax, [ebp - 0x728]
mov byte [ebp - 4], 0x13
push eax
push 0x105
lea eax, [ebp - 0x758]
push eax
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f910
mov eax, dword [ebp - 0x618]
cmp eax, 8
jb 0x41998e
inc eax
lea ecx, [ebp - 0x62c]
push eax
push dword [ebp - 0x62c]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x618], 7
mov word [ebp - 0x62c], ax
mov eax, dword [ebp - 0x744]
mov dword [ebp - 0x61c], 0
cmp eax, 0x10
jb 0x4199c9
inc eax
lea ecx, [ebp - 0x758]
push eax
push dword [ebp - 0x758]
call fcn.0040f330
mov eax, dword [ebp - 0x714]
mov dword [ebp - 0x744], 0xf
mov dword [ebp - 0x748], 0
mov byte [ebp - 0x758], 0
cmp eax, 0x10
jb 0x419a02
inc eax
lea ecx, [ebp - 0x728]
push eax
push dword [ebp - 0x728]
call fcn.0040f330
lea ecx, [ebp - 0x6c0]
call fcn.00408b70
mov byte [ebp - 4], 0x14
jmp 0x419b76
push ecx
push esi
lea edx, [ebp - 0x610]
lea ecx, [ebp - 0x660]
call fcn.00414980
add esp, 8
test al, al
jne 0x419b93
push 0x98
lea eax, [ebp - 0x710]
push 0
push eax
call fcn.004793f0
add esp, 4
lea ecx, [ebp - 0x710]
call fcn.00408c30
mov edx, str.SetFileBuf_Error__FilePath:
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x710]
call fcn.0040b820
lea edx, [ebp - 0x660]
mov ecx, eax
call fcn.0040be40
push str.CGptRestore::GhostCreate
lea ecx, [ebp - 0x740]
call fcn.0040f550
push str.GptRestore.cpp
lea ecx, [ebp - 0x728]
mov byte [ebp - 4], 0x16
call fcn.0040f550
lea eax, [ebp - 0x62c]
mov byte [ebp - 4], 0x17
push eax
lea ecx, [ebp - 0x710]
call fcn.00408b50
push eax
lea eax, [ebp - 0x740]
mov byte [ebp - 4], 0x18
push eax
push 0x10b
lea eax, [ebp - 0x728]
push eax
push ecx
call fcn.0041f440
mov ecx, eax
call fcn.0041f910
mov eax, dword [ebp - 0x618]
cmp eax, 8
jb 0x419af3
inc eax
lea ecx, [ebp - 0x62c]
push eax
push dword [ebp - 0x62c]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x618], 7
mov word [ebp - 0x62c], ax
mov eax, dword [ebp - 0x714]
mov dword [ebp - 0x61c], 0
cmp eax, 0x10
jb 0x419b2e
inc eax
lea ecx, [ebp - 0x728]
push eax
push dword [ebp - 0x728]
call fcn.0040f330
mov eax, dword [ebp - 0x72c]
mov dword [ebp - 0x714], 0xf
mov dword [ebp - 0x718], 0
mov byte [ebp - 0x728], 0
cmp eax, 0x10
jb 0x419b67
inc eax
lea ecx, [ebp - 0x740]
push eax
push dword [ebp - 0x740]
call fcn.0040f330
lea ecx, [ebp - 0x6c0]
call fcn.00408b70
mov byte [ebp - 4], 0x19
lea eax, [ebp - 0x6c0]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.0042f0f8
add esp, 4
xor bl, bl
jmp 0x419b95
mov bl, 1
mov eax, dword [ebp - 0x64c]
cmp eax, 8
jb 0x419bb3
inc eax
lea ecx, [ebp - 0x660]
push eax
push dword [ebp - 0x660]
call fcn.0040f5b0
xor eax, eax
mov dword [ebp - 0x64c], 7
mov dword [ebp - 0x650], 0
mov word [ebp - 0x660], ax
mov ecx, dword [ebp - 0x664]
cmp ecx, 8
jb 0x419bee
inc ecx
push ecx
push dword [ebp - 0x678]
lea ecx, [ebp - 0x678]
call fcn.0040f5b0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00475cda
mov esp, ebp
pop ebp
ret