Function at 0x4071a1
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [ebp + 0xc]
push ebx
and eax, 7
cmp eax, 2
push esi
push edi
jne 0x407392
mov esi, dword [ebp + 8]
mov al, byte [esi]
mov ecx, dword [0x426be8]
xor ebx, ebx
mov edi, esi
mov dword [ebp + 0xc], ebx
mov byte [ecx], al
jmp 0x4071dd
inc edi
inc eax
mov dword [0x426be8], eax
mov cl, byte [edi]
mov byte [eax], cl
mov eax, dword [0x426be8]
cmp byte [eax], bl
jne 0x4071d2
mov eax, dword [0x426be0]
call fcn.004067f6
neg eax
sbb eax, eax
test dword [0x426bd4], eax
jne 0x40721e
mov al, byte [esi]
mov ecx, dword [0x426bec]
mov byte [ecx], al
jmp 0x407213
inc esi
inc eax
mov dword [0x426bec], eax
mov cl, byte [esi]
mov byte [eax], cl
mov eax, dword [0x426bec]
cmp byte [eax], bl
jne 0x407208
jmp 0x40722a
mov edi, 0x426bec
mov eax, esi
call fcn.004069d3
mov eax, dword [0x426be8]
sub eax, dword [0x426be0]
xor esi, esi
inc esi
cmp eax, 0x101
jle 0x407242
mov dword [ebp + 0xc], esi
push 0x426904
push dword [0x426be4]
call fcn.00407037
test eax, eax
pop ecx
pop ecx
je 0x40731e
cmp dword [0x41a12c], ebx
jne 0x40726e
mov esi, 0x200
jmp 0x407635
cmp dword [ebp + 0xc], ebx
je 0x4072b2
push esi
push 0x41e864
push dword [0x426be0]
call fcn.00401aa5
push eax
push str.checkdir_error:__path_too_long:__s_n
mov esi, 0x41a864
push esi
call fcn.00408233
add esp, 0x14
push eax
push esi
push 0x41a0a0
call dword [fcn.00426aa0]
add esp, 0x10
mov esi, 0x400
jmp 0x407635
push dword [0x426be4]
call fcn.004129c3
cmp eax, 0xffffffff
pop ecx
jne 0x407316
push esi
push 0x41e864
push 0x426968
call fcn.00401aa5
pop ecx
pop ecx
push eax
push 0x420864
push dword [0x426be4]
call fcn.00401aa5
pop ecx
pop ecx
push eax
push str.checkdir_error:__cannot_create__s_n_________________unable_to_process__s._n
mov esi, 0x41a864
push esi
call fcn.00408233
add esp, 0x10
push eax
push esi
push 0x41a0a0
call dword [fcn.00426aa0]
add esp, 0x10
mov esi, 0x300
jmp 0x407635
mov dword [0x426bc0], esi
jmp 0x407363
mov eax, dword [0x42690a]
and ax, 0xf000
cmp ax, 0x4000
je 0x40735a
push esi
push 0x41e864
push 0x426968
call fcn.00401aa5
pop ecx
pop ecx
push eax
push 0x420864
push dword [0x426be4]
call fcn.00401aa5
pop ecx
pop ecx
push eax
push str.checkdir_error:___s_exists_but_is_not_directory_n_________________unable_to_process__s._n
jmp 0x4072ee
cmp dword [ebp + 0xc], ebx
jne 0x407273
mov eax, dword [0x426be8]
mov byte [eax], 0x2f
mov eax, dword [0x426bec]
inc dword [0x426be8]
mov byte [eax], 0x2f
inc dword [0x426bec]
mov eax, dword [0x426bec]
mov byte [eax], bl
mov eax, dword [0x426be8]
mov byte [eax], bl
jmp 0x4076e3
cmp eax, 4
jne 0x4073dd
push dword [0x426be4]
push dword [ebp + 8]
call fcn.0040a640
push dword [0x426be4]
call fcn.00408d1c
push dword [0x426be0]
call fcn.00408d1c
add esp, 0x10
xor ebx, ebx
mov dword [0x426bec], ebx
mov dword [0x426be8], ebx
mov dword [0x426be4], ebx
mov dword [0x426be0], ebx
jmp 0x4076e3
cmp eax, 3
jne 0x4074eb
mov edi, dword [ebp + 8]
mov al, byte [edi]
mov ecx, dword [0x426be8]
mov byte [ecx], al
mov eax, dword [0x426be8]
xor ebx, ebx
cmp byte [eax], bl
mov dword [ebp + 0xc], edi
mov dword [ebp - 4], ebx
je 0x407493
mov esi, 0x41a864
inc dword [ebp + 0xc]
inc eax
mov ecx, eax
sub ecx, dword [0x426be0]
mov dword [0x426be8], eax
cmp ecx, 0x104
jl 0x40747f
dec eax
push 1
mov dword [0x426be8], eax
mov byte [eax], bl
push 0x420864
push dword [0x426be0]
call fcn.00401aa5
pop ecx
pop ecx
push eax
push 0x41e864
push 0x426968
call fcn.00401aa5
pop ecx
pop ecx
push eax
push str.checkdir_warning:__path_too_long__truncating_n____________________s_n____________________s_n
push esi
call fcn.00408233
add esp, 0x10
push eax
push esi
push 0x41a0a0
call dword [fcn.00426aa0]
mov eax, dword [0x426be8]
add esp, 0x10
mov dword [ebp - 4], 0x100
mov ecx, dword [ebp + 0xc]
mov cl, byte [ecx]
mov byte [eax], cl
mov eax, dword [0x426be8]
cmp byte [eax], bl
jne 0x40740d
mov eax, dword [0x41a860]
test byte [eax + 0x18], 0x20
jne 0x4074c3
mov eax, dword [0x426be0]
call fcn.004067f6
neg eax
sbb eax, eax
test dword [0x426bd4], eax
je 0x4074c3
mov eax, dword [ebp + 8]
mov edi, 0x426bec
call fcn.004069d3
jmp 0x4074e3
mov al, byte [edi]
mov ecx, dword [0x426bec]
mov byte [ecx], al
jmp 0x4074da
inc edi
inc eax
mov dword [0x426bec], eax
mov cl, byte [edi]
mov byte [eax], cl
mov eax, dword [0x426bec]
cmp byte [eax], bl
jne 0x4074cf
mov eax, dword [ebp - 4]
jmp 0x4076ec
xor edi, edi
inc edi
cmp eax, edi
jne 0x4076c2
mov eax, dword [0x426bc8]
mov ecx, dword [0x426cfc]
lea eax, [ecx + eax + 1]
push eax
call fcn.00408d0a
xor ebx, ebx
cmp eax, ebx
pop ecx
mov dword [0x426be0], eax
je 0x407542
mov eax, dword [0x426bc8]
mov ecx, dword [0x426cfc]
lea eax, [ecx + eax + 1]
push eax
call fcn.00408d0a
cmp eax, ebx
pop ecx
mov dword [0x426be4], eax
jne 0x40754c
push dword [0x426be0]
call fcn.00408d1c
pop ecx
mov eax, 0xa00
jmp 0x4076ec
mov eax, dword [0x41a860]
test byte [eax + 0x18], 0x20
je 0x407654
cmp dword [0x426bc4], ebx
je 0x407568
mov eax, dword [ebp + 8]
jmp 0x407575
cmp dword [0x426cfc], edi
jle 0x407587
mov eax, dword [0x426bdc]
cmp byte [eax + 1], 0x3a
jne 0x407587
movzx eax, byte [eax]
push eax
call fcn.00409a1b
pop ecx
jmp 0x4075e5
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x108]
push eax
mov esi, 0x104
push esi
push 0x415314
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
cmp eax, esi
jbe 0x4075d4
push edi
push str.checkdir_warning:_current_dir_path_too_long_n
mov esi, 0x41a864
push esi
call fcn.00408233
pop ecx
pop ecx
push eax
push esi
push 0x41a0a0
call dword [fcn.00426aa0]
add esp, 0x10
mov eax, 0x100
jmp 0x4076ec
movzx eax, byte [ebp - 0x108]
sub eax, 0x60
mov dword [0x426bcc], eax
add al, 0x60
mov ecx, dword [0x426be0]
mov byte [ecx], al
mov edx, dword [0x426be0]
movzx eax, byte [edx]
mov ecx, dword [0x41a0dc]
sub eax, 0x60
cmp ecx, ebx
mov dword [0x426bcc], eax
je 0x407630
cmp byte [edx], 0x61
jb 0x407630
cmp ecx, edi
jne 0x40767e
add al, 0x40
mov byte [ebp + 0xc], al
lea eax, [ebp + 0xc]
push eax
mov byte [ebp + 0xd], 0x3a
mov byte [ebp + 0xe], 0x2f
mov byte [ebp + 0xf], bl
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
je 0x40767e
mov esi, 0x1100
push dword [0x426be0]
call fcn.00408d1c
push dword [0x426be4]
call fcn.00408d1c
pop ecx
pop ecx
mov eax, esi
jmp 0x4076ec
cmp dword [0x426bc4], ebx
je 0x40766e
push dword [ebp + 8]
push dword [0x426be0]
call fcn.0040a640
pop ecx
pop ecx
jmp 0x407685
cmp dword [0x426cfc], ebx
jle 0x40767e
push dword [0x426bdc]
jmp 0x40765f
mov eax, dword [0x426be0]
mov byte [eax], bl
mov eax, dword [0x426be0]
mov ecx, dword [0x426be4]
mov dword [0x426be8], eax
mov dword [0x426bec], ecx
mov al, byte [eax]
mov byte [ecx], al
jmp 0x4076b7
inc eax
inc dword [0x426be8]
mov ecx, dword [0x426be8]
mov dword [0x426bec], eax
mov cl, byte [ecx]
mov byte [eax], cl
mov eax, dword [0x426bec]
cmp byte [eax], bl
jne 0x4076a1
jmp 0x4076e3
cmp eax, 5
jne 0x4076e7
xor ebx, ebx
cmp dword [0x426cfc], ebx
jle 0x4076e3
push dword [0x426bdc]
call fcn.00408d1c
pop ecx
mov dword [0x426cfc], ebx
xor eax, eax
jmp 0x4076ec
mov eax, 0x6300
pop edi
pop esi
pop ebx
leave
ret