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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x200c
call fcn.0041f090
push esi
push 0x42a5ffff
push 0x40a3ffff
call fcn.0040c830
add esp, 8
push 0
mov dword [0x427510], eax
mov eax, dword [0x42751c]
push 0x24
lea ecx, [ebp - 0x80c]
push ecx
neg eax
push 0
mov byte [ebp - 0x80c], 0
mov word [0x4274f8], ax
call dword [0x427990]
mov dx, word [0x4274fc]
mov al, byte [ebp - 0x80c]
mov esi, dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
neg dx
test al, al
mov word [0x427504], dx
jne 0x40fd52
mov eax, 0xc
call fcn.0041f090
mov ecx, esp
push 0x800
lea eax, [ebp - 0x80c]
push eax
mov edx, 0x422ca4
call fcn.0041d7e0
push eax
call esi
push 0x2eafffff
push 0x161ffff
call fcn.0040c720
movsx ecx, word [0x4274e8]
push ecx
push 0xfd5fffff
mov dword [0x42750c], eax
call fcn.0040c720
movsx edx, word [0x4274f4]
mov ecx, dword [0x42750c]
mov byte [0x4274da], al
mov al, byte [0x4274f0]
mov byte [0x4274dd], al
mov al, byte [ebp - 0x80c]
and edx, ecx
add esp, 0x10
test al, al
mov dword [0x427520], edx
jne 0x40fdce
mov eax, 8
call fcn.0041f090
mov ecx, esp
push 0x800
lea edx, [ebp - 0x80c]
push edx
mov edx, 0x422c9c
call fcn.0041d7e0
push eax
call esi
movsx eax, word [0x4274f4]
movsx ecx, word [0x4274f0]
push eax
push ecx
call fcn.0040c7b0
mov ecx, dword [0x427524]
mov edx, dword [0x427514]
mov word [0x427500], ax
movsx eax, byte [0x4274da]
and eax, ecx
mov dword [0x427528], eax
mov al, byte [ebp - 0x80c]
neg edx
add esp, 8
test al, al
mov word [0x427504], 0xffff
mov word [0x4274f0], dx
jne 0x40fe4a
mov eax, 0xc
call fcn.0041f090
mov ecx, esp
mov edx, 0x422c90
call fcn.0041d7e0
lea edx, [ebp - 0x80c]
mov edi, edi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x40fe40
mov ecx, dword [0x42751c]
mov eax, dword [0x42752c]
xor edx, edx
neg ecx
cmp word [0x427504], dx
push eax
setne dl
push 0x902dffff
mov word [0x4274f0], cx
mov word [0x4274f8], dx
call fcn.0040c830
add esp, 8
lea ecx, [ebp - 0x80c]
push ecx
mov dword [0x427510], eax
call dword [0x427960]
movsx dx, byte [0x4274db]
mov esi, eax
mov eax, dword [0x427528]
push 0xd397ffff
push 0x9d91ffff
add edx, eax
mov eax, dword [0x427518]
and eax, 0xbf0fffff
mov word [0x4274f8], dx
mov dword [0x427528], eax
call fcn.0040c830
mov dl, byte [0x4274d9]
or cl, 0xff
sub cl, dl
add esp, 8
test esi, esi
mov word [0x4274f4], ax
mov byte [0x4274da], cl
jl 0x40ff17
cmp esi, 0x19
jg 0x40ff17
mov eax, 8
call fcn.0041f090
mov ecx, esp
add esi, 0x41
push esi
mov edx, 0x422c88
call fcn.0041d7e0
push eax
lea edx, [ebp - 0x100c]
push edx
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0xc
jmp 0x40ff3e
mov eax, 4
call fcn.0041f090
mov ecx, esp
mov edx, 0x422c80
call fcn.0041d7e0
push eax
lea eax, [ebp - 0x100c]
push eax
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 8
movsx ecx, byte [0x4274dc]
movsx edx, word [0x4274e4]
push ecx
push edx
call fcn.0040c7f0
add esp, 8
push 0x800
mov dword [0x427520], eax
lea eax, [ebp - 0x180c]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 0xc]
push edx
lea eax, [ebp - 4]
push eax
push 0x800
lea ecx, [ebp - 0x200c]
push ecx
lea edx, [ebp - 0x100c]
push edx
xor esi, esi
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationA]
test eax, eax
je 0x40ff95
mov esi, dword [ebp - 4]
push 0xfd79ffff
push 0xad55ffff
call fcn.0040c7f0
mov word [0x4274f8], ax
add esp, 8
mov eax, esi
lea esp, [ebp - 0x2010]
pop esi
mov esp, ebp
pop ebp
ret