Function at 0x417864
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffc74
mov dword [ebp - 0x4c], eax
mov eax, 0x6ee894
call fcn.0066ce04
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x338]
mov dword [ebp - 0x50], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
call fcn.00654460
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
call fcn.00653fbc
mov word [ebp - 0x38], 8
push 0x55f5
call fcn.00402a64
pop ecx
mov edx, eax
lea eax, [ebp - 4]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
xor edx, edx
call fcn.00654050
mov dword [ebp - 0x54], eax
mov dword [0x6e7624], eax
dec dword [ebp - 0x2c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [0x6e70cc]
test ecx, ecx
je 0x417914
mov edx, 0x3d
mov eax, dword [0x6e7624]
call fcn.00652f18
mov edx, 0x3d
mov eax, dword [0x6e7624]
call fcn.00652f70
jmp 0x417932
mov edx, 1
mov eax, dword [0x6e7624]
call fcn.00652f18
mov edx, 1
mov eax, dword [0x6e7624]
call fcn.00652f70
xor edx, edx
mov eax, dword [ebp - 0x54]
call fcn.00652d78
mov ecx, dword [0x6e711c]
test ecx, ecx
je 0x417ad4
push 0x822d44
lea eax, [ebp - 0x184]
push eax
call fcn.0066c9ec
add esp, 8
lea edx, [ebp - 0x184]
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x417ad4
push 0x120
call fcn.0066c210
pop ecx
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
test eax, eax
jne 0x4179bc
push str.Memory_allocation_error_
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
call fcn.0046279c
add esp, 8
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
call fcn.006544ac
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x4182de
push 0x120
push 0
push dword [ebp - 0x78]
call fcn.0066c86c
add esp, 0xc
mov ecx, dword [ebp - 0x78]
mov dword [ecx], 5
mov eax, dword [ebp - 0x64]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 4], dl
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
cmp edx, 0x61
jl 0x417a01
mov ecx, dword [ebp - 0x78]
movsx eax, byte [ecx + 4]
cmp eax, 0x7a
jg 0x417a01
mov edx, dword [ebp - 0x78]
add byte [edx + 4], 0xe0
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x78]
add ecx, 0x1c
push ecx
call fcn.0066c9ec
add esp, 8
mov word [ebp - 0x38], 0x14
lea eax, [ebp - 8]
mov edx, dword [0x825d68]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x54]
call fcn.00654040
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x2c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0067d0a0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x58]
call fcn.00652d78
mov word [ebp - 0x38], 0x20
mov edx, 0x6eb147
lea eax, [ebp - 0xc]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x58]
call fcn.00654040
dec dword [ebp - 0x2c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [0x6e70cc]
test ecx, ecx
je 0x417aba
mov edx, 0x44
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x44
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x417ad4
mov edx, 6
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 6
mov eax, dword [ebp - 0x58]
call fcn.00652f70
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
push 1
call fcn.00462624
add esp, 8
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x417c60
push 0x120
call fcn.0066c210
pop ecx
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
test ecx, ecx
jne 0x417b48
push 0x59fa
call fcn.00402a64
pop ecx
push eax
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
call fcn.0046279c
add esp, 8
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
call fcn.006544ac
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x4182de
push 0x120
push 0
push dword [ebp - 0x78]
call fcn.0066c86c
add esp, 0xc
mov ecx, dword [ebp - 0x78]
mov dword [ecx], 5
mov eax, dword [ebp - 0x64]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 4], dl
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
cmp edx, 0x61
jl 0x417b8d
mov ecx, dword [ebp - 0x78]
movsx eax, byte [ecx + 4]
cmp eax, 0x7a
jg 0x417b8d
mov edx, dword [ebp - 0x78]
add byte [edx + 4], 0xe0
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x78]
add ecx, 0x1c
push ecx
call fcn.0066c9ec
add esp, 8
mov word [ebp - 0x38], 0x2c
lea eax, [ebp - 0x10]
mov edx, dword [0x825d64]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x54]
call fcn.00654040
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0067d0a0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x58]
call fcn.00652d78
mov word [ebp - 0x38], 0x38
mov edx, 0x6eb148
lea eax, [ebp - 0x14]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x58]
call fcn.00654040
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [0x6e70cc]
test ecx, ecx
je 0x417c46
mov edx, 0x3e
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x3e
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x417c60
mov edx, 0x1c
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x1c
mov eax, dword [ebp - 0x58]
call fcn.00652f70
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
push 0
call fcn.00462624
add esp, 8
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x64]
test edx, edx
je 0x417dec
push 0x120
call fcn.0066c210
pop ecx
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
test ecx, ecx
jne 0x417cd4
push 0x59fa
call fcn.00402a64
pop ecx
push eax
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
call fcn.0046279c
add esp, 8
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
call fcn.006544ac
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x4182de
push 0x120
push 0
push dword [ebp - 0x78]
call fcn.0066c86c
add esp, 0xc
mov ecx, dword [ebp - 0x78]
mov dword [ecx], 5
mov eax, dword [ebp - 0x64]
mov dl, byte [eax]
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 4], dl
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
cmp edx, 0x61
jl 0x417d19
mov ecx, dword [ebp - 0x78]
movsx eax, byte [ecx + 4]
cmp eax, 0x7a
jg 0x417d19
mov edx, dword [ebp - 0x78]
add byte [edx + 4], 0xe0
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x78]
add ecx, 0x1c
push ecx
call fcn.0066c9ec
add esp, 8
mov word [ebp - 0x38], 0x44
lea eax, [ebp - 0x18]
mov edx, dword [0x825d6c]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x54]
call fcn.00654040
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0067d0a0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x58]
call fcn.00652d78
mov word [ebp - 0x38], 0x50
mov edx, 0x6eb149
lea eax, [ebp - 0x1c]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x58]
call fcn.00654040
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [0x6e70cc]
test ecx, ecx
je 0x417dd2
mov edx, 0x3f
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x3f
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x417dec
mov edx, 0x1d
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x1d
mov eax, dword [ebp - 0x58]
call fcn.00652f70
push 0x104
push 0
lea ecx, [ebp - 0x184]
push ecx
call fcn.0066c86c
add esp, 0xc
lea eax, [ebp - 0x184]
push eax
push 0x104
call sub.KERNEL32.DLL_GetLogicalDriveStringsA
mov dword [ebp - 0x5c], eax
xor edx, edx
mov dword [0x6e70ec], edx
mov ecx, dword [0x821b54]
mov eax, dword [ecx]
mov dx, 0xfff5
call fcn.0062cae8
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x5c]
cmp eax, edx
jge 0x418275
lea ecx, [ebp - 0x184]
mov eax, dword [ebp - 0x60]
add ecx, eax
push ecx
call sub.KERNEL32.DLL_GetDriveTypeA
mov dword [ebp - 0x70], eax
mov edx, dword [ebp - 0x70]
cmp edx, 2
jne 0x417ebc
mov ecx, dword [ebp - 0x60]
movsx eax, byte [ebp + ecx - 0x184]
cmp eax, 0x41
je 0x417e7e
mov edx, dword [ebp - 0x60]
movsx ecx, byte [ebp + edx - 0x184]
cmp ecx, 0x61
jne 0x417e92
mov eax, dword [0x6e70ec]
dec eax
jge 0x417ebc
mov dword [0x6e70ec], 1
jmp 0x417ebc
mov edx, dword [ebp - 0x60]
movsx ecx, byte [ebp + edx - 0x184]
cmp ecx, 0x42
je 0x417eb2
mov eax, dword [ebp - 0x60]
movsx edx, byte [ebp + eax - 0x184]
cmp edx, 0x62
jne 0x417ebc
mov dword [0x6e70ec], 2
mov ecx, dword [ebp - 0x70]
cmp ecx, 3
je 0x417f30
mov eax, dword [ebp - 0x70]
cmp eax, 5
je 0x417f30
mov edx, dword [ebp - 0x70]
cmp edx, 4
je 0x417f30
mov ecx, dword [ebp - 0x70]
cmp ecx, 2
jne 0x418256
mov eax, dword [ebp - 0x60]
movsx edx, byte [ebp + eax - 0x184]
cmp edx, 0x41
je 0x418256
mov ecx, dword [ebp - 0x60]
movsx eax, byte [ebp + ecx - 0x184]
cmp eax, 0x61
je 0x418256
mov edx, dword [ebp - 0x60]
movsx ecx, byte [ebp + edx - 0x184]
cmp ecx, 0x42
je 0x418256
mov eax, dword [ebp - 0x60]
movsx edx, byte [ebp + eax - 0x184]
cmp edx, 0x62
je 0x418256
push 0x120
call fcn.0066c210
pop ecx
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp - 0x78]
test ecx, ecx
jne 0x417f81
push 0x59fa
call fcn.00402a64
pop ecx
push eax
mov eax, dword [sym.UltraISO.exe__frmMain]
call fcn.00640730
push eax
call fcn.0046279c
add esp, 8
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
call fcn.006544ac
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
jmp 0x4182de
push 0x120
push 0
push dword [ebp - 0x78]
call fcn.0066c86c
add esp, 0xc
mov ecx, dword [ebp - 0x70]
add ecx, 0xfffffffe
sub ecx, 2
jb 0x417fa5
je 0x417fe3
dec ecx
je 0x417fc3
jmp 0x418001
push dword [0x8265b8]
lea eax, [ebp - 0x38c]
push eax
call fcn.0066c9ec
add esp, 8
mov edx, dword [ebp - 0x78]
xor ecx, ecx
mov dword [edx], ecx
jmp 0x418001
push dword [0x8265bc]
lea eax, [ebp - 0x38c]
push eax
call fcn.0066c9ec
add esp, 8
mov edx, dword [ebp - 0x78]
mov dword [edx], 1
jmp 0x418001
push dword [0x8265c0]
lea ecx, [ebp - 0x38c]
push ecx
call fcn.0066c9ec
add esp, 8
mov eax, dword [ebp - 0x78]
mov dword [eax], 2
mov edx, dword [ebp - 0x70]
cmp edx, 4
jne 0x418043
mov dword [ebp - 0x68], 0x104
mov ecx, dword [ebp - 0x60]
movsx eax, byte [ebp + ecx - 0x184]
push eax
push 0x6eb14a
lea edx, [ebp - 0x7b]
push edx
call fcn.00670e94
add esp, 0xc
lea ecx, [ebp - 0x68]
push ecx
lea eax, [ebp - 0x38c]
push eax
lea edx, [ebp - 0x7b]
push edx
call sub.MPR.DLL_WNetGetConnectionA
jmp 0x418080
push 1
call sub.KERNEL32.DLL_SetErrorMode
mov dword [ebp - 0x80], eax
push 0
push 0
lea ecx, [ebp - 0x6c]
push ecx
lea eax, [ebp - 0x68]
push eax
push 0
push 0x104
lea edx, [ebp - 0x38c]
push edx
lea ecx, [ebp - 0x184]
mov eax, dword [ebp - 0x60]
add ecx, eax
push ecx
call sub.KERNEL32.DLL_GetVolumeInformationA
push dword [ebp - 0x80]
call sub.KERNEL32.DLL_SetErrorMode
mov edx, dword [ebp - 0x60]
mov cl, byte [ebp + edx - 0x184]
mov eax, dword [ebp - 0x78]
mov byte [eax + 4], cl
mov edx, dword [ebp - 0x78]
movsx ecx, byte [edx + 4]
cmp ecx, 0x61
jl 0x4180af
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
cmp edx, 0x7a
jg 0x4180af
mov ecx, dword [ebp - 0x78]
add byte [ecx + 4], 0xe0
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
push edx
push 0x6eb14e
mov ecx, dword [ebp - 0x78]
add ecx, 0x1c
push ecx
call fcn.00670e94
add esp, 0xc
mov eax, dword [ebp - 0x78]
movsx edx, byte [eax + 4]
push edx
lea ecx, [ebp - 0x38c]
push ecx
push 0x6eb152
lea eax, [ebp - 0x288]
push eax
call fcn.00670e94
add esp, 0x10
mov word [ebp - 0x38], 0x5c
lea edx, [ebp - 0x288]
lea eax, [ebp - 0x20]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0x26c]
mov edx, dword [ebp - 0x54]
call fcn.00654040
mov dword [ebp - 0x58], eax
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.0067d0a0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x58]
call fcn.00652d78
mov ecx, dword [ebp - 0x70]
add ecx, 0xfffffffe
sub ecx, 2
jb 0x41814f
je 0x4181d8
dec ecx
je 0x418196
jmp 0x418218
mov eax, dword [0x6e70cc]
test eax, eax
je 0x418177
mov edx, 0x40
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x40
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x418218
mov edx, 3
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 3
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x418218
mov edx, dword [0x6e70cc]
test edx, edx
je 0x4181bc
mov edx, 0x41
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x41
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x418218
mov edx, 4
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 4
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x418218
mov ecx, dword [0x6e70cc]
test ecx, ecx
je 0x4181fe
mov edx, 0x42
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 0x42
mov eax, dword [ebp - 0x58]
call fcn.00652f70
jmp 0x418218
mov edx, 5
mov eax, dword [ebp - 0x58]
call fcn.00652f18
mov edx, 5
mov eax, dword [ebp - 0x58]
call fcn.00652f70
mov word [ebp - 0x38], 0x68
mov edx, 0x6eb15a
lea eax, [ebp - 0x24]
call fcn.0067ceb4
inc dword [ebp - 0x2c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 0x58]
call fcn.00654040
dec dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.0067d0a0
jmp 0x418256
inc dword [ebp - 0x60]
mov ecx, dword [ebp - 0x60]
mov al, byte [ebp + ecx - 0x184]
test al, al
jne 0x418253
inc dword [ebp - 0x60]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
cmp edx, ecx
jl 0x417e42
mov eax, dword [ebp - 0x50]
mov eax, dword [eax + 0x26c]
call fcn.006544ac
mov edx, dword [0x821b54]
mov eax, dword [edx]
xor edx, edx
call fcn.0062cae8
mov eax, dword [ebp - 0x54]
call fcn.0065323c
test al, al
jne 0x4182a8
xor edx, edx
mov eax, dword [ebp - 0x54]
call fcn.00653224
mov eax, dword [ebp - 0x54]
call fcn.00653588
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
call fcn.0065323c
test al, al
jne 0x4182c9
xor edx, edx
mov eax, dword [ebp - 0x54]
call fcn.00653224
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
call fcn.006555f0
mov edx, dword [ebp - 0x48]
mov dword fs:[0], edx
mov esp, ebp
pop ebp
ret