Function at 0x42e660
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46936b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c8
push ebx
push esi
push edi
mov byte [esp + 0x48], 0
xor eax, eax
mov ecx, 0x7f
lea edi, [esp + 0x49]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor ebx, ebx
push str.atimuixx.dll
stosb byte es:[edi], al
mov dword [esp + 0x10], ebx
xor esi, esi
mov dword [esp + 0x24], vtable.CModule.0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esp + 0x24], eax
cmp eax, ebx
mov dword [esp + 0x6dc], ebx
jne 0x42e73f
xor eax, eax
mov ecx, 0x80
lea edi, [esp + 0x4d0]
rep stosd dword es:[edi], eax
mov ecx, 0x80
lea edi, [esp + 0x2d0]
rep stosd dword es:[edi], eax
mov ecx, 0x22
lea edi, [esp + 0x248]
rep stosd dword es:[edi], eax
push 0x200
lea eax, [esp + 0x2d4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x2d0]
push ecx
lea edx, [esp + 0x4d4]
push str._s_atimuixx.dll
push edx
call fcn.0045f139
add esp, 0xc
push 0x4000
lea eax, [esp + 0x24c]
push eax
lea ecx, [esp + 0x4d8]
push ecx
call dword [sym.imp.KERNEL32.dll_OpenFile]
cmp eax, 0xffffffff
je 0x42e744
mov esi, 1
push 0x10
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
lea edx, [esp + 0xc]
push edx
push ebx
mov dword [esp + 0x14], eax
call dword [0x49210c]
push 0x4913f0
push 0x4913e0
push ebx
call dword [0x4920fc]
cmp esi, ebx
je 0x42e77f
push str.__SystemRoot__system32_atimuixx.dll__102_ATI_Graphics_Power_Settings
lea eax, [esp + 0x4c]
push eax
jmp 0x42e789
push str.ATI_Graphics_Power_Settings
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
lea eax, [eax + eax + 2]
add esp, 4
mov dword [esp + 0x10], eax
mov edi, 0x491430
mov ebx, 3
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x4c]
push edx
push 0
push 0x4913e0
push edi
push 0
call dword [0x492104]
add edi, 0x10
dec ebx
jne 0x42e7b0
test esi, esi
je 0x42e7e0
push str.__SystemRoot__system32_atimuixx.dll__101_ATI_PowerPlay_Settings
lea eax, [esp + 0x4c]
push eax
jmp 0x42e7ea
push str.ATI_PowerPlay_Settings
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
lea eax, [eax + eax + 2]
add esp, 4
mov dword [esp + 0x10], eax
mov edi, 0x491430
mov ebx, 3
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x4c]
push edx
push 0x4913f0
push 0x4913e0
push edi
push 0
call dword [0x492104]
add edi, 0x10
dec ebx
jne 0x42e811
mov ebx, dword [ebp + 8]
xor edi, edi
test ebx, ebx
jbe 0x42e858
lea ecx, [ecx]
push edi
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492100]
inc edi
cmp edi, ebx
jb 0x42e840
add ebx, 0xfffffffe
cmp ebx, 3
ja case.default.0x42e864
jmp dword [ebx*4 + 0x42efa0]
test esi, esi
je 0x42e87b
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42e885
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42e8e4
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42e8ee
push str.Maximum_Performance
lea edx, [esp + 0x4c]
push edx
call fcn.00460152
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
add edi, 4
push edi
push 1
jmp 0x42ede8
test esi, esi
je 0x42e93e
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea edx, [esp + 0x4c]
push edx
jmp 0x42e948
push str.Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
call fcn.00460152
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 0
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42e9a7
push str.__SystemRoot__system32_atimuixx.dll__105_Balanced
lea eax, [esp + 0x4c]
push eax
jmp 0x42e9b1
push str.Balanced
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 1
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea ecx, [edi + 4]
push ecx
push 1
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42ea10
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42ea1a
push str.Maximum_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.00460152
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 2
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
add edi, 8
push edi
push 2
jmp 0x42ede8
test esi, esi
je 0x42ea6a
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42ea74
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42ead3
push str.__SystemRoot__system32_atimuixx.dll__104_High_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42eadd
push str.High_Battery_Life
lea edx, [esp + 0x4c]
push edx
call fcn.00460152
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea edx, [edi + 4]
push edx
push 1
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42eb3c
push str.__SystemRoot__system32_atimuixx.dll__106_High_Performance
lea eax, [esp + 0x4c]
push eax
jmp 0x42eb46
push str.High_Performance
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 2
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea ecx, [edi + 8]
push ecx
push 2
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42eba5
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42ebaf
push str.Maximum_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.00460152
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 3
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
add edi, 0xc
push edi
push 3
jmp 0x42ede8
test esi, esi
je 0x42ebff
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42ec09
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42ec68
push str.__SystemRoot__system32_atimuixx.dll__104_High_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42ec72
push str.High_Battery_Life
lea edx, [esp + 0x4c]
push edx
call fcn.00460152
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea edx, [edi + 4]
push edx
push 1
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42ecd1
push str.__SystemRoot__system32_atimuixx.dll__105_Balanced
lea eax, [esp + 0x4c]
push eax
jmp 0x42ecdb
push str.Balanced
lea ecx, [esp + 0x4c]
push ecx
call fcn.00460152
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 2
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea ecx, [edi + 8]
push ecx
push 2
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42ed3a
push str.__SystemRoot__system32_atimuixx.dll__106_High_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42ed44
push str.High_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.00460152
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 3
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
lea eax, [edi + 0xc]
push eax
push 3
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
test esi, esi
je 0x42eda3
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42edad
push str.Maximum_Performance
lea edx, [esp + 0x4c]
push edx
call fcn.00460152
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0046010a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492108]
push 4
add edi, 0x10
push edi
push 4
push 4
push 0x4913f0
push 0x4913e0
push 0
call dword [0x492120]
mov ebx, dword [ebp + 0x10]
mov esi, 0x491430
mov edi, 3
lea esp, [esp]
mov edx, dword [ebp + 0xc]
push edx
push 0x4913f0
push 0x4913e0
push esi
push 0
call dword [0x492118]
push ebx
push 0x4913f0
push 0x4913e0
push esi
push 0
call dword [0x49211c]
add esi, 0x10
dec edi
jne 0x42ee10
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], ecx
lea edx, [esp + 0x28]
mov dword [esp + 0x40], eax
mov dword [esp + 0x18], ecx
push edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], ecx
call fcn.00443fd0
push 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.0044d610
add esp, 0x10
test eax, eax
mov eax, dword [0x4910e8]
je 0x42eea6
test eax, 0x10000
je 0x42eeba
push str.CDisplayDeviceMan::CreateDPPEIndex:_Ati_AdapterPowerXpressGetConfig_ok_n
jmp 0x42eeb2
test eax, 0x10000
je 0x42eeba
push str.CDisplayDeviceMan::CreateDPPEIndex:_Ati_AdapterPowerXpressGetConfig_fail_n
call fcn.0040a4a0
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 1
je 0x42ef18
cmp eax, 2
jne 0x42ef6c
mov eax, dword [0x49205c]
mov esi, dword [0x492060]
cmp eax, 0xffffffff
je 0x42ef25
cmp esi, 0xffffffff
je 0x42ef25
mov edx, dword [esp + 0xc]
push eax
push 0x4913f0
push 0x4913e0
push edx
push 0
call dword [0x492138]
mov eax, dword [esp + 0xc]
push esi
push 0x4913f0
push 0x4913e0
push eax
push 0
call dword [0x49213c]
mov ecx, dword [esp + 0xc]
push ecx
jmp 0x42ef64
mov eax, dword [0x492064]
mov esi, dword [0x492068]
jmp 0x42eed7
mov al, byte [ebp + 0x18]
test al, al
je 0x42ef6c
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push edx
push 0x4913f0
push 0x4913e0
push eax
push 0
call dword [0x492138]
mov ecx, dword [esp + 0xc]
push ebx
push 0x4913f0
push 0x4913e0
push ecx
push 0
call dword [0x49213c]
mov edx, dword [esp + 0xc]
push edx
push 0
call dword [0x492110]
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42ef86
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x6d4]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x14