Function at 0x409047
Capabilities:
Create directory
Get common file path

Disassembly:
push 0x86c
mov eax, 0x49039f
call fcn.00427df1
mov esi, ecx
mov dword [ebp - 0x874], esi
push 0x800
xor ebx, ebx
mov dword [ebp - 0x874], esi
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.00429200
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
xor eax, eax
mov dword [ebp - 0x858], ebx
mov word [ebp - 0x858], ax
lea ecx, [ebp - 0x858]
lea eax, [ebp - 0x810]
mov dword [ebp - 0x848], ebx
push eax
mov dword [ebp - 0x844], 7
call fcn.00402048
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x858]
mov eax, dword [ebp - 0x848]
push 8
pop edi
cmp dword [ebp - 0x844], edi
cmovae ecx, dword [ebp - 0x858]
cmp word [ecx + eax*2 - 2], 0x5c
je 0x4090f5
push 0x4ac9b0
lea ecx, [ebp - 0x858]
call fcn.00407941
push 7
pop edx
mov ecx, edx
mov dword [ebp - 0x840], ebx
xor eax, eax
mov dword [ebp - 0x82c], ecx
mov word [ebp - 0x840], ax
mov dword [ebp - 0x828], ebx
mov dword [ebp - 0x814], edx
mov word [ebp - 0x828], ax
mov byte [ebp - 4], 2
cmp ecx, edi
mov dword [ebp - 0x830], ebx
lea eax, [ebp - 0x840]
cmovae eax, dword [ebp - 0x840]
lea edx, [ebp - 0x840]
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x828]
cmp dword [ebp - 0x814], edi
mov dword [ebp - 0x818], ebx
cmovae eax, dword [ebp - 0x828]
mov word [eax], cx
mov ecx, edi
call fcn.0040a604
push eax
lea edx, [ebp - 0x858]
lea ecx, [ebp - 0x870]
call fcn.00409690
pop ecx
lea ecx, [ebp - 0x828]
cmp ecx, eax
je 0x409198
mov byte [ebp - 0x874], bl
push dword [ebp - 0x874]
push eax
call fcn.00401a64
lea ecx, [ebp - 0x870]
call fcn.0040172c
cmp dword [ebp - 0x814], edi
lea ecx, [ebp - 0x828]
cmovae ecx, dword [ebp - 0x828]
call fcn.0040894e
test al, al
je 0x4091ca
mov ecx, dword [ebp - 0x82c]
jmp 0x409126
cmp dword [ebp - 0x814], edi
lea eax, [ebp - 0x828]
cmovae eax, dword [ebp - 0x828]
push eax
call fcn.0043a3e6
pop ecx
lea eax, [ebp - 0x828]
mov ecx, esi
push eax
call fcn.00401ea1
mov eax, dword [ebp - 0x814]
cmp eax, edi
jb 0x409246
mov ecx, dword [ebp - 0x828]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], ecx
cmp eax, 0x1000
jb 0x40923d
lea eax, [ebp - 0x878]
push eax
lea eax, [ebp - 0x874]
push eax
call fcn.004016dc
mov eax, dword [ebp - 0x878]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x874]
push eax
push ecx
call fcn.004272b3
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x818], ebx
mov word [ebp - 0x828], ax
mov eax, dword [ebp - 0x82c]
mov dword [ebp - 0x814], 7
cmp eax, edi
jb 0x4092b3
mov ecx, dword [ebp - 0x840]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x874], eax
mov dword [ebp - 0x878], ecx
cmp eax, 0x1000
jb 0x4092aa
lea eax, [ebp - 0x874]
push eax
lea eax, [ebp - 0x878]
push eax
call fcn.004016dc
mov eax, dword [ebp - 0x874]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x878]
push eax
push ecx
call fcn.004272b3
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x830], ebx
mov word [ebp - 0x840], ax
mov eax, dword [ebp - 0x844]
mov dword [ebp - 0x82c], 7
cmp eax, edi
jb 0x409320
mov ecx, dword [ebp - 0x858]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x874], eax
mov dword [ebp - 0x878], ecx
cmp eax, 0x1000
jb 0x409317
lea eax, [ebp - 0x874]
push eax
lea eax, [ebp - 0x878]
push eax
call fcn.004016dc
mov eax, dword [ebp - 0x874]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x878]
push eax
push ecx
call fcn.004272b3
pop ecx
pop ecx
mov eax, esi
call fcn.00427da0
ret