Function at 0x408e30
Capabilities:
Create directory
Delete directory
Delete file

Disassembly:
push ebp
mov eax, str.test.txt
mov ebp, esp
push edi
push esi
lea esi, [ebp - 0x804]
lea ecx, [ebp - 0x5fc]
push ebx
mov edx, esi
sub esp, 0x92c
call fcn.00407140
lea eax, [ebp - 0x5fc]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CreateDirectoryW]
sub esp, 8
mov ebx, eax
mov eax, 0x6dd
call fcn.00406da0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 8], ebx
mov dword [esp], ebx
lea ebx, [ebp - 0x910]
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Unexpected_retval__d__error__ld._n
call fcn.004077c0
mov dword [esp], esi
mov esi, dword [sym.imp.oleaut32.dll_SysAllocString]
mov dword [ebp - 0x920], esi
call esi
mov dword [ebp - 0x914], eax
mov edi, eax
mov eax, dword [0x448004]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x10], ebx
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp], eax
call dword [edx + 0x78]
sub esp, 0x14
mov ebx, eax
mov eax, 0x6e2
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov dword [esp], str.first
call esi
mov edx, dword [ebp - 0x910]
mov dword [ebp - 0x90c], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ecx + 0x3c]
sub esp, 8
mov ebx, eax
mov eax, 0x6e6
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov edi, dword [sym.imp.oleaut32.dll_SysFreeString]
mov dword [esp], eax
mov dword [ebp - 0x918], edi
call edi
sub esp, 4
mov dword [esp], 0x41c308
call esi
mov edx, dword [ebp - 0x910]
lea esi, [ebp - 0x90c]
mov dword [ebp - 0x90c], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ecx + 0x3c]
sub esp, 8
mov ebx, eax
mov eax, 0x6eb
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x910]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0x6ef
call fcn.00406da0
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0xdeadbeef
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0x6f3
call fcn.00406da0
xor eax, eax
cmp ebx, 0x800a0036
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x6f4
call fcn.00406da0
mov edx, dword [ebp - 0x90c]
mov eax, 1
test edx, edx
je 0x409095
mov ecx, dword [0x448050]
test ecx, ecx
sete cl
xor eax, eax
cmp edx, 0xdeadbeef
sete al
and eax, ecx
mov dword [esp + 8], edx
lea edi, [ebp - 0x910]
mov dword [esp], eax
mov dword [esp + 4], str.got__p_n
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov edi, dword [ebp - 0x914]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [edx + 0x7c]
sub esp, 0x18
mov ebx, eax
mov eax, 0x6f9
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0x6fc
call fcn.00406da0
xor eax, eax
cmp ebx, 0x80004003
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0x701
call fcn.00406da0
mov eax, 1
cmp ebx, 1
je 0x4091a4
mov eax, ebx
or eax, dword [0x448050]
sete al
movzx eax, al
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x3f4]
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.004077c0
xor eax, eax
mov edx, 0x74
mov dword [ebp - 0x906], 0x73726966
mov word [ebp - 0x3f4], ax
movzx eax, word [0x41c942]
mov word [ebp - 0x902], dx
mov word [ebp - 0x908], ax
lea eax, [ebp - 0x908]
mov dword [esp + 0x14], 0x1f4
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov eax, 0x706
sub esp, 0x18
call fcn.00406da0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
call dword [sym.imp.oleaut32.dll_SysStringLen]
mov edi, eax
mov eax, dword [ebp - 0x90c]
sub esp, 4
call fcn.00406fa0
mov ecx, dword [ebp - 0x90c]
xor edx, edx
mov dword [ebp - 0x91c], eax
movzx eax, word [ebp - 0x3f4]
cmp word [ecx], ax
jne 0x409274
xor edx, edx
movzx eax, word [ebp - 0x3f2]
cmp word [ecx + 2], ax
sete dl
mov dword [esp + 0xc], edi
mov eax, dword [ebp - 0x91c]
lea edi, [ebp - 0x910]
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.got__s___d_n
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
mov eax, dword [ebp - 0x918]
call eax
mov eax, dword [ebp - 0x910]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov edi, dword [ebp - 0x914]
mov dword [esp], eax
mov dword [esp + 4], edi
call dword [edx + 0x7c]
sub esp, 0x18
mov edi, eax
mov eax, 0x70c
call fcn.00406da0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + str.first]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x409320
cmp word [ebp - 0x3f4], 0
mov edx, ebx
je 0x409349
nop
add edx, 2
cmp word [edx], 0
jne 0x409340
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x41b95c]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409350
cmp word [ebp - 0x3f4], 0
mov edx, ebx
je 0x409379
nop
add edx, 2
cmp word [edx], 0
jne 0x409370
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x41c308]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409380
cmp word [ebp - 0x3f4], 0
mov edx, ebx
je 0x4093a9
nop
add edx, 2
cmp word [edx], 0
jne 0x4093a0
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x41b95c]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4093b0
mov dword [ebp - 0x90c], 0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov edi, eax
mov eax, 0x714
call fcn.00406da0
mov eax, 1
cmp edi, 1
je 0x409406
mov eax, edi
or eax, dword [0x448050]
sete al
movzx eax, al
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.004077c0
mov eax, 0x715
call fcn.00406da0
mov eax, dword [ebp - 0x90c]
call fcn.00406fa0
mov edi, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [ebp - 0x91c], eax
mov eax, dword [ebp - 0x90c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call edi
mov edx, dword [ebp - 0x91c]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp + 4], str.got__s_n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
mov eax, dword [ebp - 0x918]
call eax
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0xdeadbeef
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov dword [ebp - 0x91c], eax
mov eax, 0x71b
call fcn.00406da0
mov edx, dword [ebp - 0x91c]
xor eax, eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
cmp edx, 0x800a003e
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x71c
call fcn.00406da0
mov edx, dword [ebp - 0x90c]
mov eax, 1
test edx, edx
je 0x409507
mov eax, dword [0x448050]
test eax, eax
sete cl
xor eax, eax
cmp edx, 0xdeadbeef
sete al
and eax, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.got__p_n
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0xdeadbeef
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 8
mov dword [ebp - 0x91c], eax
mov eax, 0x721
call fcn.00406da0
mov edx, dword [ebp - 0x91c]
xor eax, eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
cmp edx, 0x800a003e
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x722
call fcn.00406da0
mov edx, dword [ebp - 0x90c]
mov eax, 1
test edx, edx
je 0x4095a0
mov ecx, dword [0x448050]
test ecx, ecx
sete cl
xor eax, eax
cmp edx, 0xdeadbeef
sete al
and eax, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.got__p_n
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
lea ecx, [ebp - 0x910]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov ecx, dword [ebp - 0x914]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [edx + 0x7c]
sub esp, 0x18
mov dword [ebp - 0x91c], eax
mov eax, 0x727
call fcn.00406da0
mov edx, dword [ebp - 0x91c]
xor eax, eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x30]
sub esp, 8
mov dword [ebp - 0x91c], eax
mov eax, 0x72b
call fcn.00406da0
mov edx, dword [ebp - 0x91c]
xor eax, eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x72c
call fcn.00406da0
mov eax, dword [ebp - 0x90c]
mov dword [esp + 4], str.got__p_n
test eax, eax
mov dword [esp + 8], eax
setne al
movzx eax, al
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x72d
call fcn.00406da0
mov eax, dword [ebp - 0x90c]
call fcn.00406fa0
mov dword [ebp - 0x91c], eax
mov dword [esp + 4], str.first
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
call dword [sym.imp.msvcrt.dll_wcscmp]
mov edx, dword [ebp - 0x91c]
mov dword [esp + 4], str.got__s_n
test eax, eax
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
mov eax, dword [ebp - 0x918]
call eax
xor eax, eax
sub esp, 4
lea esi, [esi]
nop
movzx edx, word [eax + 0x41c308]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x409720
cmp word [ebp - 0x3f4], 0
mov edx, ebx
je 0x409749
nop
add edx, 2
cmp word [edx], 0
jne 0x409740
xor eax, eax
lea esi, [esi]
nop
movzx ecx, word [eax + 0x41b95c]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x409750
mov dword [ebp - 0x90c], 0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
mov dword [ebp - 0x91c], eax
sub esp, 8
mov eax, 0x734
call fcn.00406da0
mov edx, dword [ebp - 0x91c]
mov eax, 1
cmp edx, 1
je 0x4097b0
mov eax, edx
or eax, dword [0x448050]
sete al
movzx eax, al
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_hr__lx._n
call fcn.004077c0
mov eax, 0x735
call fcn.00406da0
mov eax, dword [ebp - 0x90c]
call fcn.00406fa0
mov dword [ebp - 0x91c], eax
mov eax, dword [ebp - 0x90c]
mov dword [esp], ebx
lea ebx, [ebp - 0x910]
mov dword [esp + 4], eax
call edi
mov edx, dword [ebp - 0x91c]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edx
movzx eax, al
mov dword [esp + 4], str.got__s_n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
mov edi, dword [ebp - 0x918]
call edi
mov eax, dword [ebp - 0x910]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xffffffff
mov ebx, dword [ebp - 0x914]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [edx + 0x78]
sub esp, 0x14
mov ebx, eax
mov eax, 0x73c
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov dword [esp], 0x41c304
mov eax, dword [ebp - 0x920]
call eax
mov edx, dword [ebp - 0x910]
mov dword [ebp - 0x90c], eax
sub esp, 4
mov ecx, dword [edx]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [ecx + 0x38]
sub esp, 8
mov ebx, eax
mov eax, 0x73f
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x90c]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x910]
lea edi, [ebp - 0x910]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [0x448004]
sub esp, 4
mov edx, dword [eax]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov ebx, dword [ebp - 0x914]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dword [edx + 0x7c]
sub esp, 0x18
mov ebx, eax
mov eax, 0x744
call fcn.00406da0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x90c], 0xdeadbeef
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0x34]
sub esp, 8
mov ebx, eax
mov eax, 0x748
call fcn.00406da0
xor eax, eax
cmp ebx, 0x800a003e
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_hr__lx._n
mov dword [esp], eax
call fcn.004077c0
mov eax, 0x749
call fcn.00406da0
mov edx, dword [ebp - 0x90c]
mov eax, 1
test edx, edx
je 0x4099e3
mov eax, dword [0x448050]
test eax, eax
sete cl
xor eax, eax
cmp edx, 0xdeadbeef
sete al
and eax, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.got__p_n
call fcn.004077c0
mov eax, dword [ebp - 0x910]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov esi, dword [ebp - 0x914]
sub esp, 4
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_DeleteFileW]
lea eax, [ebp - 0x5fc]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
mov dword [esp], esi
mov eax, dword [ebp - 0x918]
call eax
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret