Function at 0x40aa30
Capabilities:
Get common file path
Get explorer pid

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c63c
mov eax, dword fs:[0]
push eax
sub esp, 0x4dc
mov eax, dword [0x440008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor eax, eax
mov ecx, 0x458ae8
cmp dword [ecx], 0x10
je 0x40ab82
inc eax
add ecx, 0x20
cmp eax, 0x1f
jb 0x40aa65
xor esi, esi
mov ecx, 0x18
lea eax, [ebp - 0x46c]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x40aa84
push ecx
push 0x18
lea eax, [ebp - 0x46c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
jne 0x40adc5
mov edi, dword [ebp - 0x458]
test edi, edi
je 0x40adc5
push edi
push eax
push 0x1000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
cmp esi, 0xffffffff
je 0x40ad92
push 0x104
lea eax, [ebp - 0x420]
push eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_K32GetModuleFileNameExW]
test eax, eax
je 0x40ad8b
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x40ad8b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x454]
call fcn.0040cdc0
push ecx
lea ecx, [ebp - 0x484]
mov dword [ebp - 4], 0
call fcn.0040ae50
push eax
lea ecx, [ebp - 0x454]
mov byte [ebp - 4], 1
call fcn.0040c790
mov byte [ebp - 4], 0
mov esi, eax
mov edx, dword [ebp - 0x470]
cmp edx, 8
jb 0x40aba7
mov ecx, dword [ebp - 0x484]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ab9d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ade3
jmp 0x40ab9d
shl eax, 5
cmp byte [eax + 0x458b00], 0
je 0x40aa77
mov esi, dword [eax + 0x458b04]
jmp 0x40aa79
push edx
push ecx
call fcn.0041397e
add esp, 8
xor eax, eax
mov dword [ebp - 0x474], 0
mov word [ebp - 0x484], ax
lea eax, [ebp - 0x454]
mov dword [ebp - 0x470], 7
cmp eax, esi
je 0x40abe7
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x40abd8
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x454]
push eax
call fcn.0040c300
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x43c]
call fcn.0040cdc0
push 0x459d74
push 0x40b7c0
push 0x459d7c
mov byte [ebp - 4], 2
call fcn.0041340b
add esp, 0xc
test eax, eax
je 0x40ade8
cmp dword [ebp - 0x428], 8
lea ecx, [ebp - 0x43c]
lea eax, [ebp - 0x454]
cmovae ecx, dword [ebp - 0x43c]
cmp dword [ebp - 0x440], 8
push ecx
cmovae eax, dword [ebp - 0x454]
push eax
call fcn.00413423
push 0x459d74
mov ebx, eax
xor edi, edi
push 0x40b7c0
push 0x459d7c
mov dword [ebp - 0x424], ebx
call fcn.0041340b
add esp, 0x14
test eax, eax
je 0x40aded
mov esi, 0x459d74
test ebx, ebx
jns 0x40aca6
push 0x459d80
push 0x40bd80
push 0x459d88
call fcn.0041340b
add esp, 0xc
test eax, eax
je 0x40adf2
mov edi, 1
mov esi, 0x459d80
xor ebx, ebx
cmp dword [ebp - 0x424], ebx
push 0x459d74
push 0x40b7c0
push 0x459d7c
setg bl
call fcn.0041340b
add esp, 0xc
test eax, eax
je 0x40adf7
mov eax, dword [esi + 4]
cmp eax, dword [0x459d78]
jne 0x40ae06
test edi, edi
jne 0x40ae06
mov edx, dword [ebp - 0x428]
xor ebx, 1
cmp edx, 8
jb 0x40ad2a
mov ecx, dword [ebp - 0x43c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ad20
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40adfc
push edx
push ecx
call fcn.0041397e
add esp, 8
mov edx, dword [ebp - 0x440]
xor eax, eax
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 7
mov word [ebp - 0x43c], ax
cmp edx, 8
jb 0x40ad87
mov ecx, dword [ebp - 0x454]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40ad7d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ae01
push edx
push ecx
call fcn.0041397e
add esp, 8
mov eax, ebx
jmp 0x40adc7
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x424]
mov dword [ebp - 0x424], 0
push eax
call dword [sym.imp.USER32.dll_GetShellWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [ebp - 0x424]
test eax, eax
je 0x40adc5
cmp edi, eax
je 0x40adc5
mov eax, 1
jmp 0x40adc7
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041396d
mov esp, ebp
pop ebp
ret
call fcn.0041741c
call fcn.0041a987
call fcn.0041a987
call fcn.0041a987
call fcn.0041a987
call fcn.0041741c
call fcn.0041741c
push str.equivalent_p1__p2_:_invalid_arguments
lea ecx, [ebp - 0x4a4]
call fcn.00409fd0
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 3
call fcn.0040bda0
lea ecx, [ebp - 0x4e8]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x4a4]
push eax
call fcn.0040bc40
push 0x43dd68
lea eax, [ebp - 0x4e8]
push eax
call fcn.00415025
int3