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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2010
call fcn.00428770
movsx eax, byte [0x4319ce]
push ebx
push esi
push edi
push 0xdb8fffff
push eax
call fcn.00410820
mov cl, byte [0x4319cc]
mov word [0x4319e0], ax
add esp, 8
xor eax, eax
cmp word [0x4319d4], ax
lea edx, [ebp - 0x810]
push 0
push 0x24
setne al
add word [0x4319dc], ax
push edx
push 0
mov byte [ebp - 0x810], 0
mov byte [0x4319c8], cl
call dword [0x431f48]
push 0x431998
mov ecx, 0x431958
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::swap_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
mov al, byte [ebp - 0x810]
mov esi, dword [sym.imp.KERNEL32.DLL_GetEnvironmentVariableA]
test al, al
jne 0x4176b5
mov al, byte [0x431608]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
lea eax, [ebp - 0x810]
push 0x800
push eax
mov edx, 0x431608
call fcn.00426650
push eax
call esi
movsx ecx, byte [0x4319d1]
push ecx
push 0x90bffff
call fcn.00410a30
movsx edx, byte [0x4319cc]
mov cl, byte [0x4319d1]
push 0x1a1fffff
add cl, al
push edx
mov byte [0x4319d1], cl
call fcn.004107d0
mov dword [0x4319f8], eax
mov al, byte [ebp - 0x810]
add esp, 0x10
test al, al
jne 0x41772a
mov al, byte [0x431600]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
lea eax, [ebp - 0x810]
push 0x800
push eax
mov edx, 0x431600
call fcn.00426650
push eax
call esi
mov cl, byte [0x4319ce]
xor eax, eax
cmp word [0x4319d2], ax
setne al
add cl, al
mov al, byte [ebp - 0x810]
test al, al
mov byte [0x4319ce], cl
jne 0x417795
mov al, byte [0x4315f4]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x4315f4
call fcn.00426650
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x810]
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]
mov esi, dword [0x431a04]
lea ecx, [ebp - 0x810]
inc esi
push ecx
mov dword [0x431a04], esi
call dword [0x431f18]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov dword [ebp - 4], eax
mov eax, dword [0x43193c]
xor edi, edi
mov ebx, dword [edx]
cmp eax, edi
je 0x41780e
mov cl, byte [eax - 1]
test cl, cl
je 0x41780e
cmp cl, 0xff
je 0x41780e
cmp eax, edi
mov edx, eax
je 0x4177dc
dec cl
mov byte [eax - 1], cl
mov dword [0x43193c], edi
mov dword [0x431940], edi
mov dword [0x431944], edi
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, dword [0x43193c]
xor edi, edi
mov ecx, dword [0x431940]
cmp ecx, ebx
jae 0x41781a
mov ebx, ecx
cmp ebx, edi
jbe 0x4178a9
sub ecx, ebx
push ecx
lea ecx, [eax + ebx]
push ecx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [0x431940]
add esp, 0xc
sub esi, ebx
cmp esi, 0xfffffffd
jbe 0x417846
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
mov ecx, dword [0x43193c]
cmp ecx, edi
je 0x417872
mov al, byte [ecx - 1]
test al, al
je 0x417872
cmp al, 0xff
je 0x417872
cmp esi, edi
jne 0x41788d
dec al
push edi
mov byte [ecx - 1], al
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x4178a9
cmp esi, edi
jne 0x417885
cmp ecx, edi
je 0x4178a9
mov dword [0x431940], edi
mov byte [ecx], 0
jmp 0x4178a9
cmp dword [0x431944], esi
jae 0x41789f
push esi
mov ecx, 0x431938
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Copy_unsigned_int_]
mov ecx, dword [0x43193c]
mov dword [0x431940], esi
mov byte [ecx + esi], 0
movsx edx, byte [0x4319cc]
movsx eax, word [0x4319da]
push edx
push eax
call fcn.004109b0
mov ecx, dword [0x431a00]
mov esi, dword [ebp - 4]
add esp, 8
add ecx, 0x1c67fffe
cmp esi, edi
mov byte [0x4319cc], al
mov dword [0x431a00], ecx
jl 0x41791d
cmp esi, 0x19
jg 0x41791d
mov al, byte [0x4315ec]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
add esi, 0x41
mov ecx, esp
push esi
mov edx, 0x4315ec
call fcn.00426650
lea ecx, [ebp - 0x1010]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
jmp 0x417950
mov al, byte [0x4315e4]
sub al, 0x4d
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.00428770
mov ecx, esp
mov edx, 0x4315e4
call fcn.00426650
lea edx, [ebp - 0x1010]
push eax
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 8
cmp word [0x4319de], di
jne 0x417968
cmp word [0x4319e2], di
mov dword [0x4319e8], edi
je 0x417972
mov dword [0x4319e8], 1
mov al, byte [0x4319ca]
mov dl, byte [0x4319fc]
sub al, dl
lea ecx, [ebp - 0x1810]
sub al, 2
push 0x800
mov byte [0x4319cb], al
lea edx, [ebp - 0x10]
push ecx
lea eax, [ebp - 0xc]
push edx
lea ecx, [ebp - 8]
push eax
push ecx
lea edx, [ebp - 0x2010]
push 0x800
lea eax, [ebp - 0x1010]
push edx
push eax
xor esi, esi
call dword [sym.imp.KERNEL32.DLL_GetVolumeInformationA]
test eax, eax
je 0x4179c0
mov esi, dword [ebp - 8]
push 0x8fadffff
push 0x246fffff
mov word [0x4319d2], 0xffff
call fcn.00410860
movsx ecx, byte [0x4319ce]
push ecx
push 0xf971ffff
mov byte [0x4319d0], al
call fcn.004107d0
add esp, 0x10
mov word [0x4319dc], ax
lea esp, [ebp - 0x201c]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret