Function at 0x4764ef
Capabilities:
Get disk information

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46aa89
mov eax, dword fs:[0]
push eax
mov eax, 0x13e8
call fcn.00467d40
mov eax, dword [0x4a13b4]
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, edx
mov dword [ebp - 0x13f0], ecx
test byte [0x4a2fc1], 8
mov edi, 0x4a0818
je 0x47654f
lea eax, [ebp - 0xc0]
mov edx, 0x411500
push eax
push 1
push ecx
mov ecx, edi
call fcn.00479253
lea ecx, [ebp - 0x154]
call fcn.004233d4
and dword [ebp - 4], 0
lea ecx, [ebp - 0xbd4]
push dword [0x4a2dc0]
call fcn.0042126b
mov byte [ebp - 4], 1
cmp dword [0x4a2dc0], 0
je 0x4765d0
lea ecx, [ebp - 0x13e8]
call fcn.004212a3
mov edx, ecx
mov byte [ebp - 4], 2
mov ecx, esi
call fcn.0047828b
push 0
push dword [ebp - 0x13e4]
lea eax, [ebp - 0xbd4]
push 0x800003f0
push eax
call fcn.004365cd
add esp, 0x10
mov byte [ebp - 4], 1
lea eax, [ebp - 0x13d8]
mov dword [ebp - 0x13e8], 0x40169c
lea ecx, [ebp - 0x13e8]
push eax
call fcn.00434927
push ecx
push 0x20019
push 0x404a78
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x294]
call fcn.0043f9f4
lea eax, [ebp - 0x154]
mov byte [ebp - 4], 3
push eax
push 0x404d8c
lea ecx, [ebp - 0x294]
xor esi, esi
call fcn.0043fe8b
mov ebx, 0x406418
test eax, eax
jne 0x47663d
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x476626
movzx esi, si
or esi, 0x80070000
mov ecx, dword [ebp + 4]
mov edx, 0x63f
push esi
push ebx
call fcn.00478527
test esi, esi
js 0x476705
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x148]
mov cx, word [eax + edx*2 - 2]
call fcn.00431275
test eax, eax
je 0x476666
lea eax, [edx - 1]
push eax
lea ecx, [ebp - 0x154]
call fcn.00425195
push 0x410eac
lea ecx, [ebp - 0x154]
call fcn.004338e0
test byte [0x4a2fc1], 8
je 0x476691
push dword [ebp - 0x150]
mov edx, 0x4114f0
mov ecx, edi
call fcn.00479376
xor edx, edx
push ecx
mov ecx, dword [ebp - 0x150]
inc edx
call fcn.004405e0
test eax, eax
jne 0x476705
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x91
jne 0x4766c9
push ecx
mov ecx, dword [ebp - 0x150]
xor edx, edx
call fcn.004405e0
test eax, eax
jne 0x476705
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
je 0x476705
cmp eax, 2
je 0x476705
cmp eax, 3
je 0x476705
test eax, eax
jg 0x4766df
mov esi, eax
jmp 0x4766e8
movzx esi, ax
or esi, 0x80070000
push dword [ebp - 0x150]
push 0x410ecc
push esi
push ebx
push 0x65a
push dword [ebp + 4]
call fcn.0047857a
add esp, 0x18
call fcn.0041c828
test al, al
je 0x476803
call dword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetLogicalDrives]
mov edx, eax
xor edi, edi
mov dword [ebp - 0x13ec], edx
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test edx, eax
je 0x4767f9
lea eax, [edi + 0x41]
movzx ebx, ax
mov ecx, ebx
call fcn.00441ca8
cmp eax, 3
jne 0x4767f3
push 0x40c3d8
lea ecx, [ebp - 0x154]
call fcn.00433763
push 0
lea ecx, [ebp - 0x154]
call fcn.00434f80
push 0x4066b0
lea ecx, [ebp - 0x154]
mov word [eax], bx
call fcn.004338e0
xor edx, edx
push ecx
mov ecx, dword [ebp - 0x150]
inc edx
call fcn.004405e0
test eax, eax
jne 0x4767f3
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
cmp eax, 0x91
jne 0x4767af
push ecx
mov ecx, dword [ebp - 0x150]
xor edx, edx
call fcn.004405e0
test eax, eax
jne 0x4767f3
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
je 0x4767f3
cmp eax, 2
je 0x4767f3
cmp eax, 3
je 0x4767f3
test esi, esi
js 0x4767f3
test eax, eax
jg 0x4767c9
mov esi, eax
jmp 0x4767d2
movzx esi, ax
or esi, 0x80070000
push dword [ebp - 0x150]
push 0x410ee0
push esi
push 0x406418
push 0x679
push dword [ebp + 4]
call fcn.0047857a
add esp, 0x18
mov edx, dword [ebp - 0x13ec]
inc edi
cmp edi, 0x1a
jb 0x476722
xor ebx, ebx
mov dword [ebp - 0xb0], 0x410efc
cmp dword [ebp - 0x13f0], 3
mov dword [ebp - 0xac], 0x410f18
sete bl
mov dword [ebp - 0xa8], 0x410f34
add ebx, 7
mov dword [ebp - 0xa4], 0x410f48
xor edi, edi
mov dword [ebp - 0xa0], 0x410f58
mov dword [ebp - 0x9c], 0x410f98
mov dword [ebp - 0x98], 0x406718
mov dword [ebp - 0x94], 0x410fb0
mov dword [ebp - 0x13ec], edi
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x1f4], 0x401648
call fcn.004233d4
and dword [ebp - 0x15c], 0
and dword [ebp - 0x158], 0
mov dword [ebp - 0x1f4], 0x401620
push 0xf003f
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1f4]
mov eax, dword [ebp + edi*4 - 0xb0]
push eax
mov dword [ebp - 0x13f4], eax
lea eax, [ebp - 0x294]
push eax
call fcn.004358d4
mov edi, eax
test edi, edi
js 0x47691a
lea eax, [ebp - 0x13f0]
mov dword [ebp - 0x13f0], pe_nt_image_headers32
push eax
lea eax, [ebp - 0xdd4]
push eax
push 0
lea ecx, [ebp - 0x1f4]
call fcn.0043fdb1
test eax, eax
je 0x47692d
lea eax, [ebp - 0xdd4]
push eax
lea ecx, [ebp - 0x1f4]
call fcn.0043fc30
test eax, eax
jne 0x4768c6
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x47691a
movzx edi, di
or edi, 0x80070000
mov eax, edi
cmp edi, 0x80070002
je 0x47692b
cmp eax, 0x80070003
jne 0x47692d
xor edi, edi
push dword [ebp - 0x13f4]
push 0x410fe4
push edi
push 0x406418
push 0x6b7
push dword [ebp + 4]
call fcn.004785d6
add esp, 0x18
test esi, esi
js 0x476954
mov esi, edi
lea ecx, [ebp - 0x1f4]
mov byte [ebp - 4], 3
call fcn.004233f9
mov edi, dword [ebp - 0x13ec]
inc edi
mov dword [ebp - 0x13ec], edi
cmp edi, ebx
jb 0x47686a
cmp dword [0x4a2dc0], 0
je 0x476a38
push 0
test esi, esi
js 0x4769c7
lea eax, [ebp - 0xbd4]
push 0x400003f2
push eax
call fcn.0043643d
add esp, 0xc
test byte [0x4a2fc1], 8
je 0x476a38
lea eax, [ebp - 0xc0]
mov edx, 0x4114e0
push eax
push 1
push ecx
mov ecx, 0x4a0818
call fcn.00479253
jmp 0x476a38
push 0x4064b8
lea eax, [ebp - 0x90]
push 0x20
push eax
call fcn.0042f13a
push esi
push 0x40673c
lea eax, [ebp - 0x50]
push 0x20
push eax
call fcn.0042f13a
push 0
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0xbd4]
push 0xc00003f3
push eax
call fcn.0043641f
add esp, 0x34
test byte [0x4a2fc1], 0x80
je 0x476a25
push esi
mov edx, 0x4114d0
mov ecx, 0x4a0818
call fcn.004792a1
mov ecx, dword [ebp + 4]
mov edx, 0x6ce
push esi
push 0x406418
call fcn.00478527
lea ecx, [ebp - 0x294]
call fcn.004233f9
lea eax, [ebp - 0xa98]
mov dword [ebp - 0xaa8], 0x40169c
push eax
lea ecx, [ebp - 0xaa8]
call fcn.00434927
lea eax, [ebp - 0xb2c]
mov ebx, 0x401b08
mov edi, 0x401604
mov dword [ebp - 0xaa8], ebx
push eax
lea ecx, [ebp - 0xb3c]
mov dword [ebp - 0xb3c], edi
call fcn.00434927
lea eax, [ebp - 0xbc0]
mov dword [ebp - 0xb3c], ebx
push eax
lea ecx, [ebp - 0xbd0]
mov dword [ebp - 0xbd0], edi
call fcn.00434927
lea eax, [ebp - 0x144]
mov dword [ebp - 0xbd0], ebx
push eax
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x154], edi
call fcn.00434927
mov eax, esi
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.0042bef0
leave
ret