Function at 0x588780
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdd0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x228], ebx
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
xor eax, eax
push ebp
push 0x588a2e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.00406ddc
cmp byte [ebp - 5], 0
je 0x5887e0
mov ebx, 0x23
jmp 0x5887e5
mov ebx, 0x1a
xor eax, eax
push ebp
push 0x588825
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push ebx
lea eax, [ebp - 0x216]
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderPathW
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x216]
call fcn.00406f88
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x588833
cmp byte [ebp - 0xd], 0
je 0x58884b
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00471bb0
test al, al
jne 0x588a08
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.00406ddc
xor eax, eax
push ebp
push 0x588901
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x49fee0]
call fcn.004a0214
mov ebx, eax
mov dword [ebx + 0x18], 1
cmp byte [ebp - 5], 0
je 0x58889d
mov edx, 0x80000002
mov eax, ebx
call fcn.004a02f0
lea eax, [ebp - 4]
mov edx, 0x588a48
call fcn.00406e30
jmp 0x5888b6
mov edx, 0x80000001
mov eax, ebx
call fcn.004a02f0
lea eax, [ebp - 4]
mov edx, 0x588a74
call fcn.00406e30
mov edx, 0x588a90
mov eax, ebx
call fcn.004a0dd8
test al, al
je 0x5888f0
mov edx, 0x588a90
xor ecx, ecx
mov eax, ebx
call fcn.004a0434
test al, al
je 0x5888f0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.004a0964
mov byte [ebp - 0xd], 1
mov eax, ebx
call fcn.004a02c0
mov eax, ebx
call fcn.00404700
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x58890b
cmp byte [ebp - 0xd], 0
je 0x588923
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00471bb0
test al, al
jne 0x588a08
mov eax, dword [0x7334b4]
cmp dword [eax], 5
jg 0x588991
cmp byte [ebp - 5], 0
je 0x588956
lea eax, [ebp - 0x21c]
call fcn.005886f8
mov edx, dword [ebp - 0x21c]
mov eax, dword [ebp - 0xc]
mov ecx, 0x588b20
call fcn.004071b0
jmp 0x5889f0
lea eax, [ebp - 0x220]
call fcn.005886f8
push dword [ebp - 0x220]
push 0x588b94
lea eax, [ebp - 0x224]
call fcn.005886b4
push dword [ebp - 0x224]
push 0x588bd4
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407280
jmp 0x5889f0
cmp byte [ebp - 5], 0
je 0x5889b7
lea eax, [ebp - 0x228]
call fcn.005886f8
mov edx, dword [ebp - 0x228]
mov eax, dword [ebp - 0xc]
mov ecx, 0x588c04
call fcn.004071b0
jmp 0x5889f0
lea eax, [ebp - 0x22c]
call fcn.005886f8
push dword [ebp - 0x22c]
push 0x588c2c
lea eax, [ebp - 0x230]
call fcn.005886b4
push dword [ebp - 0x230]
push 0x588c48
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407280
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
call fcn.00471bb0
test al, al
jne 0x588a08
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.00406ddc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x588a35
lea eax, [ebp - 0x230]
mov edx, 6
call fcn.00406dd4
lea eax, [ebp - 4]
call fcn.00406dcc
ret