Function at 0x409c34
Capabilities:
Copy file
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff6a4
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x958], edx
mov dword [ebp - 0x95c], edx
mov dword [ebp - 0x950], edx
mov dword [ebp - 0x954], edx
mov dword [ebp - 0x94c], edx
mov dword [ebp - 0x948], edx
mov dword [ebp - 0x944], edx
mov dword [ebp - 0x940], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404448
lea edi, [ebp - 0x939]
xor eax, eax
push ebp
push 0x409fde
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, edi
mov edx, 0x801
call fcn.004054e8
lea eax, [ebp - 0xc]
mov ecx, 0x409ff4
mov edx, dword [ebp - 4]
call fcn.004042ac
push 0
mov eax, dword [ebp - 0xc]
call fcn.00404458
push eax
lea edx, [ebp - 0x940]
xor eax, eax
call fcn.004027ac
mov eax, dword [ebp - 0x940]
call fcn.00404458
push eax
call sub.kernel32.dll_CopyFileA
push 0
push 0x80
push 1
push 0
push 2
push 0x40000000
lea eax, [ebp - 0x944]
mov ecx, 0x40a000
mov edx, dword [ebp - 4]
call fcn.004042ac
mov eax, dword [ebp - 0x944]
call fcn.00404458
push eax
call sub.kernel32.dll_CreateFileA_1
mov ebx, eax
mov eax, dword [ebp - 0xc]
call fcn.0040a10c
mov esi, eax
lea edx, [ebp - 8]
lea eax, [esi + 0x11]
call fcn.0040a024
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 8]
call fcn.00404458
push eax
call sub.kernel32.dll_CreateFileA_1
mov esi, eax
push 2
push 0
push 0
push ebx
call sub.kernel32.dll_SetFilePointer_1
push 0
lea eax, [ebp - 0x1c]
push eax
push 0x800
push edi
push esi
call sub.kernel32.dll_ReadFile_1
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push edi
push ebx
call sub.kernel32.dll_WriteFile_1
cmp dword [ebp - 0x20], 0
jne 0x409d57
push esi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 4]
call fcn.0040a10c
mov esi, eax
lea edx, [ebp - 8]
lea eax, [esi + 0x11]
call fcn.0040a024
mov dword [ebp - 0x138], 0xfeedbeef
xor eax, eax
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 4]
call fcn.0040a06c
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
mov byte [ebp - 0x128], 0
push edi
add esi, 0x11
lea edi, [ebp - 0x127]
mov ecx, 0x41
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
push 0
lea eax, [ebp - 0x20]
push eax
push 0x118
lea eax, [ebp - 0x138]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 8]
call fcn.00404458
push eax
call sub.kernel32.dll_CreateFileA_1
mov esi, eax
push 2
push 0
push 0
push ebx
call sub.kernel32.dll_SetFilePointer_1
push 0
lea eax, [ebp - 0x1c]
push eax
push 0x800
push edi
push esi
call sub.kernel32.dll_ReadFile_1
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push edi
push ebx
call sub.kernel32.dll_WriteFile_1
cmp dword [ebp - 0x20], 0
jne 0x409e21
push esi
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 0xc]
call fcn.0040a10c
mov esi, eax
lea edx, [ebp - 8]
lea eax, [esi + 0x11]
call fcn.0040a024
mov eax, dword [ebp - 0xc]
call fcn.0040a06c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x138], 0xfeedbeef
xor eax, eax
mov dword [ebp - 0x134], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x12c], eax
mov byte [ebp - 0x128], 1
push 0
lea eax, [ebp - 0x20]
push eax
push 0x118
lea eax, [ebp - 0x138]
push eax
push ebx
call sub.kernel32.dll_WriteFile_1
mov eax, edi
mov edx, 0x801
call fcn.004054e8
mov byte [edi], 0x46
mov byte [edi + 1], 0x41
mov byte [edi + 2], 0x43
mov byte [edi + 3], 0x45
mov byte [edi + 4], 0x48
mov byte [edi + 5], 0x41
mov byte [edi + 6], 0x43
mov byte [edi + 7], 0x4b
mov byte [edi + 8], 0x45
mov byte [edi + 9], 0x52
push 0
lea eax, [ebp - 0x20]
push eax
push 0xa
push edi
push ebx
call sub.kernel32.dll_WriteFile_1
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [ebp - 4]
call fcn.00404458
mov ebx, eax
mov edx, ebx
lea eax, [ebp - 0x948]
call fcn.004041bc
mov eax, dword [ebp - 0x948]
call fcn.00406314
push 0
push ebx
lea eax, [ebp - 0x94c]
mov ecx, 0x40a000
mov edx, dword [ebp - 4]
call fcn.004042ac
mov eax, dword [ebp - 0x94c]
call fcn.00404458
push eax
call sub.kernel32.dll_CopyFileA
lea eax, [ebp - 0x954]
mov ecx, 0x40a000
mov edx, dword [ebp - 4]
call fcn.004042ac
mov eax, dword [ebp - 0x954]
call fcn.00404458
mov edx, eax
lea eax, [ebp - 0x950]
call fcn.004041bc
mov eax, dword [ebp - 0x950]
call fcn.00406314
lea eax, [ebp - 0x95c]
mov ecx, 0x409ff4
mov edx, dword [ebp - 4]
call fcn.004042ac
mov eax, dword [ebp - 0x95c]
call fcn.00404458
mov edx, eax
lea eax, [ebp - 0x958]
call fcn.004041bc
mov eax, dword [ebp - 0x958]
call fcn.00406314
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x409fe5
lea eax, [ebp - 0x95c]
mov edx, 8
call fcn.00403ff0
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00403ff0
ret