Function at 0x44f860
Capabilities:
Create directory
Delete directory
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x214]
sub esp, 0x424
mov dword [esp + 4], ebx
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathW]
mov edx, ebx
sub esp, 8
cmp word [ebp - 0x214], 0
je 0x44f8a1
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x44f898
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x595700]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x44f8a8
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
sub esp, 8
mov esi, eax
test eax, eax
jne 0x44f8e5
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x78
je 0x44fb6a
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x1f9
xor eax, eax
cmp esi, 1
sete al
mov dword [esp + 4], str.CreateDirectoryW_should_always_succeed_n
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.0044df00
lea ecx, [ebp - 0x41c]
mov dword [esp], 0x104
mov dword [esp + 4], ecx
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
sub esp, 8
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x1fc
mov eax, dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
mov dword [esp], ebx
mov dword [ebp - 0x420], eax
call eax
sub esp, 4
mov dword [esp], eax
mov dword [esp + 4], str.SetCurrentDirectoryW_failed_n
call fcn.0044df00
mov dword [edi + 0x34], 0xdeadbeef
call fcn.0057d110
mov esi, dword [sym.imp.kernel32.dll_RemoveDirectoryW]
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x1ff
mov dword [esp], ebx
call esi
sub esp, 4
test eax, eax
sete al
mov dword [esp + 4], str.RemoveDirectoryW_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.0044df00
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x200
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Expected_ERROR_SHARING_VIOLATION__got__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0044df00
mov eax, dword [edi + 0x30]
mov edx, 0x203
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x2c]
call fcn.0044e3b0
lea ecx, [ebp - 0x41c]
mov dword [esp], ecx
mov eax, dword [ebp - 0x420]
call eax
sub esp, 4
mov dword [esp], ebx
call esi
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x208
xor eax, eax
cmp edi, 1
sete al
mov dword [esp + 4], str.RemoveDirectoryW_should_always_succeed_n
mov dword [esp], eax
call fcn.0044df00
cmp word [ebp - 0x214], 0
mov edx, ebx
je 0x44fa49
lea esi, [esi]
add edx, 2
cmp word [edx], 0
jne 0x44fa40
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x5956e4]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x44fa50
mov dword [esp], ebx
call esi
sub esp, 4
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x20c
mov eax, dword fs:[0x18]
mov edx, dword [eax + 0x34]
test edi, edi
jne 0x44fb40
xor eax, eax
cmp edx, 0x7b
mov ecx, str.False
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], str.RemoveDirectoryW_with_wildcard_should_fail_with_error_183__ret_s_error_ld_n
mov dword [esp], eax
call fcn.0044df00
cmp word [ebp - 0x214], 0
je 0x44fb60
mov eax, ebx
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x44fac8
sub eax, ebx
sar eax, 1
sub eax, 1
mov edx, 0x2a
mov word [ebp + eax*2 - 0x214], dx
mov dword [esp], ebx
call esi
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x212
mov eax, dword fs:[0x18]
mov edx, dword [eax + 0x34]
test ebx, ebx
jne 0x44fb50
xor eax, eax
cmp edx, 0x7b
mov ecx, str.False
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], str.RemoveDirectoryW_with__wildcard_name_should_fail_with_error_183__ret_s_error_ld_n
mov dword [esp], eax
call fcn.0044df00
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, str._True
xor eax, eax
jmp 0x44fa9d
mov ecx, str._True
xor eax, eax
jmp 0x44fb1b
mov eax, 0xffffffff
jmp 0x44fad8
call fcn.0057d110
mov dword [eax], 0x594e33
mov dword [eax + 4], 0x1f5
mov dword [esp], str.CreateDirectoryW_is_not_available_n
call fcn.0044e730
jmp 0x44fb33