Function at 0x401e20
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0xc]
push eax
call sub.MSVCRT.dll_strlen
add esp, 4
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp + 0x10]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 8], 0x104
jl 0x401e99
mov eax, dword [ebp + 8]
push eax
push 0x408634
call fcn.004037c0
add esp, 8
push eax
push 0x1e
push 0x408654
call fcn.004037f0
add esp, 4
push eax
push 0x408680
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor ecx, ecx
test ecx, ecx
jne 0x401e5c
xor eax, eax
jmp 0x4020b7
cmp dword [ebp - 0xc], 0x104
jl 0x401edf
mov edx, dword [ebp + 0x10]
push edx
push 0x40868c
call fcn.004037c0
add esp, 8
push eax
push 0x24
push 0x4086ac
call fcn.004037f0
add esp, 4
push eax
push 0x4086d8
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor eax, eax
test eax, eax
jne 0x401ea2
xor eax, eax
jmp 0x4020b7
mov ecx, dword [ebp + 8]
push ecx
push 0x409e60
call sub.MSVCRT.dll_strcpy
add esp, 8
mov edx, dword [ebp + 0x10]
push edx
push 0x409f64
call sub.MSVCRT.dll_strcpy
add esp, 8
mov eax, dword [ebp - 8]
movsx ecx, byte [eax + 0x409e5f]
cmp ecx, 0x5c
je 0x401f2d
mov edx, dword [ebp - 8]
mov byte [edx + 0x409e60], 0x5c
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov byte [ecx + 0x409e60], 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx + 0x409f63]
cmp eax, 0x5c
je 0x401f59
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x409f64], 0x5c
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x409f64], 0
mov ecx, dword [ebp - 8]
add ecx, dword [ebp - 4]
cmp ecx, 0x104
jl 0x401fa4
mov edx, dword [ebp + 8]
push edx
push 0x4086e4
call fcn.004037c0
add esp, 8
push eax
push 0x3b
push 0x408704
call fcn.004037f0
add esp, 4
push eax
push 0x408730
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor eax, eax
test eax, eax
jne 0x401f67
xor eax, eax
jmp 0x4020b7
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 4]
cmp ecx, 0x104
jl 0x401fef
mov edx, dword [ebp + 0x10]
push edx
push str.file_path___s__is_too_long__n
call fcn.004037c0
add esp, 8
push eax
push 0x41
push 0x40875c
call fcn.004037f0
add esp, 4
push eax
push 0x408788
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor eax, eax
test eax, eax
jne 0x401fb2
xor eax, eax
jmp 0x4020b7
mov ecx, dword [ebp + 0xc]
push ecx
push 0x409e60
call sub.MSVCRT.dll_strcat
add esp, 8
mov edx, dword [ebp + 0xc]
push edx
push 0x409f64
call sub.MSVCRT.dll_strcat
add esp, 8
push 0
push 0x409f64
push 0x409e60
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x402076
push 0x409f64
push 0x409e60
push str.copy_file_failed:__s_to__s_n
call fcn.004037c0
add esp, 0xc
push eax
push 0x4a
push 0x4087b0
call fcn.004037f0
add esp, 4
push eax
push 0x4087dc
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor eax, eax
test eax, eax
jne 0x402027
push 0x4b
push 0x4087e8
call fcn.00404240
add esp, 8
xor eax, eax
jmp 0x4020b7
push 0x409f64
push 0x409e60
push str.copy_file_succ:__s_to__s_n
call fcn.004037c0
add esp, 0xc
push eax
push 0x4e
push 0x408830
call fcn.004037f0
add esp, 4
push eax
push 0x40885c
call dword [sym.imp.MSVCRT.dll_printf]
add esp, 0x10
xor ecx, ecx
test ecx, ecx
jne 0x402076
mov eax, 1
mov esp, ebp
pop ebp
ret