Function at 0x408621
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x548
push ebx
push esi
push edi
push 0x7f
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0x443]
mov byte [ebp - 0x444], bl
push str.powerplayer.ini
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x444]
push 0x200
push eax
push 0x534198
push 0x525e10
push str.ModuleInfo
call fcn.00405a57
mov esi, 0x525e00
lea eax, [ebp - 0x444]
push esi
push eax
call fcn.0047ccc7
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
je 0x408777
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x13f]
mov byte [ebp - 0x140], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x444]
sub eax, ecx
inc eax
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.0047b86a
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x243]
mov byte [ebp - 0x244], bl
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 4]
add eax, 2
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.0047b86a
lea eax, [ebp - 0x140]
push eax
call fcn.0047baa0
add esp, 0x1c
test eax, eax
je 0x408777
lea eax, [ebp - 0x244]
push eax
call fcn.0047baa0
test eax, eax
pop ecx
je 0x408777
lea eax, [ebp - 0x140]
test eax, eax
je 0x408756
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.0047c100
mov eax, esp
push edi
mov dword [ebp - 4], eax
push eax
mov word [eax], bx
lea eax, [ebp - 0x140]
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x408777
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.004084e8
pop ecx
pop ecx
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x547]
mov byte [ebp - 0x548], bl
push 0x7f
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x443]
mov byte [ebp - 0x444], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push str.powerplayer.ini
lea eax, [ebp - 0x444]
push 0x200
push eax
push 0x534198
push 0x525df4
push str.ModuleInfo
call fcn.00405a57
lea eax, [ebp - 0x444]
push esi
push eax
call fcn.0047ccc7
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
je 0x4088ec
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x13f]
mov byte [ebp - 0x140], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x444]
sub eax, ecx
inc eax
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.0047b86a
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x243]
mov byte [ebp - 0x244], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 4]
mov edi, 0x104
add eax, 2
push edi
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.0047b86a
lea eax, [ebp - 0x140]
push eax
call fcn.0047baa0
add esp, 0x1c
test eax, eax
je 0x4088ec
lea eax, [ebp - 0x244]
push eax
call fcn.0047baa0
test eax, eax
pop ecx
je 0x4088ec
lea eax, [ebp - 0x244]
push edi
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.0047b86a
lea eax, [ebp - 0x140]
add esp, 0xc
test eax, eax
je 0x4088cb
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.0047c100
mov eax, esp
push edi
mov dword [ebp - 4], eax
push eax
mov word [eax], bx
lea eax, [ebp - 0x140]
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0x14]
push ecx
push eax
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x4088ec
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.004084e8
pop ecx
pop ecx
push 0x7f
xor eax, eax
pop ecx
lea edi, [ebp - 0x443]
mov byte [ebp - 0x444], bl
push str.powerplayer.ini
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x444]
push 0x200
push eax
push 0x534198
push str.PowerPlayer
push str.ModuleInfo
call fcn.00405a57
lea eax, [ebp - 0x444]
push esi
push eax
call fcn.0047ccc7
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
je 0x408a28
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x13f]
mov byte [ebp - 0x140], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, esi
lea ecx, [ebp - 0x444]
sub eax, ecx
inc eax
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.0047b86a
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x243]
mov byte [ebp - 0x244], bl
add esi, 2
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea eax, [ebp - 0x244]
push esi
push eax
call fcn.0047b86a
lea eax, [ebp - 0x140]
push eax
call fcn.0047baa0
add esp, 0x1c
test eax, eax
je 0x408a28
lea eax, [ebp - 0x244]
push eax
call fcn.0047baa0
test eax, eax
pop ecx
je 0x408a28
lea eax, [ebp - 0x140]
test eax, eax
jne 0x4089d2
xor edi, edi
jmp 0x408a07
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.0047c100
mov edi, esp
push esi
push edi
lea eax, [ebp - 0x140]
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x408a28
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.004084e8
pop ecx
pop ecx
lea eax, [ebp - 0x548]
push 0x5c
push eax
call fcn.0047b7f8
pop ecx
cmp eax, ebx
pop ecx
je 0x408a3e
mov byte [eax], bl
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x243]
mov byte [ebp - 0x244], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x548]
push eax
lea eax, [ebp - 0x244]
push str._spsclg.dll
push eax
call fcn.0047c0a0
add esp, 0xc
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x408aec
push 9
mov esi, str.91E4D9DC_D7E7_4768_8FE9_3EF06CFDC006
pop ecx
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x3c]
test eax, eax
movsb byte es:[edi], byte [esi]
jne 0x408a9c
xor edi, edi
jmp 0x408acb
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.0047c100
mov edi, esp
push esi
push edi
lea eax, [ebp - 0x3c]
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x408aec
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.004084e8
pop ecx
pop ecx
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x243]
mov byte [ebp - 0x244], bl
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x244]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x244]
push 0x5c
push eax
call fcn.0047b7f8
pop ecx
cmp eax, ebx
pop ecx
je 0x408b2b
mov byte [eax], bl
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x13f]
mov byte [ebp - 0x140], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x140]
push str._spsclg.dll
push eax
call fcn.0047c0a0
add esp, 0xc
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x408bd9
push 9
mov esi, str.91E4D9DC_D7E7_4768_8FE9_3EF06CFDC006
pop ecx
lea edi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x3c]
test eax, eax
movsb byte es:[edi], byte [esi]
jne 0x408b89
xor edi, edi
jmp 0x408bb8
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.0047c100
mov edi, esp
push esi
push edi
lea eax, [ebp - 0x3c]
push 0xffffffffffffffff
push eax
push ebx
push ebx
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.ole32.dll_CLSIDFromString]
test eax, eax
jl 0x408bd9
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.004084e8
pop ecx
pop ecx
call fcn.00407ee9
push 1
call fcn.00408396
pop ecx
lea esp, [ebp - 0x554]
pop edi
pop esi
pop ebx
leave
ret