Function at 0x403c9d
Capabilities:
Delete directory

Disassembly:
push 0x440
mov eax, 0x4bc001
call fcn.004180a8
mov eax, dword [ebp + 0xc]
mov ecx, 0x4d4894
mov edx, dword [ebp + 8]
mov dword [ebp - 0x430], eax
mov eax, dword [ebp + 0x10]
test eax, eax
push 6
cmovne ecx, eax
mov dword [ebp - 0x448], str.File_Copy_x64:
xor esi, esi
mov dword [ebp - 0x44c], ecx
pop ecx
inc esi
mov dword [ebp - 0x444], str.File_Copy_ind:
test eax, eax
mov dword [ebp - 0x440], str.File_Copy_prt:
push 0x4d4890
cmove esi, ecx
mov dword [ebp - 0x43c], str.File_Overwrite:
push edx
mov dword [ebp - 0x438], str.File_Del:
mov dword [ebp - 0x418], esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov edi, eax
mov dword [ebp - 0x42c], edi
pop ecx
pop ecx
test edi, edi
je 0x4040ea
jmp 0x403f5a
xor eax, eax
mov word [ebp - 0x12], ax
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
pop ecx
lea ecx, [ebp - 0x410]
lea eax, [ecx + eax*2]
cmp eax, ecx
jbe 0x403d72
push 0x20
pop esi
cmp word [eax], si
ja 0x403d6c
xor ecx, ecx
mov word [eax], cx
sub eax, 2
lea ecx, [ebp - 0x410]
cmp eax, ecx
ja 0x403d55
mov esi, dword [ebp - 0x418]
mov edi, dword [ebp - 0x430]
xor ebx, ebx
push dword [ebp + ebx*4 - 0x44c]
lea eax, [ebp - 0x410]
push eax
call sub.VCRUNTIME140.dll_wcsstr
pop ecx
pop ecx
lea ecx, [ebp - 0x410]
cmp eax, ecx
jne 0x403f4b
push edi
lea ecx, [ebp - 0x414]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
and dword [ebp - 4], 0
push str.File_Copy_prt:
push dword [ebp + ebx*4 - 0x44c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscmp]
pop ecx
pop ecx
test eax, eax
jne 0x403e86
push 1
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0x414]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__24]
push 0x4d3d70
mov ecx, eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__25]
lea ecx, [ebp - 0x434]
mov esi, eax
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test esi, esi
jne 0x403e3d
mov eax, dword [ebp - 0x414]
lea ecx, [ebp - 0x414]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t_]
push eax
lea ecx, [ebp - 0x414]
mov byte [ebp - 4], 1
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x420]
mov byte [ebp - 4], 0
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push 0x5c
lea ecx, [ebp - 0x414]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__8]
push eax
lea eax, [ebp - 0x424]
push eax
lea ecx, [ebp - 0x414]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t_]
push eax
lea ecx, [ebp - 0x414]
mov byte [ebp - 4], 2
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x424]
mov byte [ebp - 4], 0
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov esi, dword [ebp - 0x418]
lea eax, [ebp - 0x410]
push 0x4d4948
push eax
call sub.VCRUNTIME140.dll_wcsstr
pop ecx
pop ecx
test eax, eax
je 0x403ea2
xor ecx, ecx
mov word [eax], cx
push dword [ebp + ebx*4 - 0x44c]
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
pop ecx
lea ecx, [ebp - 0x410]
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
push 0
push 0x3e
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
cmp eax, 0xffffffff
jle 0x403f21
inc eax
lea ecx, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__4]
push eax
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x428]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__5]
push dword [ebp - 0x41c]
push edi
call fcn.004025c9
pop ecx
pop ecx
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x414]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
inc ebx
cmp ebx, esi
jl 0x403d7a
mov edi, dword [ebp - 0x42c]
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetws]
lea eax, [ebp - 0x410]
push edi
push 0x200
push eax
call ebx
add esp, 0xc
test eax, eax
jne 0x403d31
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_rewind]
push edi
lea eax, [ebp - 0x410]
push 0x200
push eax
call ebx
add esp, 0x10
test eax, eax
je 0x4040e2
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
xor eax, eax
mov word [ebp - 0x12], ax
lea eax, [ebp - 0x410]
push eax
call esi
pop ecx
lea ecx, [ebp - 0x410]
lea eax, [ecx + eax*2]
cmp eax, ecx
jbe 0x403fde
push 0x20
pop edi
cmp word [eax], di
ja 0x403fd8
xor ecx, ecx
mov word [eax], cx
sub eax, 2
lea ecx, [ebp - 0x410]
cmp eax, ecx
ja 0x403fc1
mov edi, dword [ebp - 0x42c]
lea eax, [ebp - 0x410]
push str.Make_Dir:
push eax
call sub.VCRUNTIME140.dll_wcsstr
pop ecx
pop ecx
lea ecx, [ebp - 0x410]
cmp eax, ecx
jne 0x4040c8
push str.Make_Dir:
call esi
pop ecx
lea ecx, [ebp - 0x410]
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
push dword [ebp - 0x430]
lea ecx, [ebp - 0x420]
mov dword [ebp - 4], 5
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
push 0x4d3d70
push eax
lea eax, [ebp - 0x424]
mov byte [ebp - 4], 6
push eax
call fcn.00401a36
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x428]
push eax
call fcn.004019e2
add esp, 0x18
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x428]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x424]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push dword [ebp - 0x418]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x4040b8
push dword [ebp - 0x418]
call fcn.004024f9
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push edi
lea eax, [ebp - 0x410]
push 0x200
push eax
call ebx
add esp, 0xc
test eax, eax
jne 0x403fa1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
pop ecx
call fcn.00418057
ret