Function at 0x422f60
Capabilities:
Enumerate gui resources
Get disk information
Get file attributes
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x428611
push eax
mov dword fs:[0], esp
sub esp, 0xd0c
cmp dword [0x803bf8], 0x12
push ebx
push ebp
push esi
push edi
jne 0x42302b
push 0
push 0
push 0
call dword [sym.imp.SHELL32.dll_FindExecutableA]
push 0
call fcn.0040a08e
add esp, 4
push 0
call fcn.0042274a
add esp, 4
lea eax, [esp + 0x70]
push eax
call fcn.00406520
lea esi, [esp + 0x18]
mov dword [esp + 0xd24], 0
call fcn.00406de0
sub esp, 0x1c
mov byte [esp + 0xd40], 1
mov ecx, esp
mov dword [esp + 0x30], esp
push 0
call fcn.00406090
mov ecx, esi
call fcn.00406e80
push 0
lea ecx, [esp + 0x30]
call fcn.00406090
lea ebx, [esp + 0x2c]
mov eax, esi
mov byte [esp + 0xd24], 2
call fcn.00406e00
mov ecx, ebx
mov byte [esp + 0xd24], 1
call fcn.00406120
push 0
call fcn.0040a26f
add esp, 4
call fcn.0040a3f3
mov eax, 0x38d6
add dword [0x803bf8], eax
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
cmp esi, 0x1c423
jge 0x423056
call ebp
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp esi, 0x1ea07e8b
jle 0x42306e
cmp edi, 0xad234a
je 0x42306e
cmp ebx, 0x8cae548
jne 0x423077
inc esi
cmp esi, 0x8c6ffc72
jb 0x423046
mov ecx, dword [0x803bf8]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, dword [sym.imp.KERNEL32.dll_EnumCalendarInfoA]
mov ebx, dword [sym.imp.KERNEL32.dll_SetComputerNameW]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebp, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov dword [0x800068], eax
mov eax, dword [0x803bf8]
mov dword [esp + 0x14], 0x963510
cmp eax, 3
jne 0x4230c2
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, dword [0x803bf8]
cmp eax, 0xbc5
jne 0x423182
push 0
push 0
push 0
push 0
call esi
push 0
push 0
push 0
push 0
call esi
push 0
call ebx
xor eax, eax
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x4c]
push ecx
push eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
call dword [sym.imp.KERNEL32.dll_BuildCommDCBAndTimeoutsW]
push 0x404568
call edi
push 0
lea edx, [esp + 0x11c]
push edx
push 0x4045f4
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeMountPointA]
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasesLengthA]
push 0x404600
call ebp
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateJobSet]
push 0x404620
call edi
push 0x404660
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
push 0
call ebp
xor eax, eax
push eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedPushEntrySList]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
mov eax, dword [0x803bf8]
dec dword [esp + 0x14]
jne 0x4230b0
xor esi, esi
test eax, eax
je 0x4231b3
mov edi, dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
call fcn.00422c40
mov eax, dword [0x803bf8]
cmp eax, 0x29
jne 0x4231ae
call edi
mov eax, dword [0x803bf8]
inc esi
cmp esi, eax
jb 0x423198
cmp eax, 0x19c
jne 0x423213
push 0x404680
call dword [sym.imp.KERNEL32.dll_FindAtomA]
lea ecx, [esp + 0x14]
push ecx
push 0
push 0x404698
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetStringTypeExW]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Process32FirstW]
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
push 0x4046f0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetCalendarInfoA]
push 0
push 0x404710
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov edi, dword [sym.imp.USER32.dll_GetMenuBarInfo]
mov esi, 0x8dc
mov edi, edi
push 0
push 0
push 0
push 0
call edi
dec esi
jne 0x423220
mov esi, dword [sym.imp.KERNEL32.dll_SetFileShortNameA]
mov edi, 0x25095
mov ebx, 0x92
lea ecx, [ecx]
cmp dword [0x803bf8], ebx
jne 0x423251
push 0x404724
push 0
call esi
dec edi
jne 0x423240
mov byte [0x462f00], 0
call fcn.00422780
call fcn.00422f30
call fcn.00422c20
mov edi, dword [sym.imp.USER32.dll_DefDlgProcA]
mov ebx, dword [sym.imp.KERNEL32.dll_GetConsoleAliasA]
mov esi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebp, 0xf3743
cmp dword [0x803bf8], 0x21
jne 0x4232ab
push 0
push 0
push 0
push 0
call edi
push 0
push 0
lea edx, [esp + 0x120]
push edx
push 0
call ebx
push 0x404740
call esi
dec ebp
jne 0x423281
call fcn.00422ed0
cmp dword [0x803bf8], 0xd5c
mov byte [0x462f01], 0x73
jne 0x42332f
lea eax, [esp + 0x118]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
push ebp
lea edx, [esp + 0x51c]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
push 0x40475c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push ebp
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_IsProcessInJob]
push ebp
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_EnumResourceTypesW]
call dword [sym.imp.KERNEL32.dll_DebugBreak]
push ebp
call dword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
push 0x404770
call esi
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_EnumSystemLocalesW]
call fcn.00422c30
mov ecx, dword [esp + 0xd1c]
pop edi
xor eax, eax
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret