Function at 0x403490
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7a4
push esi
push edi
mov eax, 0x48e99c
call fcn.0047eb88
push edi
push ebp
push esi
or edi, 0xffffffff
inc edi
call fcn.0040391a
dec edx
dec edx
pop edx
jp 0x40346a
cld
sti
xchg ebp, eax
arpl dx, sp
test dword [edi + 0x4c], esp
lodsb al, byte [esi]
mov dl, dh
pop edi
sbb al, 0xd4
dec edi
shl ebx, 1
pop ds
shl byte [ecx + edx*4 - 0x55], 0xfb
dec edi
jns 0x403505
stosd dword es:[edi], eax
popfd
or bl, byte [ebp - 0x1811174c]
invalid
mov ebx, 0x447536
mov ebx, 0x4a5eee
pop ebx
lea ecx, [ebx + edx + 0x44fbde]
sub ecx, edx
mov ecx, 0x4450f6
mov ecx, 0x4adeae
lea ecx, [edx + 0x85c5b]
sub ecx, edx
lea ebx, [ebx + ecx*2 + 0x31]
lea ebx, [ebx + ebp - 0x31]
sub ebx, ebp
sub ebx, ecx
xor ecx, 0x1df07cc
push dword [ebx]
xor ecx, dword [esp + 8]
xor ecx, dword [esp + 0x28]
pop ecx
and ecx, 0xff
add ebx, dword [esp + 0x38]
rcr ebx, 0x43
ror ebx, 0x3b
mov ebx, 0x433e2e
lea ebx, [edx + 0xb8e7b08]
sub ebx, edx
lea ecx, [ecx + eax - 0xb8e7bf0]
sub ecx, eax
lea ecx, [ecx + ebx]
test ecx, ecx
je 0x40359f
mov ebp, 0x44a2fe
mov ebp, 0x41a436
xor esi, 0xacc602d8
rol edi, 0xf9
xor edi, dword [esp + 0x28]
push dword [esp + 0xc]
jmp 0x40359f
pop ecx
pop ebx
jmp 0x4035f6
mov byte [ebp - 0x3d], 0x43
mov byte [ebp - 0x3d], 0x43
jmp 0x403908
mov word [ebp - 0x2c], 0x14
lea eax, [ebp - 4]
call fcn.004019a4
push eax
inc dword [ebp - 0x20]
mov edx, 0x48e3d2
lea eax, [ebp - 0xc]
call fcn.00488b78
inc dword [ebp - 0x20]
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 8]
mov dl, byte [ebp - 0x3d]
call fcn.00488bec
inc dword [ebp - 0x20]
pop edx
pop ecx
call fcn.00488cc0
dec dword [ebp - 0x20]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00488c7c
dec dword [ebp - 0x20]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00488c7c
mov word [ebp - 0x2c], 8
mov esi, 0x48b56d
lea edi, [ebp - 0x150]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
movsx eax, byte [ebp - 0x3d]
push eax
push 0x48e3d5
lea edx, [ebp - 0x150]
push edx
call fcn.00480484
add esp, 0xc
lea eax, [ebp - 4]
call fcn.004019d4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
je 0x4036cc
lea eax, [ebp - 4]
call fcn.004019d4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 2
je 0x4036cc
lea eax, [ebp - 4]
call fcn.004019d4
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 5
jne 0x40383b
mov esi, 0x48b671
lea edi, [ebp - 0x550]
mov ecx, 0x100
rep movsd dword es:[edi], dword [esi]
push 0x400
lea eax, [ebp - 0x550]
push eax
lea edx, [ebp - 0x150]
push edx
call sub.kernel32.dll_QueryDosDeviceA
push 0x19
push 0x48e3d9
lea ecx, [ebp - 0x550]
push ecx
call fcn.0047e9d0
add esp, 0xc
test eax, eax
jne 0x403826
cmp byte [ebp + 8], 0
je 0x403826
mov esi, 0x48ba71
lea edi, [ebp - 0x654]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x654]
push eax
mov dl, byte [ebp - 0x150]
push edx
call fcn.00402518
add esp, 8
mov esi, 0x48bb75
lea edi, [ebp - 0x758]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
movsx eax, byte [ebp - 0x3d]
push eax
push 0x48e3f3
lea edx, [ebp - 0x758]
push edx
call fcn.00480484
add esp, 0xc
mov ecx, dword [sym.Project1.exe__Form1]
mov eax, dword [ecx + 0x2f0]
mov eax, dword [eax + 0x22c]
call fcn.004725f8
mov edx, dword [sym.Project1.exe__Form1]
mov ecx, dword [edx + 0x2f0]
mov eax, dword [ecx + 0x22c]
call fcn.00472488
mov dword [ebp - 0x44], eax
mov word [ebp - 0x2c], 0x20
lea edx, [ebp - 0x758]
lea eax, [ebp - 0x10]
call fcn.00488b78
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp - 0x44]
call fcn.00471f28
dec dword [ebp - 0x20]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00488c7c
mov ecx, dword [ebp - 0x44]
add ecx, 8
mov dword [ebp - 0x48], ecx
mov word [ebp - 0x2c], 0x2c
lea edx, [ebp - 0x654]
lea eax, [ebp - 0x14]
call fcn.00488b78
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x38]
dec dword [ebp - 0x20]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00488c7c
mov ecx, dword [sym.Project1.exe__Form1]
mov eax, dword [ecx + 0x2f0]
mov eax, dword [eax + 0x22c]
call fcn.004727d4
dec dword [ebp - 0x20]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00488c7c
jmp 0x403905
cmp byte [ebp + 8], 0
je 0x4038ef
mov ecx, dword [sym.Project1.exe__Form1]
mov eax, dword [ecx + 0x2f0]
mov eax, dword [eax + 0x22c]
call fcn.004725f8
mov edx, dword [sym.Project1.exe__Form1]
mov ecx, dword [edx + 0x2f0]
mov eax, dword [ecx + 0x22c]
call fcn.00472488
mov dword [ebp - 0x4c], eax
mov word [ebp - 0x2c], 8
mov esi, 0x48bc79
lea edi, [ebp - 0x85c]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
movsx eax, byte [ebp - 0x3d]
push eax
push 0x48e401
lea edx, [ebp - 0x85c]
push edx
call fcn.00480484
add esp, 0xc
mov word [ebp - 0x2c], 0x38
lea edx, [ebp - 0x85c]
lea eax, [ebp - 0x18]
call fcn.00488b78
inc dword [ebp - 0x20]
mov edx, dword [eax]
mov eax, dword [ebp - 0x4c]
call fcn.00471f28
dec dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00488c7c
mov ecx, dword [sym.Project1.exe__Form1]
mov eax, dword [ecx + 0x2f0]
mov eax, dword [eax + 0x22c]
call fcn.004727d4
dec dword [ebp - 0x20]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00488c7c
mov word [ebp - 0x2c], 0
inc byte [ebp - 0x3d]
movsx ecx, byte [ebp - 0x3d]
cmp ecx, 0x5a
jle 0x403603
jmp 0x40396e
jmp 0x4039a5
xor eax, eax
mov edx, dword [ebp - 0x3c]
mov dword fs:[0], edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret