Function at 0x4012f0
Capabilities:
Copy file

Disassembly:
sub esp, 0x310
mov eax, dword [0x428510]
xor eax, esp
mov dword [esp + 0x30c], eax
cmp byte [0x429a40], 0
mov ax, word [0x41d3d8]
mov word [esp], ax
mov al, byte [0x41d3da]
mov byte [esp + 2], al
jne 0x401344
push str.info_directory_is_not_exist_
call fcn.00404490
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.00404cba
add esp, 0x310
ret
push 0x429a40
call fcn.004041f0
add esp, 4
test eax, eax
jne 0x40138d
push 0x429a40
lea eax, [esp + 8]
push str.__s__is_not_exist_
push eax
call fcn.004032d0
lea eax, [esp + 0x10]
push eax
call fcn.00404490
add esp, 0x10
xor eax, eax
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.00404cba
add esp, 0x310
ret
push ebx
push esi
push edi
lea eax, [esp + 0xc]
push eax
push 0x42a640
call fcn.00407f98
mov esi, eax
add esp, 8
test esi, esi
je 0x401454
mov ebx, dword [sym.imp.KERNEL32.dll_CopyFileA]
push esi
push 0x429a40
lea eax, [esp + 0x118]
push str._s_s
push eax
call fcn.004032d0
push esi
lea eax, [esp + 0x228]
push str.info_s
push eax
call fcn.004032d0
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x234]
push eax
lea eax, [esp + 0x34]
push str.Copying___s__to___s__...
push eax
call fcn.004032d0
add esp, 0x2c
lea eax, [esp + 0x110]
push 0
push eax
lea eax, [esp + 0x21c]
push eax
call ebx
test eax, eax
je 0x401498
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
lea edi, [edi + 1]
test al, al
jne 0x401420
mov eax, dword [0x41d550]
mov dword [edi], eax
lea eax, [esp + 0x10]
push eax
call fcn.00404470
lea eax, [esp + 0x10]
push eax
push 0
call fcn.00407f98
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4013b2
push 0x429a40
lea eax, [esp + 0x114]
push str._sdir
push eax
call fcn.004032d0
lea eax, [esp + 0x11c]
push 0x41d210
push eax
call fcn.00408886
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4014e2
lea eax, [esp + 0x110]
push eax
push str.cannot_open_r____s_.
jmp 0x40156a
lea ecx, [esp + 0x10]
dec ecx
nop dword [eax]
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x4014a0
mov eax, dword [str.fail.]
mov dword [ecx], eax
mov ax, word [0x41d54c]
mov word [ecx + 4], ax
lea eax, [esp + 0x10]
push eax
call fcn.00404490
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.00404cba
add esp, 0x310
ret
push esi
lea eax, [esp + 0x218]
push 0x104
push eax
call fcn.004087c4
add esp, 0xc
test eax, eax
je 0x401535
nop dword [eax]
lea eax, [esp + 0x214]
cmp dword [eax], 0x654d202a
jne 0x40151b
cmp word [eax + 4], 0x3a77
je 0x4015c4
push esi
lea eax, [esp + 0x218]
push 0x104
push eax
call fcn.004087c4
add esp, 0xc
test eax, eax
jne 0x401500
lea eax, [esp + 0x110]
push eax
call fcn.00404980
lea eax, [esp + 0x114]
push 0x41d574
push eax
call fcn.00408886
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x40159b
lea eax, [esp + 0x110]
push eax
push str.cannot_open_ab____s_.
lea eax, [esp + 0x18]
push eax
call fcn.004032d0
lea eax, [esp + 0x1c]
push eax
call fcn.00404490
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30c]
xor ecx, esp
call fcn.00404cba
add esp, 0x310
ret
push 0x42850c
push str._Mew:__mew.info_.______Messaging_in_the_Emacs_World__in_English__s
push esi
call fcn.004032a0
push 0x42850c
push str._Mewj:__mew.ja.info_._Messaging_in_the_Emacs_World__in_Japanese__s
push esi
call fcn.004032a0
push esi
call fcn.0040863b
add esp, 0x1c
mov ecx, dword [esp + 0x318]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00404cba
add esp, 0x310
ret