Function at 0x4152ae
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a8
mov eax, dword [0x58569c]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
push 0x546ad8
lea esi, [ebp - 0x38c]
mov byte [ebp - 0x695], 0
call fcn.0040204f
push 0x546aec
lea esi, [ebp - 0x2d8]
call fcn.0040204f
push 0x546b08
lea esi, [ebp - 0x2a0]
call fcn.0040204f
push 0x543e68
lea esi, [ebp - 0x2bc]
call fcn.0040204f
xor eax, eax
mov word [ebp - 0x268], ax
mov eax, dword [ebp + 8]
push 7
xor esi, esi
sub eax, esi
pop ebx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x258], esi
je 0x4156ba
dec eax
je 0x4156ab
dec eax
je 0x41569e
dec eax
je 0x415691
dec eax
je 0x415473
dec eax
jne 0x415911
push 0x206
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x212]
push esi
push eax
call fcn.00506540
add esp, 0xc
lea eax, [ebp - 0x214]
push eax
push esi
push esi
push 0xb
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x41546c
lea eax, [ebp - 0x214]
push eax
lea esi, [ebp - 0x370]
call fcn.0040204f
lea eax, [ebp - 0x2d8]
push eax
push 1
push 0
mov eax, esi
push eax
lea eax, [ebp - 0x3a8]
call fcn.0044a559
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fbba
push 1
xor edi, edi
lea esi, [ebp - 0x3a8]
call fcn.004021a4
push 1
lea esi, [ebp - 0x370]
call fcn.004021a4
mov dword [ebp - 0x21c], ebx
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x220], ebx
mov word [ebp - 0x230], ax
jmp 0x415412
lea eax, [ebp - 0x230]
call fcn.00449a3d
test al, al
je 0x415412
push ebx
lea ecx, [ebp - 0x230]
call fcn.004498a9
pop ecx
lea eax, [ebp - 0x310]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc82
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0044a59f
cmp dword [eax + 0x10], ebx
push 1
setne byte [ebp - 0x695]
xor edi, edi
lea esi, [ebp - 0x310]
call fcn.004021a4
cmp byte [ebp - 0x695], bl
jne 0x4153f6
push 1
lea esi, [ebp - 0x230]
call fcn.004021a4
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc3b
xor bl, bl
jmp 0x41563d
xor eax, eax
push 0x6b
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x23c], esi
mov word [ebp - 0x24c], ax
call fcn.00454a03
pop ecx
call fcn.004182a9
test al, al
jne 0x4154f6
lea eax, [ebp - 0x284]
push 0x157e
push eax
call fcn.00437692
pop ecx
pop ecx
lea eax, [ebp - 0x3e0]
push eax
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x284]
call fcn.0044abc8
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.0044a59f
push 1
xor edi, edi
lea esi, [ebp - 0x3e0]
call fcn.004021a4
push 1
lea esi, [ebp - 0x284]
call fcn.004021a4
xor esi, esi
lea eax, [ebp - 0x38c]
push eax
push 2
push esi
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fbba
xor eax, eax
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x694]
push eax
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 0x220], esi
call fcn.0044fc82
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0044a59f
cmp dword [eax + 0x10], esi
jmp 0x4155f1
lea eax, [ebp - 0x230]
call fcn.00449a3d
test al, al
je 0x4155cd
push 1
lea ecx, [ebp - 0x230]
call fcn.004498a9
pop ecx
test al, al
je 0x4155cd
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x3c4]
call fcn.0044a998
cmp dword [ebp - 0x28c], 8
mov ecx, eax
mov eax, dword [ebp - 0x2a0]
jae 0x41559a
lea eax, [ebp - 0x2a0]
push dword [ebp - 0x290]
xor esi, esi
push eax
mov eax, dword [ecx + 0x10]
call fcn.00402852
mov ebx, eax
neg ebx
sbb bl, bl
push 1
xor edi, edi
lea esi, [ebp - 0x3c4]
call fcn.004021a4
inc bl
je 0x4155cd
call fcn.0040636a
mov byte [eax + 3], 1
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc82
push eax
lea eax, [ebp - 0x230]
push eax
call fcn.0044a59f
cmp dword [eax + 0x10], 0
setne bl
push 1
xor edi, edi
lea esi, [ebp - 0x2f4]
call fcn.004021a4
test bl, bl
jne 0x415550
call fcn.0040636a
call fcn.00406300
push 1
lea esi, [ebp - 0x230]
call fcn.004021a4
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc3b
push 1
lea esi, [ebp - 0x24c]
call fcn.004021a4
inc bl
push 1
xor edi, edi
lea esi, [ebp - 0x268]
call fcn.004021a4
push 1
lea esi, [ebp - 0x2bc]
call fcn.004021a4
push 1
lea esi, [ebp - 0x2a0]
call fcn.004021a4
push 1
lea esi, [ebp - 0x2d8]
call fcn.004021a4
push 1
lea esi, [ebp - 0x38c]
call fcn.004021a4
mov ecx, dword [ebp - 8]
pop edi
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.004fe191
leave
ret
lea edi, [ebp - 0x268]
call fcn.0041705f
jmp 0x4156c5
lea ecx, [ebp - 0x268]
call fcn.004170d3
jmp 0x4156c5
lea esi, [ebp - 0x268]
call fcn.00416fa1
xor esi, esi
jmp 0x4156c5
lea edi, [ebp - 0x268]
call fcn.00416feb
cmp dword [ebp - 0x258], esi
je 0x415911
lea eax, [ebp - 0x2d8]
push eax
xor ebx, ebx
inc ebx
push ebx
push esi
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x284]
mov dword [ebp - 0x224], esi
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], esi
call fcn.0044a559
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fbba
push ebx
xor edi, edi
lea esi, [ebp - 0x284]
call fcn.004021a4
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc82
jmp 0x4157d3
lea eax, [ebp - 0x24c]
push eax
lea esi, [ebp - 0x284]
call fcn.0040202c
lea eax, [ebp - 0x6a4]
push eax
mov eax, esi
call fcn.00417765
pop ecx
lea eax, [ebp - 0x24c]
push eax
lea esi, [ebp - 0x354]
call fcn.0040202c
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x334], eax
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x330], eax
mov eax, esi
push eax
lea edi, [ebp - 0x224]
call fcn.0041847d
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc82
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.0044a59f
push ebx
xor edi, edi
lea esi, [ebp - 0x32c]
call fcn.004021a4
push ebx
lea esi, [ebp - 0x354]
call fcn.004021a4
push ebx
lea esi, [ebp - 0x284]
call fcn.004021a4
cmp dword [ebp - 0x23c], edi
jne 0x415734
mov eax, dword [ebp - 0x220]
mov esi, dword [ebp - 0x224]
sub eax, esi
push 0x28
cdq
pop ecx
idiv ecx
test eax, eax
je 0x4158e1
mov byte [ebp - 0x695], 1
mov dword [ebp - 0x69c], esi
mov dword [ebp - 0x6a0], eax
cmp dword [ebp + 8], 0
jne 0x415827
cmp dword [esi + 0x14], 8
jb 0x41581e
mov eax, dword [esi]
jmp 0x415820
mov eax, esi
push eax
call fcn.00416ef5
pop ecx
cmp dword [ebp + 8], 3
jne 0x415840
cmp dword [esi + 0x14], 8
jb 0x415837
mov eax, dword [esi]
jmp 0x415839
mov eax, esi
push eax
call fcn.0041721c
pop ecx
push 0
mov ecx, esi
call fcn.004498a9
pop ecx
test al, al
je 0x4158c6
push esi
lea eax, [ebp - 0x32c]
call fcn.0044a998
cmp dword [ebp - 0x2a8], 8
mov ecx, eax
mov eax, dword [ebp - 0x2bc]
jae 0x415871
lea eax, [ebp - 0x2bc]
push dword [ebp - 0x2ac]
xor esi, esi
push eax
mov eax, dword [ecx + 0x10]
call fcn.00402852
mov ebx, eax
neg ebx
sbb bl, bl
push 1
xor edi, edi
lea esi, [ebp - 0x32c]
call fcn.004021a4
inc bl
je 0x4158c6
mov eax, dword [ebp + 8]
sub eax, edi
je 0x4158bd
dec eax
je 0x4158b3
dec eax
jne 0x4158c6
call fcn.0040636a
mov byte [eax + 2], 1
jmp 0x4158c6
call fcn.0040636a
mov byte [eax], 1
jmp 0x4158c6
call fcn.0040636a
mov byte [eax + 1], 1
mov esi, dword [ebp - 0x69c]
add esi, 0x28
dec dword [ebp - 0x6a0]
mov dword [ebp - 0x69c], esi
jne 0x41580e
call fcn.0040636a
call fcn.00406300
push 1
xor edi, edi
lea esi, [ebp - 0x24c]
call fcn.004021a4
lea eax, [ebp - 0x694]
push eax
call fcn.0044fc3b
lea esi, [ebp - 0x224]
call fcn.0041844c
mov bl, byte [ebp - 0x695]
jmp 0x41563d