Function at 0x42de60
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4688db
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 0x42df3f
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.0045e6a9
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 0x42df44
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 [0x49110c]
push 0x4903f0
push 0x4903e0
push ebx
call dword [0x4910fc]
cmp esi, ebx
je 0x42df7f
push str.__SystemRoot__system32_atimuixx.dll__102_ATI_Graphics_Power_Settings
lea eax, [esp + 0x4c]
push eax
jmp 0x42df89
push str.ATI_Graphics_Power_Settings
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
lea eax, [eax + eax + 2]
add esp, 4
mov dword [esp + 0x10], eax
mov edi, 0x490430
mov ebx, 3
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x4c]
push edx
push 0
push 0x4903e0
push edi
push 0
call dword [0x491104]
add edi, 0x10
dec ebx
jne 0x42dfb0
test esi, esi
je 0x42dfe0
push str.__SystemRoot__system32_atimuixx.dll__101_ATI_PowerPlay_Settings
lea eax, [esp + 0x4c]
push eax
jmp 0x42dfea
push str.ATI_PowerPlay_Settings
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
lea eax, [eax + eax + 2]
add esp, 4
mov dword [esp + 0x10], eax
mov edi, 0x490430
mov ebx, 3
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x4c]
push edx
push 0x4903f0
push 0x4903e0
push edi
push 0
call dword [0x491104]
add edi, 0x10
dec ebx
jne 0x42e011
mov ebx, dword [ebp + 8]
xor edi, edi
test ebx, ebx
jbe 0x42e058
lea ecx, [ecx]
push edi
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491100]
inc edi
cmp edi, ebx
jb 0x42e040
add ebx, 0xfffffffe
cmp ebx, 3
ja case.default.0x42e064
jmp dword [ebx*4 + 0x42e7a0]
test esi, esi
je 0x42e07b
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42e085
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e0e4
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42e0ee
push str.Maximum_Performance
lea edx, [esp + 0x4c]
push edx
call fcn.0045f6c2
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
add edi, 4
push edi
push 1
jmp 0x42e5e8
test esi, esi
je 0x42e13e
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea edx, [esp + 0x4c]
push edx
jmp 0x42e148
push str.Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
call fcn.0045f6c2
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 0
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e1a7
push str.__SystemRoot__system32_atimuixx.dll__105_Balanced
lea eax, [esp + 0x4c]
push eax
jmp 0x42e1b1
push str.Balanced
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 1
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea ecx, [edi + 4]
push ecx
push 1
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e210
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42e21a
push str.Maximum_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.0045f6c2
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 2
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
add edi, 8
push edi
push 2
jmp 0x42e5e8
test esi, esi
je 0x42e26a
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42e274
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e2d3
push str.__SystemRoot__system32_atimuixx.dll__104_High_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42e2dd
push str.High_Battery_Life
lea edx, [esp + 0x4c]
push edx
call fcn.0045f6c2
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea edx, [edi + 4]
push edx
push 1
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e33c
push str.__SystemRoot__system32_atimuixx.dll__106_High_Performance
lea eax, [esp + 0x4c]
push eax
jmp 0x42e346
push str.High_Performance
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 2
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea ecx, [edi + 8]
push ecx
push 2
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e3a5
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42e3af
push str.Maximum_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.0045f6c2
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 3
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
add edi, 0xc
push edi
push 3
jmp 0x42e5e8
test esi, esi
je 0x42e3ff
push str.__SystemRoot__system32_atimuixx.dll__103_Maximum_Battery_Life
lea eax, [esp + 0x4c]
push eax
jmp 0x42e409
push str.Maximum_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
mov edi, dword [ebp + 0x14]
push 4
push edi
push 0
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e468
push str.__SystemRoot__system32_atimuixx.dll__104_High_Battery_Life
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42e472
push str.High_Battery_Life
lea edx, [esp + 0x4c]
push edx
call fcn.0045f6c2
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 1
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea edx, [edi + 4]
push edx
push 1
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e4d1
push str.__SystemRoot__system32_atimuixx.dll__105_Balanced
lea eax, [esp + 0x4c]
push eax
jmp 0x42e4db
push str.Balanced
lea ecx, [esp + 0x4c]
push ecx
call fcn.0045f6c2
lea edx, [esp + 0x50]
add esp, 8
push edx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea eax, [esp + 0x4c]
push eax
push 2
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea ecx, [edi + 8]
push ecx
push 2
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e53a
push str.__SystemRoot__system32_atimuixx.dll__106_High_Performance
lea edx, [esp + 0x4c]
push edx
jmp 0x42e544
push str.High_Performance
lea eax, [esp + 0x4c]
push eax
call fcn.0045f6c2
lea ecx, [esp + 0x50]
add esp, 8
push ecx
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea edx, [esp + 0x4c]
push edx
push 3
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
lea eax, [edi + 0xc]
push eax
push 3
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
test esi, esi
je 0x42e5a3
push str.__SystemRoot__system32_atimuixx.dll__107_Maximum_Performance
lea ecx, [esp + 0x4c]
push ecx
jmp 0x42e5ad
push str.Maximum_Performance
lea edx, [esp + 0x4c]
push edx
call fcn.0045f6c2
lea eax, [esp + 0x50]
add esp, 8
push eax
call fcn.0045f67a
add esp, 4
lea eax, [eax + eax + 2]
push eax
lea ecx, [esp + 0x4c]
push ecx
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491108]
push 4
add edi, 0x10
push edi
push 4
push 4
push 0x4903f0
push 0x4903e0
push 0
call dword [0x491120]
mov ebx, dword [ebp + 0x10]
mov esi, 0x490430
mov edi, 3
lea esp, [esp]
mov edx, dword [ebp + 0xc]
push edx
push 0x4903f0
push 0x4903e0
push esi
push 0
call dword [0x491118]
push ebx
push 0x4903f0
push 0x4903e0
push esi
push 0
call dword [0x49111c]
add esi, 0x10
dec edi
jne 0x42e610
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.00443710
push 0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.0044ce70
add esp, 0x10
test eax, eax
mov eax, dword [0x4900e8]
je 0x42e6a6
test eax, 0x10000
je 0x42e6ba
push str.CDisplayDeviceMan::CreateDPPEIndex:_Ati_AdapterPowerXpressGetConfig_ok_n
jmp 0x42e6b2
test eax, 0x10000
je 0x42e6ba
push str.CDisplayDeviceMan::CreateDPPEIndex:_Ati_AdapterPowerXpressGetConfig_fail_n
call fcn.0040aab0
add esp, 4
mov eax, dword [esp + 0x18]
cmp eax, 1
je 0x42e718
cmp eax, 2
jne 0x42e76c
mov eax, dword [0x49105c]
mov esi, dword [0x491060]
cmp eax, 0xffffffff
je 0x42e725
cmp esi, 0xffffffff
je 0x42e725
mov edx, dword [esp + 0xc]
push eax
push 0x4903f0
push 0x4903e0
push edx
push 0
call dword [0x491138]
mov eax, dword [esp + 0xc]
push esi
push 0x4903f0
push 0x4903e0
push eax
push 0
call dword [0x49113c]
mov ecx, dword [esp + 0xc]
push ecx
jmp 0x42e764
mov eax, dword [0x491064]
mov esi, dword [0x491068]
jmp 0x42e6d7
mov al, byte [ebp + 0x18]
test al, al
je 0x42e76c
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
push edx
push 0x4903f0
push 0x4903e0
push eax
push 0
call dword [0x491138]
mov ecx, dword [esp + 0xc]
push ebx
push 0x4903f0
push 0x4903e0
push ecx
push 0
call dword [0x49113c]
mov edx, dword [esp + 0xc]
push edx
push 0
call dword [0x491110]
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42e786
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