Function at 0x40f83d
Capabilities:
Get common file path

Disassembly:
mov eax, 0x420aa2
call fcn.00412bcc
sub esp, 0x484
push ebx
push ebp
push esi
push 0x3a
push dword [esp + 0x4b4]
xor ebx, ebx
mov dword [esp + 0x18], ebx
call fcn.00415740
pop ecx
pop ecx
test eax, eax
je 0x40f876
inc eax
push eax
call fcn.0041586b
pop ecx
mov esi, eax
jmp 0x40f878
xor esi, esi
mov dword [esp + 0x18], esi
call fcn.00411263
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, 3
jae 0x40f89e
push str.571571
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
test eax, eax
je 0x40f89e
push eax
call ebp
call fcn.00411263
cmp eax, 3
jae 0x40f8b8
lea eax, [esp + 0x7c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, 0x4307ac
call fcn.0041002f
mov eax, dword [eax]
cmp eax, dword [0x4307ac]
je 0x40f8fb
mov ecx, dword [esp + 0x4a4]
add eax, 0x14
push eax
call fcn.0040a17b
and dword [esp + 0x498], 0
mov dword [esp + 0x10], 1
jmp 0x40fbe8
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
push edi
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ecx
mov byte [esp + 0x20], cl
mov dword [esp + 0x49c], 1
mov edi, dword [esp + 0x4b0]
mov eax, dword [edi]
cmp byte [eax], cl
je 0x40f954
mov edx, dword [edi]
mov al, byte [edx]
cmp al, 0x2f
je 0x40f952
cmp al, 0x5c
je 0x40f952
mov cl, al
lea eax, [edx + 1]
mov dword [edi], eax
push ecx
lea ecx, [esp + 0x24]
call fcn.00406240
mov eax, dword [edi]
cmp byte [eax], 0
jne 0x40f92e
xor ecx, ecx
cmp dword [esp + 0x34], 0x10
push ecx
push dword [esp + 0x4bc]
lea eax, [esp + 0x28]
cmovae eax, dword [esp + 0x28]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0040f3ab
add esp, 0x10
mov byte [esp + 0x49c], 2
push eax
lea ecx, [esp + 0x24]
call fcn.0040959e
mov byte [esp + 0x49c], 1
lea ecx, [esp + 0x68]
call fcn.004015ab
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [esp + 0x40]
push str._08x_02x
push eax
call fcn.0040743b
add esp, 0x10
mov byte [esp + 0x49c], 3
and dword [esp + 0x18], 0
mov edi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov byte [esp + 0x13], 0
call fcn.00411263
cmp eax, 3
jae 0x40f9e5
push str.284284
call edi
test eax, eax
je 0x40f9e5
push eax
call ebp
call fcn.00414f52
mov esi, eax
shl esi, 0x10
call fcn.00414f52
or eax, esi
push eax
lea eax, [esp + 0x54]
push str._08x
push eax
call fcn.0040743b
add esp, 0xc
mov byte [esp + 0x49c], 4
call fcn.00411263
cmp eax, 3
jae 0x40fa29
push str.172172
call edi
test eax, eax
je 0x40fa29
push eax
call ebp
push 0x10
pop esi
cmp dword [esp + 0x34], esi
lea ecx, [esp + 0x20]
cmovae ecx, dword [esp + 0x20]
cmp dword [esp + 0x64], esi
push ecx
lea eax, [esp + 0x54]
cmovae eax, dword [esp + 0x54]
push eax
push dword [esp + 0x4b4]
lea eax, [esp + 0x74]
push str._s_s_s
push eax
call fcn.0040743b
mov byte [esp + 0x4b0], 5
lea ecx, [esp + 0x27]
push ecx
or ebx, 2
push eax
mov dword [esp + 0x30], ebx
call fcn.00410f89
add esp, 0x1c
test al, al
je 0x40fa8b
cmp byte [esp + 0x13], 0
mov byte [esp + 0x12], 1
je 0x40fa90
mov byte [esp + 0x12], 0
mov dword [esp + 0x49c], 4
test bl, 2
je 0x40fab0
and ebx, 0xfffffffd
lea ecx, [esp + 0x68]
mov dword [esp + 0x14], ebx
call fcn.004015ab
cmp byte [esp + 0x12], 0
jne 0x40fadf
mov byte [esp + 0x49c], 3
lea ecx, [esp + 0x50]
call fcn.004015ab
mov ecx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, 0x200
jl 0x40f9c8
jmp 0x40fb29
call fcn.00411263
cmp eax, 3
jae 0x40fb06
push str.Global819
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
test eax, eax
je 0x40fb06
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x44]
call fcn.00403f8e
mov byte [esp + 0x49c], 3
lea ecx, [esp + 0x50]
call fcn.004015ab
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x4307ac
call fcn.0040ddf2
lea ecx, [esp + 0x38]
pop edi
cmp eax, ecx
je 0x40fb4d
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.00403f8e
cmp dword [esp + 0x30], esi
lea ecx, [esp + 0x1c]
cmovae ecx, dword [esp + 0x1c]
cmp dword [esp + 0x48], esi
push ecx
lea eax, [esp + 0x38]
cmovae eax, dword [esp + 0x38]
push eax
push dword [esp + 0x4b0]
lea eax, [esp + 0x70]
push str._s_s_s
push eax
call fcn.0040743b
add esp, 0x14
mov byte [esp + 0x498], 6
push eax
mov ecx, 0x4307a0
call fcn.0040c928
mov byte [esp + 0x498], 3
lea ecx, [esp + 0x64]
call fcn.004015ab
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x4ac]
call fcn.0040cf3d
or ebx, 1
add esp, 0xc
mov dword [esp + 0x10], ebx
mov byte [esp + 0x498], 1
lea ecx, [esp + 0x34]
call fcn.004015ab
mov byte [esp + 0x498], 0
lea ecx, [esp + 0x1c]
call fcn.004015ab
mov ecx, dword [esp + 0x490]
mov eax, dword [esp + 0x4a4]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
leave
ret