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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
test esi, esi
jne 0x447acf
mov eax, 0x80004003
jmp 0x447d24
push 0x5c
push esi
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
test eax, eax
je 0x447ae0
mov esi, eax
cmp dword [ebx + 0xc], edi
je 0x447af2
push dword [ebx + 0xc]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
mov dword [ebx + 0xc], edi
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x447af7
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
xor ecx, ecx
push 2
pop edx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
pop ecx
mov ecx, eax
mov dword [ebx + 0xc], ecx
test ecx, ecx
jne 0x447b38
mov eax, 0x8007000e
jmp 0x447d24
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov edx, esi
mov esi, ecx
call fcn.0042c88c
cmp dword [ebx + 0x18], edi
jne 0x447d22
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x447d22
cmp dword [ebx + 0x18], edi
je 0x447b7d
push dword [ebx + 0x18]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
mov dword [ebx + 0x18], edi
lea eax, reloc.ADVAPI32.dll_TraceMessage
test eax, eax
je 0x447b8e
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push dword [ebx + 0xc]
mov eax, esi
lea edi, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c8f1
mov ecx, edi
push 2
lea edx, [ecx + 2]
xor edi, edi
pop esi
mov ax, word [ecx]
add ecx, esi
cmp ax, di
jne 0x447ba8
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 1]
xor ecx, ecx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
mov esi, eax
pop ecx
mov dword [ebx + 0x18], esi
test esi, esi
je 0x447d22
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
lea edx, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c88c
push dword [ebx + 0x18]
call fcn.00440bc3
test eax, eax
jne 0x447d22
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x447d22
cmp dword [ebx + 0x18], edi
je 0x447c2c
push dword [ebx + 0x18]
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
mov dword [ebx + 0x18], edi
lea eax, reloc.ADVAPI32.dll_TraceMessage
test eax, eax
je 0x447c3d
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea ecx, reloc.ADVAPI32.dll_TraceMessage
push 2
lea edx, [ecx + 2]
pop esi
mov ax, word [ecx]
add ecx, esi
cmp ax, di
jne 0x447c49
sub ecx, edx
mov edx, dword [ebx + 0xc]
sar ecx, 1
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, di
jne 0x447c5d
sub edx, esi
sar edx, 1
lea esi, [edx + 0x41]
add esi, ecx
xor ecx, ecx
push 2
pop edx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
mov edx, eax
pop ecx
mov dword [ebx + 0x18], edx
test edx, edx
je 0x447d22
mov eax, dword [0x468620]
push eax
inc eax
mov dword [ebx + 0x48], 1
mov dword [0x468620], eax
mov ecx, edx
jmp 0x447cd7
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x447cba
push 0x57
pop eax
cmp eax, 0xb7
jne 0x447cfd
mov ecx, dword [0x468620]
cmp ecx, reloc.ADVAPI32.dll_TraceMessage
jae 0x447cfd
push ecx
inc ecx
mov dword [0x468620], ecx
mov ecx, dword [ebx + 0x18]
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x41ee44
mov eax, esi
call fcn.0042c95b
add esp, 0xc
push edi
push dword [ebx + 0x18]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x447cad
jmp 0x447d07
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0x80004005
push dword [ebx + 0x18]
call fcn.004402ab
push dword [ebx + 0xc]
mov edi, dword [ebx + 0x18]
mov eax, esi
call fcn.0042c8f1
mov edi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004655f1
leave
ret