Function at 0x41c640
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6b0
push ebx
push esi
push edi
push 0x2c
push 3
push dword [ebp + 8]
lea eax, [ebp - 0x2a0]
push eax
mov dword [ebp - 0x10], 1
call fcn.0040ad20
add esp, 0x10
push 0x10
mov esi, eax
pop ecx
lea edi, [ebp - 0x58]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x58]
xor ebx, ebx
cmp eax, ebx
je 0x41c963
cmp word [eax], bx
je 0x41c963
call fcn.0040ba0d
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x54]
cmp eax, ebx
mov dword [ebp - 0xc], 2
je 0x41c6c6
cmp word [eax], bx
je 0x41c6c6
push eax
call fcn.00403b00
xor edi, edi
inc edi
cmp eax, edi
pop ecx
mov dword [ebp - 0xc], eax
jge 0x41c6ba
mov dword [ebp - 0xc], edi
jmp 0x41c6c9
push 3
pop ecx
cmp eax, ecx
jle 0x41c6c9
mov dword [ebp - 0xc], ecx
jmp 0x41c6c9
xor edi, edi
inc edi
mov esi, dword [ebp - 0x50]
cmp esi, ebx
je 0x41c6e1
cmp word [esi], bx
je 0x41c6e1
push esi
call fcn.0040acda
cmp word [esi], bx
pop ecx
jne 0x41c6e4
mov dword [ebp - 0x50], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x58]
movzx eax, word [eax]
cmp ax, 0x24
jne 0x41c6fb
mov dword [ebp - 8], edi
jmp 0x41c704
cmp ax, 0x5c
jne 0x41c70a
mov dword [ebp - 0x18], edi
add dword [ebp - 0x58], 2
jmp 0x41c6ea
cmp dword [ebp - 4], ebx
je 0x41c717
cmp dword [ebp - 8], ebx
je 0x41c717
mov dword [ebp - 0x50], ebx
push 0x3d
push dword [ebp - 0x58]
call dword [sym.imp.SHLWAPI.dll_StrChrW]
cmp eax, ebx
mov dword [ebp - 0x14], eax
je 0x41c731
mov word [eax], bx
inc eax
inc eax
mov dword [ebp - 0x14], eax
push dword [ebp - 0x58]
call fcn.00410a5f
cmp al, bl
pop ecx
je 0x41c963
movzx eax, al
xor esi, esi
xor edi, edi
dec eax
je 0x41c77c
dec eax
je 0x41c755
dec eax
jne 0x41c7b7
push ebx
jmp 0x41c757
push 1
push dword [ebp - 0x58]
call fcn.00410377
test eax, eax
pop ecx
pop ecx
je 0x41c76f
cmp dword [ebp - 4], ebx
jne 0x41c76f
xor eax, eax
inc eax
jmp 0x41c771
xor eax, eax
xor ecx, ecx
cmp eax, ebx
sete cl
mov esi, ecx
jmp 0x41c7b7
cmp dword [ebp - 4], ebx
mov eax, dword [ebp - 0x50]
je 0x41c78d
cmp eax, ebx
je 0x41c796
cmp word [eax], bx
je 0x41c796
cmp eax, ebx
je 0x41c79b
cmp word [eax], bx
je 0x41c79b
xor edi, edi
inc edi
jmp 0x41c79d
xor edi, edi
cmp dword [ebp - 8], ebx
jne 0x41c7b4
cmp dword [ebp - 4], ebx
je 0x41c7b0
cmp eax, ebx
je 0x41c7b4
cmp word [eax], bx
je 0x41c7b4
xor esi, esi
jmp 0x41c7b7
xor esi, esi
inc esi
push 0x10
call fcn.00403a40
cmp esi, ebx
pop ecx
mov dword [0x4228e4], eax
je 0x41c7ea
push dword [ebp - 0xc]
push dword [ebp - 4]
push 0x4036f4
call fcn.00410483
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x10], eax
jne 0x41c7ea
cmp edi, ebx
je 0x41c94e
cmp dword [ebp - 4], ebx
je 0x41c7fe
call fcn.004108ac
push 1
push ebx
call fcn.00410824
pop ecx
pop ecx
mov esi, 0x206
push esi
lea eax, [ebp - 0x4a6]
push ebx
push eax
mov word [ebp - 0x4a8], bx
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x25e]
push ebx
push eax
mov word [ebp - 0x260], bx
call sub.MSVCRT.dll_memset
add esp, 0x18
push dword [ebp - 0x58]
lea eax, [ebp - 0x4a8]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpyW]
cmp dword [ebp - 0x18], ebx
je 0x41c8e6
lea eax, [ebp - 0x6b0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetLogicalDriveStringsW]
cmp word [ebp - 0x6b0], bx
lea esi, [ebp - 0x6b0]
je 0x41c94e
xor edi, edi
inc edi
lea eax, [ebp - 0x4a8]
push eax
push esi
lea eax, [ebp - 0x260]
push 0x4028b8
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [ebp - 0x260]
push edi
push eax
call fcn.00410663
add esp, 0x18
test eax, eax
jne 0x41c8b2
lea eax, [ebp - 0x260]
push ebx
push eax
call fcn.00410663
test eax, eax
pop ecx
pop ecx
je 0x41c8d4
push dword [ebp - 0x50]
lea eax, [ebp - 0x260]
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp - 0x14]
push eax
call fcn.0041c52d
add esp, 0x14
test eax, eax
je 0x41c8d4
mov dword [ebp - 0x10], edi
push esi
call dword [sym.imp.KERNEL32.DLL_lstrlenW]
lea esi, [esi + eax*2 + 2]
cmp word [esi], bx
jne 0x41c871
jmp 0x41c94e
cmp word [ebp - 0x4a6], 0x3a
mov esi, dword [sym.imp.KERNEL32.DLL_lstrcatW]
je 0x41c920
cmp word [ebp - 0x4a4], 0x5c
je 0x41c920
lea eax, [ebp - 0x260]
push eax
push 0x104
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryW]
push 0x402e4c
lea eax, [ebp - 0x260]
push eax
call esi
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x260]
push eax
call esi
push dword [ebp - 0x50]
lea eax, [ebp - 0x260]
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp - 0x14]
push eax
call fcn.0041c52d
add esp, 0x14
mov dword [ebp - 0x10], eax
call fcn.004107d0
cmp dword [ebp - 4], ebx
je 0x41c963
push 1
push 1
call fcn.00410824
pop ecx
pop ecx
xor eax, eax
cmp dword [ebp - 0x10], ebx
pop edi
pop esi
sete al
pop ebx
leave
ret