Function at 0x47da94
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x47de5c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4b0964]
mov eax, dword [eax]
call fcn.00465758
mov eax, dword [ebx + 0x194]
call fcn.00404ca0
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0xc], eax
mov esi, 1
mov dword [ebp - 0x10], 1
jmp 0x47ddcc
cmp dword [ebp - 0xc], 3
je 0x47db06
cmp dword [ebp - 0xc], 4
jne 0x47db12
mov byte [ebx + 0x29a], 0
jmp 0x47dded
cmp byte [ebx + 0x172], 0
je 0x47db33
push 1
mov ecx, 0x2b11
mov dl, 1
mov eax, dword [0x478498]
call fcn.0047d7d0
call fcn.004041ec
cmp dword [ebx + 0x19d], 0
jge 0x47db5a
lea eax, [ebp - 4]
push eax
mov ecx, 0x47de74
mov edx, 0x2b19
mov eax, ebx
call fcn.0047a89c
or dword [ebp - 0x10], 0x10
jmp 0x47dcf5
cmp dword [ebp - 8], 0
je 0x47dcb0
mov eax, dword [ebx + 0x178]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x17c]
mov dword [ebp - 0x14], eax
cmp dword [ebx + 0x1d7], 0
je 0x47dba7
mov eax, dword [ebx + 0x1d7]
cdq
cmp edx, dword [ebx + 0x17c]
jne 0x47db98
cmp eax, dword [ebx + 0x178]
jae 0x47dba7
jmp 0x47db9a
jge 0x47dba7
mov eax, dword [ebx + 0x1d7]
cdq
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebx + 0x19d]
mov dword [ebx + 0x1a1], eax
cmp dword [ebp - 0x14], 0
jne 0x47dbc1
cmp dword [ebp - 0x18], 0
jbe 0x47dc23
jmp 0x47dbc3
jle 0x47dc23
mov eax, dword [ebx + 0x1a5]
add eax, 4
add eax, dword [ebx + 0x1d3]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fild qword [ebp - 0x18]
fdivp st(1)
call fcn.00402be4
push edx
push eax
mov eax, dword [ebx + 0x1a1]
cdq
cmp edx, dword [esp + 4]
jne 0x47dbfa
cmp eax, dword [esp]
pop edx
pop eax
jae 0x47dc23
jmp 0x47dbfe
pop edx
pop eax
jge 0x47dc23
mov eax, dword [ebx + 0x1a5]
add eax, 4
add eax, dword [ebx + 0x1d3]
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fild qword [ebp - 0x18]
fdivp st(1)
call fcn.00402be4
mov dword [ebx + 0x1a1], eax
cmp dword [ebp - 0x14], 0
jne 0x47dc31
cmp dword [ebp - 0x18], 0
jbe 0x47dc7a
jmp 0x47dc33
jle 0x47dc7a
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x47de9c
mov edx, 0x2b1a
mov eax, ebx
call fcn.0047a89c
mov eax, dword [ebp - 0x24]
mov edx, dword [ebx + 0x19d]
inc edx
mov dword [ebp - 0x34], edx
mov byte [ebp - 0x30], 0
mov edx, dword [ebx + 0x1a1]
inc edx
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x28], 0
lea edx, [ebp - 0x34]
mov ecx, 1
call fcn.0040a218
jmp 0x47dcf5
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x47decc
mov edx, 0x2b26
mov eax, ebx
call fcn.0047a89c
mov eax, dword [ebp - 0x38]
mov edx, dword [ebx + 0x19d]
inc edx
mov dword [ebp - 0x40], edx
mov byte [ebp - 0x3c], 0
lea edx, [ebp - 0x40]
xor ecx, ecx
call fcn.0040a218
jmp 0x47dcf5
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x47de9c
mov edx, 0x2b1a
mov eax, ebx
call fcn.0047a89c
mov eax, dword [ebp - 0x44]
mov edx, dword [ebx + 0x19d]
inc edx
mov dword [ebp - 0x34], edx
mov byte [ebp - 0x30], 0
mov edx, dword [ebx + 0x1a1]
inc edx
mov dword [ebp - 0x2c], edx
mov byte [ebp - 0x28], 0
lea edx, [ebp - 0x34]
mov ecx, 1
call fcn.0040a218
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4c]
push eax
mov ecx, 0x47def4
mov edx, 0x2b1b
mov eax, ebx
call fcn.0047a89c
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebx + 0x194]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea edx, [ebp - 0x40]
xor ecx, ecx
pop eax
call fcn.0040a218
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 4]
call fcn.00404aa8
cmp word [ebx + 0x29d], 0
je 0x47dd95
mov byte [ebp - 0x19], 0
mov eax, dword [ebx + 0x1a1]
inc eax
push eax
lea eax, [ebp - 0x50]
push eax
mov ecx, 1
mov edx, 1
mov eax, dword [ebx + 0x194]
call fcn.00404d00
mov eax, dword [ebp - 0x50]
push eax
lea eax, [ebp - 0x19]
push eax
mov ecx, dword [ebx + 0x19d]
inc ecx
mov edx, ebx
mov eax, dword [ebx + 0x29f]
call dword [ebx + 0x29b]
cmp byte [ebp - 0x19], 0
je 0x47dd8e
mov esi, 3
jmp 0x47ddc5
mov esi, 1
jmp 0x47ddc5
mov eax, dword [ebp - 0x10]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x4b0964]
mov eax, dword [eax]
call fcn.00465300
mov eax, dword [ebp - 0x54]
call fcn.00404ca0
push eax
mov eax, dword [ebp - 4]
call fcn.00404ca0
push eax
mov eax, dword [ebx + 0x47]
push eax
call sub.user32.dll_MessageBoxA_1
mov esi, eax
mov byte [ebx + 0x29a], 0
cmp esi, 1
jne 0x47dde0
mov eax, ebx
call fcn.0047d4e8
test al, al
je 0x47dafa
cmp byte [ebx + 0x29a], 0
jne 0x47dafa
cmp esi, 1
je 0x47de0a
push 0
mov ecx, 0x2aff
mov dl, 1
mov eax, dword [0x478498]
call fcn.0047d7d0
call fcn.004041ec
test esi, esi
jne 0x47de26
push 1
mov ecx, 0x2afe
mov dl, 1
mov eax, dword [0x478498]
call fcn.0047d7d0
call fcn.004041ec
mov ebx, dword [ebp - 0xc]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47de63
lea eax, [ebp - 0x54]
mov edx, 5
call fcn.00404804
lea eax, [ebp - 0x38]
call fcn.004047e0
lea eax, [ebp - 0x24]
call fcn.004047e0
lea eax, [ebp - 4]
call fcn.004047e0
ret