Function at 0x4012d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov byte [ebp - 0x5c], dl
mov byte [ebp - 0x58], cl
mov dword [ebp - 0x2c], 0x49f
mov eax, 0x10f
mov word [ebp - 0x3c], ax
mov ecx, 0xbd
mov word [ebp - 0x4c], cx
movzx edx, word [ebp - 0x4c]
cmp edx, 0xf51
jne 0x40139c
movzx eax, word [ebp - 0x4c]
sub eax, 0x2ea
mov word [ebp - 0x4c], ax
movzx ecx, word [ebp - 0x3c]
push ecx
movzx edx, word [ebp - 0x3c]
push edx
movzx eax, byte [ebp - 0x5c]
push eax
call fcn.00596610
add esp, 0xc
movzx ecx, word [ebp - 0x4c]
add ecx, 0x2a7
mov word [ebp - 0x4c], cx
cmp dword [ebp - 0x2c], 0x37b0
jne 0x401385
mov dl, byte [ebp - 0x58]
mov byte [ebp - 0x60], dl
cmp byte [ebp - 0x60], 0x2b
je 0x40134e
jmp 0x40137f
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
mov dword [ebp - 0x14], eax
movzx eax, word [ebp - 0x3c]
push eax
movzx ecx, word [ebp - 0x4c]
push ecx
movzx edx, word [ebp - 0x3c]
push edx
mov dl, byte [ebp - 0x58]
mov ecx, dword [ebp - 0x3c]
call fcn.00596e20
jmp 0x401383
mov byte [ebp - 0x58], 0xf6
jmp 0x40139c
movzx eax, word [ebp - 0x4c]
cmp eax, 0xb9a
jle 0x40139c
mov ecx, dword [ebp - 0x2c]
and ecx, 0x152c
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x48], edx
movsx eax, word [ebp - 0x3c]
cmp eax, 0x270
jg 0x401417
mov cl, byte [ebp - 0x58]
mov byte [ebp - 0x15], cl
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x64], edx
cmp dword [ebp - 0x64], 0x3670
je 0x4013c4
jmp 0x401411
movzx eax, word [ebp - 0x4c]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0x736
je 0x4013fe
cmp dword [ebp - 0x68], 0xd9c
je 0x4013df
jmp 0x40140f
lea ecx, [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.USERENV.dll_GetProfilesDirectoryA]
mov dword [ebp - 0x28], eax
mov al, byte [ebp - 0x15]
mov byte [ebp - 0x58], al
mov cl, byte [ebp - 0x5c]
mov byte [ebp + 8], cl
jmp 0x40140f
lea edx, [ebp - 0x3c]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.USERENV.dll_GetProfilesDirectoryA]
mov dword [ebp - 0x20], eax
jmp 0x401417
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x1c], ecx
mov dl, byte [ebp - 0x5c]
mov byte [ebp - 0x6c], dl
cmp byte [ebp - 0x6c], 0x1a
je 0x401425
jmp 0x401464
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x48]
imul ecx, dword [eax]
cmp ecx, dword [ebp - 0x2c]
jl 0x401462
mov edx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x2c]
shl edx, cl
mov eax, dword [ebp - 0x1c]
mov dword [eax], edx
movzx ecx, word [ebp - 0x4c]
sar ecx, 8
mov word [ebp - 0x4c], cx
call dword [sym.imp.ole32.dll_CoSuspendClassObjects]
mov dword [ebp - 0x30], eax
movsx edx, word [ebp - 0x3c]
xor edx, 0x667
mov word [ebp - 0x3c], dx
jmp 0x4014b0
lea eax, [ebp - 0x48]
mov dword [ebp - 0x54], eax
mov cl, byte [ebp + 8]
mov byte [ebp - 0x4d], cl
movsx edx, byte [ebp - 0x4d]
movsx eax, byte [ebp + 8]
or edx, eax
movsx ecx, byte [ebp - 0x5c]
cmp edx, ecx
jne 0x4014b0
mov dl, byte [ebp - 0x4d]
mov byte [ebp - 0x70], dl
cmp byte [ebp - 0x70], 0x68
je 0x401490
jmp 0x4014a4
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
mov dword [edx], ecx
call fcn.00595ff0
jmp 0x4014b0
mov al, byte [ebp - 0x58]
mov byte [ebp - 0x31], al
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x44], 0xf689
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 4], edx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x10], eax
mov eax, 1
mov esp, ebp
pop ebp
ret 4