Function at 0x415750
Capabilities:
Copy file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x57
push 0
push 0
dec ecx
jne 0x415758
push ebx
push esi
push edi
mov edi, dword [0x41e0a8]
xor eax, eax
push ebp
push 0x415aae
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp byte [edi + 0x693], 0
je 0x4157b5
push 0x44
push 0x415ac0
lea eax, [ebp - 0x114]
lea edx, [edi + 0x694]
call fcn.00403f0c
mov eax, dword [ebp - 0x114]
call fcn.00404154
push eax
push 0
call sub.user32.dll_MessageBoxA_1
cmp eax, 7
je 0x415a68
lea eax, [ebp - 0x10d]
xor ecx, ecx
mov edx, 0x105
call fcn.00402f54
push 0x105
lea eax, [ebp - 0x10d]
push eax
mov eax, dword [0x41f654]
push eax
call sub.kernel32.dll_GetModuleFileNameA
lea eax, [ebp - 0x118]
lea edx, [edi + 0x311]
call fcn.00403f0c
mov eax, dword [ebp - 0x118]
push eax
lea eax, [ebp - 0x11c]
lea edx, [edi + 0x211]
call fcn.00403f0c
mov edx, dword [ebp - 0x11c]
lea eax, [ebp - 4]
pop ecx
call fcn.00403fa0
mov dl, 1
mov eax, dword [0x40cfe0]
call fcn.0040d05c
mov esi, eax
mov al, byte [edi + 0x362]
sub al, 3
jne 0x415a54
lea eax, [ebp - 0x120]
lea edx, [edi + 0x593]
call fcn.00403f0c
mov eax, dword [ebp - 0x120]
push eax
lea eax, [ebp - 0x124]
lea edx, [edi + 0x52e]
call fcn.00403f0c
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0x128]
lea edx, [edi + 0x4c9]
call fcn.00403f0c
mov eax, dword [ebp - 0x128]
mov ecx, 0x415ad0
pop edx
call fcn.0040f5f0
test al, al
je 0x415a68
mov edx, 0x80000002
mov eax, esi
call fcn.0040d0e8
xor ecx, ecx
mov edx, 0x415b08
mov eax, esi
call fcn.0040d204
lea edx, [edi + 0x4c9]
lea eax, [ebp - 0x190]
call fcn.00402ebc
mov edx, 0x415b40
lea eax, [ebp - 0x190]
mov cl, 0x65
call fcn.00402e8c
lea edx, [ebp - 0x190]
lea eax, [ebp - 8]
call fcn.00403f0c
mov eax, dword [ebp - 8]
call fcn.00403f54
push eax
push 7
lea eax, [ebp - 8]
call fcn.004041ac
mov ecx, eax
mov edx, 0x415b4c
mov eax, esi
call fcn.0040d840
mov eax, esi
call fcn.0040d0c8
mov eax, dword [ebp - 4]
call fcn.00404154
push eax
lea eax, [ebp - 0x10d]
push eax
call sub.kernel32.dll_lstrcmpiA
test eax, eax
je 0x4159a9
lea eax, [ebp - 0x194]
lea edx, [edi + 0x211]
call fcn.00403f0c
mov eax, dword [ebp - 0x194]
call fcn.0041a948
push 0x80
mov eax, dword [ebp - 4]
call fcn.00404154
push eax
call sub.kernel32.dll_SetFileAttributesA
push 0
mov eax, dword [ebp - 4]
call fcn.00404154
push eax
lea eax, [ebp - 0x10d]
push eax
call sub.kernel32.dll_CopyFileA
mov ebx, dword [edi + 0x798]
test ebx, ebx
je 0x41597b
mov eax, dword [ebp - 4]
call fcn.00404154
mov edx, ebx
call fcn.00405414
cmp byte [edi + 0x795], 0
je 0x415996
push 6
mov eax, dword [ebp - 4]
call fcn.00404154
push eax
call sub.kernel32.dll_SetFileAttributesA
jmp 0x4159a9
push 0x80
mov eax, dword [ebp - 4]
call fcn.00404154
push eax
call sub.kernel32.dll_SetFileAttributesA
mov edx, 0x415b58
lea eax, [ebp - 0x220]
call fcn.00402ebc
lea edx, [edi + 0x4c9]
lea eax, [ebp - 0x220]
mov cl, 0x86
call fcn.00402e8c
lea edx, [ebp - 0x220]
lea eax, [ebp - 0x2b4]
call fcn.00402ebc
mov edx, 0x415b7c
lea eax, [ebp - 0x2b4]
mov cl, 0x92
call fcn.00402e8c
lea edx, [ebp - 0x2b4]
lea eax, [ebp - 0x198]
call fcn.00403f0c
mov edx, dword [ebp - 0x198]
mov cl, 1
mov eax, esi
call fcn.0040d204
mov eax, dword [ebp - 4]
call fcn.00403f54
push eax
push 2
lea eax, [ebp - 4]
call fcn.004041ac
mov ecx, eax
mov edx, 0x415b94
mov eax, esi
call fcn.0040d840
lea eax, [ebp - 0x2b8]
lea edx, [edi + 0x4c9]
call fcn.00403f0c
mov eax, dword [ebp - 0x2b8]
or ecx, 0xffffffff
mov edx, 1
call fcn.0040fa38
mov eax, esi
call fcn.00403368
mov al, byte [edi + 0x794]
mov edx, dword [ebp + 8]
mov byte [edx], al
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x415ab5
lea eax, [ebp - 0x2b8]
call fcn.00403dac
lea eax, [ebp - 0x198]
mov edx, 2
call fcn.00403dd0
lea eax, [ebp - 0x128]
mov edx, 6
call fcn.00403dd0
lea eax, [ebp - 8]
mov edx, 2
call fcn.00403dd0
ret