Function at 0x406a64
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffad4
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, 0x5332f8
call fcn.00514d34
mov dl, 1
mov eax, dword [0x49c7b4]
call fcn.004070c0
mov dword [ebp - 0x64], eax
xor edx, edx
mov dword [ebp - 0x70], edx
lea ecx, [ebp - 0x144]
push ecx
lea ecx, [ebp - 0x6c]
push ecx
push str._i__s_n
push esi
call fcn.00518ce8
add esp, 0x10
mov eax, dword [ebp - 0x6c]
cmp eax, dword [0x540548]
je 0x406ac6
mov edx, dword [ebp - 0x60]
mov dword fs:[0], edx
jmp 0x4070b7
movsx ecx, byte [ebp - 0x144]
add ecx, 0xffffffbe
cmp ecx, 0x14
ja case.0x406adf.66
mov cl, byte [ecx + 0x406ae6]
jmp dword [ecx*4 + 0x406afb]
lea eax, [ebp - 0x70]
push eax
lea edx, [ebp - 0x6c]
push edx
push str._i_P__i_F_n
push esi
call fcn.00518ce8
add esp, 0x10
mov ecx, dword [ebp - 0x70]
push ecx
push ebx
call fcn.00409ea0
add esp, 8
push 0x5310b6
mov eax, dword [ebp + 0x10]
push eax
call fcn.00518c6c
add esp, 8
jmp 0x40707b
push ebx
call fcn.004089cc
pop ecx
mov ebx, eax
mov ecx, 0x3c
mov eax, ebx
cdq
idiv ecx
mov ebx, eax
push ebx
push str.H__i_F
mov eax, dword [ebp + 0x10]
push eax
call fcn.00518c6c
add esp, 0xc
jmp 0x40707b
lea edx, [ebp - 0x70]
push edx
lea ecx, [ebp - 0x6c]
push ecx
push str._i_U__i_F_n
push esi
call fcn.00518ce8
add esp, 0x10
push ebx
call fcn.004089cc
pop ecx
mov esi, eax
mov ecx, 0x3c
mov eax, esi
cdq
idiv ecx
mov esi, eax
add esi, dword [ebp - 0x70]
push esi
push ebx
call fcn.004088c0
add esp, 8
lea ecx, [ebp - 0x20c]
push esi
push 0x5310c9
push ecx
call fcn.00518c6c
mov word [ebp - 0x50], 0xc
add esp, 0xc
lea edx, [ebp - 0x20c]
lea eax, [ebp - 4]
call fcn.005243cc
inc dword [ebp - 0x44]
mov edx, dword [eax]
mov eax, dword [ebx + 0x3c0]
call fcn.0047add8
dec dword [ebp - 0x44]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00524470
push 0x5310e0
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00518c6c
add esp, 8
jmp 0x40707b
lea ecx, [ebp - 0x70]
push ecx
lea eax, [ebp - 0x6c]
push eax
push str._i_G__i_F_n
push esi
call fcn.00518ce8
add esp, 0x10
mov edx, dword [ebp - 0x70]
push edx
push ebx
call fcn.00409c60
add esp, 8
push 0x5310ec
mov eax, dword [ebp + 0x10]
push eax
call fcn.00518c6c
add esp, 8
jmp 0x40707b
mov word [ebp - 0x50], 0x18
xor edx, edx
mov dword [ebp - 8], edx
lea edx, [ebp - 8]
inc dword [ebp - 0x44]
mov eax, dword [ebx + 0x3f8]
call fcn.0047ada0
lea eax, [ebp - 8]
mov eax, dword [eax]
call fcn.004d61a4
push eax
xor edx, edx
mov dword [ebp - 0xc], edx
lea edx, [ebp - 0xc]
inc dword [ebp - 0x44]
mov eax, dword [ebx + 0x3d8]
call fcn.0047ada0
lea eax, [ebp - 0xc]
mov eax, dword [eax]
call fcn.004d61a4
push eax
push str.Z__i__i_F
mov edx, dword [ebp + 0x10]
push edx
call fcn.00518c6c
add esp, 0x10
dec dword [ebp - 0x44]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00524470
dec dword [ebp - 0x44]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00524470
jmp 0x40707b
push str.INI_n
lea ecx, [ebp - 0x338]
push ecx
call fcn.00518c6c
add esp, 8
xor esi, esi
jmp 0x406d1a
mov eax, dword [ebx + 0x454]
mov edx, esi
mov eax, dword [eax + 0x90]
call fcn.004949c0
push eax
lea ecx, [ebp - 0x338]
push ecx
call fcn.00514998
pop ecx
mov ecx, eax
lea edx, [ebp - 0x338]
pop eax
call fcn.004940ac
inc esi
mov ecx, dword [ebx + 0x454]
mov eax, dword [ecx + 0x90]
call fcn.004949b8
cmp esi, eax
jl 0x406cea
push 0
lea edx, [ebp - 0x52c]
push 0x25
push edx
push 0
call sub.SHELL32.dll_SHGetSpecialFolderPathA
push 0x5310fc
lea ecx, [ebp - 0x52c]
push ecx
call fcn.005148e8
mov word [ebp - 0x50], 0x24
add esp, 8
lea edx, [ebp - 0x52c]
lea eax, [ebp - 0x10]
call fcn.005243cc
inc dword [ebp - 0x44]
mov edx, dword [eax]
mov eax, dword [ebp - 0x64]
call fcn.004a89d0
dec dword [ebp - 0x44]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00524470
mov eax, dword [ebp - 0x64]
mov edx, dword [eax]
call dword [edx]
inc eax
push eax
call fcn.0050afa0
pop ecx
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x64]
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x68]
mov esi, dword [eax]
call dword [esi + 0xc]
xor esi, esi
jmp 0x406dda
mov eax, dword [ebx + 0x454]
mov edx, esi
mov eax, dword [eax + 0x90]
call fcn.004949c0
push eax
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.00514998
pop ecx
mov ecx, eax
mov edx, dword [ebp - 0x68]
pop eax
call fcn.004940ac
inc esi
mov ecx, dword [ebx + 0x454]
mov eax, dword [ecx + 0x90]
call fcn.004949b8
cmp esi, eax
jl 0x406db0
push str.FIN_n
lea edx, [ebp - 0x338]
push edx
call fcn.00518c6c
add esp, 8
xor esi, esi
jmp 0x406e37
mov eax, dword [ebx + 0x454]
mov edx, esi
mov eax, dword [eax + 0x90]
call fcn.004949c0
push eax
lea ecx, [ebp - 0x338]
push ecx
call fcn.00514998
pop ecx
mov ecx, eax
lea edx, [ebp - 0x338]
pop eax
call fcn.004940ac
inc esi
mov ecx, dword [ebx + 0x454]
mov eax, dword [ecx + 0x90]
call fcn.004949b8
cmp esi, eax
jl 0x406e07
mov edx, dword [ebp - 0x68]
push edx
call fcn.004fea90
pop ecx
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x18], ebx
test ebx, ebx
je 0x40707b
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
mov word [ebp - 0x50], 0x48
mov edx, 3
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x50], 0x30
jmp 0x40707b
push 0x53110f
push 0x541454
call fcn.00516de8
add esp, 8
mov ebx, eax
push 0x531111
push ebx
call fcn.00516e00
add esp, 8
push ebx
call fcn.0051665c
pop ecx
jmp 0x40707b
lea eax, [ebp - 0x70]
push eax
lea edx, [ebp - 0x6c]
push edx
push str._i_B__i_F_n
push esi
call fcn.00518ce8
mov word [ebp - 0x50], 0x54
xor ecx, ecx
add esp, 0x10
mov dword [ebp - 0x1c], ecx
lea edx, [ebp - 0x1c]
inc dword [ebp - 0x44]
mov esi, dword [ebx + 0x3d8]
mov eax, esi
call fcn.0047ada0
lea eax, [ebp - 0x1c]
call fcn.005245f4
fild dword [ebp - 0x70]
add esp, 0xfffffff4
xor edx, edx
lea eax, [ebp - 0x20]
faddp st(1)
fstp xword [esp]
mov dword [ebp - 0x20], edx
inc dword [ebp - 0x44]
call fcn.004d7b1c
lea edx, [ebp - 0x20]
mov eax, esi
mov edx, dword [edx]
call fcn.0047add8
dec dword [ebp - 0x44]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00524470
dec dword [ebp - 0x44]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00524470
mov word [ebp - 0x50], 0x60
xor ecx, ecx
mov dword [ebp - 0x24], ecx
lea edx, [ebp - 0x24]
inc dword [ebp - 0x44]
mov eax, dword [ebx + 0x3d8]
call fcn.0047ada0
lea eax, [ebp - 0x24]
call fcn.005245a4
mov esi, eax
xor eax, eax
mov dword [ebp - 0x28], eax
lea edx, [ebp - 0x28]
inc dword [ebp - 0x44]
mov eax, dword [ebx + 0x3f8]
call fcn.0047ada0
lea eax, [ebp - 0x28]
call fcn.005245a4
add esi, eax
mov eax, esi
xor edx, edx
mov dword [ebp - 0x2c], edx
lea edx, [ebp - 0x2c]
inc dword [ebp - 0x44]
call fcn.004d5fd0
lea edx, [ebp - 0x2c]
mov eax, dword [ebx + 0x400]
mov edx, dword [edx]
call fcn.0047add8
dec dword [ebp - 0x44]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00524470
dec dword [ebp - 0x44]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00524470
dec dword [ebp - 0x44]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.00524470
fild dword [ebp - 0x70]
add esp, 0xfffffffc
fstp dword [esp]
push 0
push 3
push ebx
call fcn.00407e20
add esp, 0x10
push ebx
call fcn.004061cc
pop ecx
mov word [ebp - 0x50], 0x6c
mov edx, 0x53111d
lea eax, [ebp - 0x30]
xor ecx, ecx
call fcn.00524018
inc dword [ebp - 0x44]
lea ecx, [ebp - 0x30]
inc dword [ebp - 0x44]
mov eax, dword [ecx]
push eax
xor edx, edx
mov dword [ebp - 0x34], edx
lea edx, [ebp - 0x34]
inc dword [ebp - 0x44]
mov eax, dword [ebx + 0x3d8]
call fcn.0047ada0
lea eax, [ebp - 0x34]
call fcn.005245a4
push eax
push ebx
call fcn.00408280
add esp, 0xc
dec dword [ebp - 0x44]
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00524470
sub dword [ebp - 0x44], 2
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00401c4c
push 0x531122
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00518c6c
add esp, 8
jmp 0x40707b
push 0x531123
mov eax, dword [ebp + 0x10]
push eax
call fcn.00518c6c
add esp, 8
mov edx, dword [ebp - 0x68]
push edx
call fcn.004fea90
pop ecx
mov ebx, dword [ebp - 0x64]
mov dword [ebp - 0x3c], ebx
test ebx, ebx
je 0x4070ad
mov eax, dword [ebx]
mov dword [ebp - 0x38], eax
mov word [ebp - 0x50], 0x90
mov edx, 3
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
call dword [ecx - 4]
mov word [ebp - 0x50], 0x78
mov edx, dword [ebp - 0x60]
mov dword fs:[0], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret