Function at 0x40791f
Capabilities:
Create directory
Move file

Disassembly:
push 0x460
mov eax, 0x4bc996
call fcn.004180a8
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x448], eax
call fcn.004078f8
push 0x4d4890
push esi
mov dword [ebp - 0x440], eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfopen]
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x407fba
push edi
lea eax, [ebp - 0x410]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetws]
add esp, 0xc
test eax, eax
je 0x407fb2
mov esi, str.File_Copy_x64:
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]
jmp 0x4079b2
cmp word [eax], 0x20
ja 0x4079bc
xor ecx, ecx
mov word [eax], cx
sub eax, 2
lea ecx, [ebp - 0x410]
cmp eax, ecx
ja 0x4079a4
mov eax, 0x4d4894
push eax
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x410]
push eax
call sub.VCRUNTIME140.dll_wcsstr
pop ecx
pop ecx
lea ecx, [ebp - 0x410]
xor ebx, ebx
cmp eax, ecx
sete bl
cmp eax, ecx
je 0x407a1d
cmp dword [ebp - 0x440], 0
jne 0x4079f9
cmp dword [0x511074], 2
jne 0x407a1d
lea eax, [ebp - 0x410]
mov dword [ebp - 0x428], esi
push esi
push eax
call sub.VCRUNTIME140.dll_wcsstr
mov ebx, eax
lea eax, [ebp - 0x410]
sub ebx, eax
neg ebx
pop ecx
sbb ebx, ebx
pop ecx
inc ebx
test ebx, ebx
jne 0x407ce0
cmp dword [0x511074], 2
jne 0x407a5f
mov ecx, str.File_Copy_prt:
lea eax, [ebp - 0x410]
push ecx
push eax
mov dword [ebp - 0x428], ecx
call sub.VCRUNTIME140.dll_wcsstr
mov ebx, eax
lea eax, [ebp - 0x410]
sub ebx, eax
neg ebx
pop ecx
sbb ebx, ebx
inc ebx
pop ecx
test ebx, ebx
jne 0x407ce0
lea eax, [ebp - 0x410]
push str.File_Copy_ind:
push eax
call sub.VCRUNTIME140.dll_wcsstr
pop ecx
pop ecx
lea ecx, [ebp - 0x410]
xor ebx, ebx
cmp eax, ecx
sete bl
cmp eax, ecx
jne 0x407ce0
xor ebx, ebx
mov dword [ebp - 0x428], esi
cmp dword [0x511074], 2
sete bl
je 0x407ce6
push str.File_Copy_x64:
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 - 0x424]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
xor ebx, ebx
lea ecx, [ebp - 0x424]
push ebx
push 0x3e
mov dword [ebp - 4], ebx
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
cmp eax, 0xffffffff
jle 0x407b1a
push eax
lea eax, [ebp - 0x444]
push eax
lea ecx, [ebp - 0x424]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t_]
push eax
lea ecx, [ebp - 0x424]
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 - 0x444]
mov byte [ebp - 4], bl
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x424]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__6]
push 0x5201f4
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__20]
push 1
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__24]
mov ebx, dword [ebp - 0x42c]
or ebx, 1
mov byte [ebp - 4], 3
push 0x5c
push eax
mov dword [ebp - 0x42c], ebx
mov dword [ebp - 0x448], ebx
call fcn.004048ef
pop ecx
pop ecx
test al, al
je 0x407b9e
push 1
lea eax, [ebp - 0x44c]
push eax
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__24]
push 0x2f
or ebx, 2
push eax
mov dword [ebp - 0x42c], ebx
call fcn.004048ef
mov byte [ebp - 0x411], 1
pop ecx
pop ecx
test al, al
jne 0x407ba5
mov byte [ebp - 0x411], 0
test bl, 2
je 0x407bbf
and ebx, 0xfffffffd
lea ecx, [ebp - 0x44c]
mov dword [ebp - 0x42c], ebx
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov dword [ebp - 4], 2
test bl, 1
je 0x407be0
and ebx, 0xfffffffe
lea ecx, [ebp - 0x450]
mov dword [ebp - 0x42c], ebx
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
cmp byte [ebp - 0x411], 0
je 0x407bfa
push 0x4d4dfc
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__17]
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x430]
push eax
call fcn.004019e2
add esp, 0xc
push str..toinst
lea ecx, [ebp - 0x438]
mov byte [ebp - 4], 4
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__3]
lea eax, [ebp - 0x438]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x430]
push eax
lea eax, [ebp - 0x454]
push eax
call fcn.004019e2
add esp, 0xc
push eax
lea ecx, [ebp - 0x420]
mov byte [ebp - 4], 6
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x454]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x438]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push dword [ebp - 0x420]
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileW]
push dword [ebp - 0x430]
call ebx
push dword [ebp - 0x424]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push dword [ebp - 0x430]
mov esi, eax
push dword [ebp - 0x420]
call ebx
test esi, esi
je 0x407cb5
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
jmp 0x407cb8
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x430]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x420]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x424]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov esi, dword [ebp - 0x428]
test ebx, ebx
je 0x407ee2
push esi
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 0x5201f0
lea ecx, [ebp - 0x418]
mov dword [ebp - 4], 7
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__20]
mov byte [ebp - 4], 8
cmp esi, str.File_Copy_prt:
jne 0x407df2
push 1
lea eax, [ebp - 0x458]
push eax
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__24]
push 0x4d4dfc
push eax
mov byte [ebp - 4], 9
call fcn.004019a5
pop ecx
pop ecx
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 8
mov bl, al
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
test bl, bl
je 0x407daf
mov eax, dword [ebp - 0x418]
lea ecx, [ebp - 0x418]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea eax, [ebp - 0x45c]
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 - 0x418]
mov byte [ebp - 4], 0xa
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x45c]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push 0x5c
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__8]
push eax
lea eax, [ebp - 0x460]
push eax
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t_]
push eax
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 0xb
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x460]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push 0x5c
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__8]
push 0
push 0x3e
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
mov esi, eax
cmp esi, 0xffffffff
jle 0x407eb1
lea ecx, [esi + 1]
push ecx
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__4]
lea ecx, [ebp - 0x434]
mov byte [ebp - 4], 0xc
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__5]
push esi
lea eax, [ebp - 0x464]
push eax
lea ecx, [ebp - 0x41c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t_]
push eax
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0xd
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__26]
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0xc
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__6]
push dword [ebp - 0x434]
push dword [ebp - 0x418]
push dword [0x5201f4]
push dword [ebp - 0x41c]
call fcn.004071f3
add esp, 0x10
lea ecx, [ebp - 0x434]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
jmp 0x407ecb
push dword [ebp - 0x418]
push dword [0x5201f4]
push dword [ebp - 0x41c]
call fcn.00407544
add esp, 0xc
lea ecx, [ebp - 0x418]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x41c]
jmp 0x407f85
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 0x407f8f
push str.Make_Dir:
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 - 0x43c]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__28]
push 0x4d3d70
lea eax, [ebp - 0x46c]
mov dword [ebp - 4], 0xe
push 0x5201f0
push eax
call fcn.00401a36
lea ecx, [ebp - 0x43c]
mov byte [ebp - 4], 0xf
push ecx
push eax
lea eax, [ebp - 0x468]
push eax
call fcn.004019e2
add esp, 0x18
push 0
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea ecx, [ebp - 0x468]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x46c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x43c]
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push edi
lea eax, [ebp - 0x410]
push 0x200
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetws]
add esp, 0xc
mov esi, str.File_Copy_x64:
test eax, eax
jne 0x407985
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
pop ecx
call fcn.00418057
ret