Function at 0x405f24
Capabilities:
Get common file path

Disassembly:
mov eax, 0x419309
call fcn.0040f528
sub esp, 0x554
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0x4c]
call fcn.004015c2
and dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea eax, [esi + 0xe58]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004016ae
test eax, eax
mov edi, 0x104
mov ebx, 0x208
jne 0x405ff2
lea eax, [ebp - 0x358]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
lea eax, [esi + 0x310]
jne 0x405f9d
push 0x41a318
push edi
push eax
call fcn.004010dd
test eax, eax
je 0x405fa6
xor esi, esi
jmp 0x4061e6
lea ecx, [ebp - 0x358]
push ecx
jmp 0x405f8b
lea eax, [esi + 0xe58]
push eax
lea eax, [esi + 0x310]
push eax
push 0x41a414
lea eax, [ebp - 0x560]
push ebx
push eax
call fcn.00403f12
add esp, 0x14
test eax, eax
jne 0x405f96
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x560]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004016ae
test eax, eax
jne 0x405ff2
lea ecx, [ebp - 0x4c]
call fcn.004015f6
jmp 0x405f96
push dword [ebp - 0x18]
lea eax, [esi + 0x108]
push edi
push eax
call fcn.00401118
test eax, eax
jne 0x405f96
and dword [ebp - 0x14], eax
push 0x14
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0040eef0
push ebx
lea eax, [ebp - 0x254]
push 0
push eax
call fcn.0040eef0
add esp, 0x18
push ebx
lea eax, [ebp - 0x254]
push eax
push 0x14
lea eax, [ebp - 0x34]
push eax
push 0
jmp 0x406114
lea eax, [ebp - 0x34]
push eax
call fcn.0040ef55
and dword [ebp - 0x10], 0
test eax, eax
pop ecx
mov dword [ebp - 0x1c], eax
jle 0x406078
mov eax, dword [ebp - 0x10]
movzx eax, word [ebp + eax*2 - 0x34]
push eax
call dword [sym.imp.USER32.dll_IsCharAlphaW]
test eax, eax
jne 0x40606d
mov eax, dword [ebp - 0x10]
and word [ebp + eax*2 - 0x34], 0
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x1c]
jl 0x406051
lea eax, [ebp - 0x254]
push eax
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00404a5f
lea eax, [ebp - 0x34]
push eax
push 0x41a740
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4060ad
lea eax, [ebp - 0x254]
push edi
push eax
lea eax, [esi + 0xc50]
jmp 0x4060d8
lea eax, [ebp - 0x34]
push eax
push 0x41a688
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4060e1
lea eax, [ebp - 0x254]
push edi
push eax
mov dword [esi + 0x1684], 1
lea eax, [esi + 0xd54]
push eax
call fcn.00407685
add esp, 0xc
inc dword [ebp - 0x14]
push 0x14
lea eax, [ebp - 0x34]
push 0
push eax
call fcn.0040eef0
push ebx
lea eax, [ebp - 0x254]
push 0
push eax
call fcn.0040eef0
add esp, 0x18
push ebx
lea eax, [ebp - 0x254]
push eax
push 0x14
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x14]
mov ecx, esi
call fcn.0040140b
cmp eax, 0xffffffff
jne 0x40603c
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esi + 0xd54]
push eax
call ebx
test eax, eax
lea eax, [esi + 0xc50]
je 0x406166
lea ecx, [esi + 0xd54]
push ecx
push edi
push eax
call fcn.004010dd
test eax, eax
jne 0x405f96
push edi
push eax
lea eax, [esi + 0xd54]
push eax
call fcn.0040eef0
add esp, 0xc
jmp 0x40616d
push eax
call ebx
test eax, eax
je 0x406174
mov ecx, esi
call fcn.004055cc
cmp dword [esi + 0x1680], 0
lea ecx, [ebp - 0x4c]
jne 0x406195
call fcn.004015f6
lea eax, [esi + 0xc50]
push eax
mov ecx, esi
call fcn.00405c25
jmp 0x40619a
call fcn.004015d8
lea eax, [esi + 0x1064]
push eax
call ebx
test eax, eax
je 0x4061ce
lea eax, [esi + 0x1168]
push eax
call ebx
test eax, eax
je 0x4061ce
lea eax, [esi + 0x126c]
push eax
call ebx
test eax, eax
je 0x4061ce
lea eax, [esi + 0x1370]
push eax
call ebx
test eax, eax
jne 0x4061d5
and dword [esi + 0x1060], 0
mov ecx, esi
call fcn.00404951
mov ecx, esi
call fcn.00405e00
xor esi, esi
inc esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.0040169e
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret