Function at 0x401a56
Capabilities:
Copy file

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.0040172e
lea ebp, [esi + 0x60]
push ebp
call sub.MSVCRT.dll_strlen
test eax, eax
pop ecx
je 0x401ca4
push 0x4053d8
push ebp
call dword [sym.imp.MSVCRT.dll_fopen]
mov edi, eax
xor ebx, ebx
pop ecx
cmp edi, ebx
pop ecx
jne 0x401aa7
push 0x30
push 0x405070
push 0x4050c0
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp], bl
jmp 0x401ca4
add esi, 0x120
push 1
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x401adf
push 0x124
push 0x405070
push 0x4053ac
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x401adf
push ebx
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x320
mov dword [esp + 0x28], 0x74
mov dword [esp + 0x2c], 7
mov dword [esp + 0x30], 0xb8
mov dword [esp + 0x34], 4
mov dword [esp + 0x38], 0x40
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0x80
mov dword [esp + 0x44], 0xeb
mov dword [esp + 0x48], 0xf
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 0xc8
call dword [sym.imp.MSVCRT.dll_malloc]
mov esi, dword [sym.imp.MSVCRT.dll_fseek]
push ebx
push ebx
push edi
mov dword [esp + 0x24], eax
call esi
mov ebp, dword [sym.imp.MSVCRT.dll_ftell]
push edi
call ebp
add esp, 0x14
cmp eax, 0x186a0
jge 0x401bcb
mov dword [esp + 0x1c], 0x3c0
push edi
call dword [sym.imp.MSVCRT.dll_fgetc]
cmp eax, 0x74
pop ecx
jne 0x401bc0
push edi
call dword [sym.imp.MSVCRT.dll_fgetc]
cmp eax, 7
pop ecx
jne 0x401bc0
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x18]
jne 0x401bb1
push dword [esp + 0x1c]
push dword [esp + 0x18]
call dword [sym.imp.MSVCRT.dll_realloc]
add dword [esp + 0x20], 0x28
add dword [esp + 0x24], 0xa0
pop ecx
mov dword [esp + 0x18], eax
pop ecx
push edi
call ebp
mov edx, dword [esp + 0x14]
pop ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + edx*4], eax
push edi
call ebp
cmp eax, 0x186a0
pop ecx
jl 0x401b68
mov eax, dword [esp + 0x10]
cmp eax, ebx
jle 0x401c3c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
push ebx
push dword [eax]
push edi
call esi
lea eax, [esp + 0x38]
add esp, 0xc
mov dword [esp + 0x14], 2
mov dword [esp + 0x1c], eax
push edi
call dword [sym.imp.MSVCRT.dll_fgetc]
pop ecx
mov ecx, dword [esp + 0x1c]
cmp eax, dword [ecx]
jne 0x401c1c
inc dword [esp + 0x14]
add dword [esp + 0x1c], 4
cmp dword [esp + 0x14], 9
jl 0x401bfc
cmp dword [esp + 0x14], 8
jle 0x401c2b
push edi
call ebp
pop ecx
mov dword [esp + 0x20], eax
add dword [esp + 0x18], 4
dec dword [esp + 0x10]
jne 0x401bdf
cmp dword [esp + 0x20], ebx
jne 0x401c52
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
pop ecx
push 0x30
push 0x405070
push 0x40537c
jmp 0x401c9d
push ebx
push dword [esp + 0x24]
push edi
call esi
mov esi, dword [sym.imp.MSVCRT.dll_fputc]
push edi
push 0xb8
call esi
push edi
push 1
call esi
push edi
push ebx
call esi
push edi
push ebx
call esi
push edi
push ebx
call esi
mov ebp, 0x90
push edi
push ebp
call esi
push edi
push ebp
call esi
add esp, 0x44
push edi
call dword [sym.imp.MSVCRT.dll_fclose]
pop ecx
push 0x40
push 0x405070
push 0x405088
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret