Function at 0x414190
Capabilities:
Get disk information
Query environment variable

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x200c
call fcn.00424380
push esi
push edi
push 0x5117ffff
push 0x501ffff
call fcn.0040e620
mov dword [0x42bd14], eax
mov byte [0x42bcd8], 0
neg eax
mov word [0x42bcf2], ax
mov eax, dword [0x42bd08]
push eax
push 0xb66fffff
mov byte [ebp - 0x80c], 0
call fcn.0040e580
mov word [0x42bcf0], ax
mov eax, dword [0x42bd0c]
push eax
push eax
call fcn.0040e6b0
add esp, 0x18
lea ecx, [ebp - 0x80c]
mov dword [0x42bd0c], eax
push 0
push 0x24
push ecx
push 0
call dword [0x42c17c]
movsx edx, byte [0x42bcda]
push edx
push 0xa2e1ffff
call fcn.0040e500
mov ecx, dword [0x42bd0c]
mov word [0x42bcec], ax
movsx eax, byte [0x42bcd9]
push eax
push ecx
call fcn.0040e6b0
mov esi, dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
mov byte [0x42bce0], al
mov al, byte [ebp - 0x80c]
add esp, 0x10
test al, al
jne 0x41427b
mov al, byte [0x42b9c8]
sub al, 0x1b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00424380
mov ecx, esp
lea edx, [ebp - 0x80c]
push 0x800
push edx
mov edx, 0x42b9c8
call fcn.00422bc0
push eax
call esi
movsx eax, word [0x42bcf0]
or eax, 0x271fffff
mov dword [0x42bd00], eax
mov al, byte [ebp - 0x80c]
test al, al
jne 0x4142c7
mov al, byte [0x42b9c0]
sub al, 0x1b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00424380
mov ecx, esp
lea edx, [ebp - 0x80c]
push 0x800
push edx
mov edx, 0x42b9c0
call fcn.00422bc0
push eax
call esi
mov al, byte [ebp - 0x80c]
mov dword [0x42bcf8], 0x424bffff
test al, al
jne 0x414322
mov al, byte [0x42b9b4]
sub al, 0x1b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00424380
mov ecx, esp
mov edx, 0x42b9b4
call fcn.00422bc0
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x80c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x6cebffff
push 0xecb7ffff
call fcn.0040e540
movsx ecx, byte [0x42bcdf]
push 0xe885ffff
push ecx
mov dword [0x42bcfc], eax
call fcn.0040e580
movsx edx, word [0x42bce6]
mov word [0x42bcf2], ax
movsx eax, word [0x42bcec]
and edx, eax
mov eax, dword [0x42bd14]
push eax
push eax
mov dword [0x42bd0c], edx
call fcn.0040e4c0
add esp, 0x18
lea ecx, [ebp - 0x80c]
mov word [0x42bce8], ax
push ecx
call dword [0x42c14c]
mov dx, word [0x42bce8]
mov esi, eax
movsx eax, word [0x42bcee]
inc dx
push eax
push 0xd189ffff
mov word [0x42bcf0], dx
call fcn.0040e4c0
add esp, 8
mov byte [0x42bcdc], al
test esi, esi
jl 0x4143f4
cmp esi, 0x19
jg 0x4143f4
mov al, byte [0x42b9ac]
sub al, 0x1b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00424380
add esi, 0x41
mov ecx, esp
push esi
mov edx, 0x42b9ac
call fcn.00422bc0
lea ecx, [ebp - 0x100c]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x414427
mov al, byte [0x42b9a4]
sub al, 0x1b
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00424380
mov ecx, esp
mov edx, 0x42b9a4
call fcn.00422bc0
lea edx, [ebp - 0x100c]
push eax
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
movsx eax, word [0x42bcec]
movsx ecx, byte [0x42bcdb]
push eax
push ecx
call fcn.0040e670
add esp, 8
mov byte [0x42bcde], al
lea edx, [ebp - 0x180c]
lea eax, [ebp - 8]
push 0x800
push edx
lea ecx, [ebp - 0xc]
push eax
lea edx, [ebp - 4]
push ecx
push edx
lea eax, [ebp - 0x200c]
push 0x800
lea ecx, [ebp - 0x100c]
push eax
push ecx
xor esi, esi
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationA]
test eax, eax
je 0x41447e
mov esi, dword [ebp - 4]
movsx edx, word [0x42bce2]
mov eax, dword [0x42bd0c]
push edx
push eax
call fcn.0040e480
movsx ecx, byte [0x42bcdf]
mov edx, dword [0x42bcfc]
push ecx
push edx
mov word [0x42bce4], ax
call fcn.0040e500
add esp, 0x10
mov byte [0x42bcdf], al
lea esp, [ebp - 0x2014]
mov eax, esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret