Function at 0x409340
Capabilities:
Get disk information

Disassembly:
mov al, byte [0x50884c]
sub esp, 0x100
test al, 1
je 0x40938a
push 0x3fe
push 0
push 0
call fcn.004091c0
push 0x407
push 1
push 0
call fcn.00409230
push 0x400
push 2
push 0
call fcn.004091c0
push 0x401
push 3
push 0
call fcn.004091c0
add esp, 0x30
test byte [0x50884c], 2
je 0x4093dc
push 0x408
push 0
push 1
call fcn.004091c0
push 0x409
push 1
push 1
call fcn.004091c0
push 0x40b
push 2
push 1
call fcn.004091c0
push 0x40a
push 3
push 1
call fcn.00409230
push 0x3fd
push 4
push 1
call fcn.004092f0
add esp, 0x3c
test byte [0x50884c], 4
je 0x40943c
push 0x419
push 0
push 2
call fcn.00409230
push 0x40d
push 1
push 2
call fcn.004092f0
push 0x40e
push 2
push 2
call fcn.004092f0
push 0x40f
push 3
push 2
call fcn.004092f0
push 0x410
push 4
push 2
call fcn.004092f0
push 0x411
push 5
push 2
call fcn.004092f0
add esp, 0x48
test byte [0x50884c], 8
je 0x409480
push 0x40e
push 0
push 3
call fcn.00409230
push 0x40f
push 1
push 3
call fcn.004092f0
push 0x410
push 2
push 3
call fcn.00409230
push 0x411
push 3
push 3
call fcn.004092f0
add esp, 0x30
test byte [0x50884c], 0x10
push ebx
push ebp
mov ebp, dword [sym.imp.user32.dll_SendDlgItemMessageA]
push esi
push edi
je 0x4095df
mov eax, dword [0x465ed4]
push 0
push 0
push 0x14b
push 0x412
push eax
call ebp
mov ecx, dword [0x465ed4]
push 0x45f3e8
push 0
push 0x143
push 0x412
push ecx
call ebp
xor ebx, ebx
mov dl, bl
lea eax, [esp + 0x10]
add dl, 0x41
push eax
mov byte [esp + 0x14], dl
mov byte [esp + 0x15], 0x3a
mov byte [esp + 0x16], 0x5c
mov byte [esp + 0x17], 0
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
cmp eax, 6
mov byte [esp + 0x12], 0
ja case.default.0x4094f6
jmp dword [eax*4 + 0x409920]
lea edx, [esp + 0x10]
mov edi, 0x45f3d8
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f3c4
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f3ac
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f39c
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f384
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f37c
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f370
jmp 0x409553
lea edx, [esp + 0x10]
mov edi, 0x45f360
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x10]
push eax
push 0
mov ecx, edx
and ecx, 3
push 0x143
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x465ed4]
push 0x412
push ecx
call ebp
inc ebx
cmp ebx, 0x1a
jl 0x4094c9
mov edx, dword [0x467078]
mov eax, dword [0x5087a0]
mov ecx, dword [edx + eax*4]
mov edx, dword [0x465ed4]
push 0
push ecx
push 0x14e
push 0x412
push edx
call ebp
push 0x413
push 1
push 4
call fcn.004092f0
push 0x414
push 2
push 4
call fcn.004092f0
add esp, 0x18
test byte [0x50884c], 0x20
je 0x409615
push 0x415
push 0
push 5
call fcn.00409230
push 0x408
push 1
push 5
call fcn.00409230
push 0x416
push 2
push 5
call fcn.004092f0
add esp, 0x24
test byte [0x50884c], 0x40
je 0x40963d
push 0x417
push 0
push 6
call fcn.00409230
push 0x418
push 1
push 6
call fcn.00409230
add esp, 0x18
test byte [0x50884c], 0x80
je 0x40968f
push 0x456
push 0
push 7
call fcn.00409230
push 0x457
push 1
push 7
call fcn.004092f0
push 0x458
push 2
push 7
call fcn.00409230
push 0x459
push 3
push 7
call fcn.004092f0
push 0x45a
push 4
push 7
call fcn.00409230
add esp, 0x3c
mov eax, dword [0x50884c]
test ah, 1
je 0x409804
push 0x45b
push 0
push 8
call fcn.004092f0
push 0x45c
push 1
push 8
call fcn.004092f0
mov eax, dword [0x465ee4]
add esp, 0x18
push 0
push 0
push 0x14b
push 0x45d
push eax
call ebp
mov ecx, dword [0x465ee4]
push 0x45f3e8
push 0
push 0x143
push 0x45d
push ecx
call ebp
xor ebx, ebx
mov dl, bl
lea eax, [esp + 0x10]
add dl, 0x41
push eax
mov byte [esp + 0x14], dl
mov byte [esp + 0x15], 0x3a
mov byte [esp + 0x16], 0x5c
mov byte [esp + 0x17], 0
call dword [sym.imp.kernel32.dll_GetDriveTypeA]
cmp eax, 6
mov byte [esp + 0x12], 0
ja case.default.0x40971b
jmp dword [eax*4 + 0x40993c]
lea edx, [esp + 0x10]
mov edi, 0x45f3d8
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f3c4
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f3ac
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f39c
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f384
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f37c
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f370
jmp 0x409778
lea edx, [esp + 0x10]
mov edi, 0x45f360
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x10]
push eax
push 0
mov ecx, edx
and ecx, 3
push 0x143
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x465ee4]
push 0x45d
push ecx
call ebp
inc ebx
cmp ebx, 0x1a
jl 0x4096ee
mov edx, dword [0x467078]
mov eax, dword [0x508808]
mov ecx, dword [edx + eax*4]
mov edx, dword [0x465ee4]
push 0
push ecx
push 0x14e
push 0x45d
push edx
call ebp
push 0x45e
push 3
push 8
call fcn.00409230
push 0x45f
push 4
push 8
call fcn.004092f0
add esp, 0x18
mov eax, dword [0x50884c]
test ah, 2
je 0x409857
push 0x460
push 0
push 9
call fcn.004092f0
push 0x461
push 1
push 9
call fcn.004092f0
push 0x462
push 2
push 9
call fcn.00409230
push 0x463
push 3
push 9
call fcn.004092f0
push 0x464
push 4
push 9
call fcn.00409230
add esp, 0x3c
mov eax, dword [0x50884c]
test ah, 4
je 0x4098a1
push 0x463
push 0
push 0xa
call fcn.00409230
push 0x464
push 1
push 0xa
call fcn.00409230
push 0x465
push 2
push 0xa
call fcn.004092f0
push 0x466
push 3
push 0xa
call fcn.004092f0
add esp, 0x30
call fcn.00409050
test byte [0x528a88], 1
jne 0x409913
mov eax, dword [0x465ee4]
mov esi, dword [sym.imp.user32.dll_GetDlgItem]
push 0
push 0x427
push eax
call esi
mov edi, dword [sym.imp.user32.dll_EnableWindow]
push eax
call edi
mov ecx, dword [0x465ee4]
push 0
push 0x428
push ecx
call esi
push eax
call edi
mov edx, dword [0x465ee4]
push 0
push 0x429
push edx
call esi
push eax
call edi
mov eax, dword [0x465ee4]
push 0
push 0x45d
push eax
call esi
push eax
call edi
mov ecx, dword [0x465ee4]
push 0
push 0x45e
push ecx
call esi
push eax
call edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret