Function at 0x408970
Capabilities:
Check for time delay via gettickcount
Copy file

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x200b
push 0
push 0
dec ecx
jne 0x408978
push ecx
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004037e0
mov edi, 0x40b6b4
xor eax, eax
push ebp
push 0x408cc6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
call fcn.00407950
test al, al
je 0x4089e2
push 0
lea eax, [ebp - 0x10034]
mov ecx, 0x408cdc
mov edx, dword [ebp - 8]
call fcn.0040363c
mov eax, dword [ebp - 0x10034]
call fcn.004037f0
push eax
mov eax, dword [ebp - 8]
call fcn.004037f0
push eax
call sub.kernel32.dll_CopyFileA
mov eax, dword [edi]
xor ecx, ecx
xor edx, edx
call fcn.004056d8
lea edx, [ebp - 0x19]
mov eax, dword [edi]
mov ecx, 5
call fcn.00405698
mov eax, dword [ebp - 8]
call fcn.004058f0
mov esi, eax
lea eax, [ebp - 0x10038]
lea edx, [ebp - 0x19]
mov ecx, 5
call fcn.004035c4
mov eax, dword [ebp - 0x10038]
mov edx, 0x408cec
call fcn.0040373c
jne 0x408c85
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
xor ecx, ecx
mov edx, 0x84020408
call fcn.00407a84
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x14], eax
jmp 0x408c11
lea edx, [ebp - 0x23]
mov eax, dword [edi]
mov ecx, 3
call fcn.00405698
lea ecx, [ebp - 0x1003c]
xor eax, eax
mov al, byte [ebp - 0x23]
mov edx, 2
call fcn.0040527c
push dword [ebp - 0x1003c]
lea ecx, [ebp - 0x10040]
xor eax, eax
mov al, byte [ebp - 0x22]
mov edx, 2
call fcn.0040527c
push dword [ebp - 0x10040]
lea ecx, [ebp - 0x10044]
xor eax, eax
mov al, byte [ebp - 0x21]
mov edx, 2
call fcn.0040527c
push dword [ebp - 0x10044]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.004036b0
mov eax, dword [ebp - 0x20]
call fcn.00408824
mov dword [ebp - 0xc], eax
lea edx, [ebp - 0x26]
mov eax, dword [edi]
mov ecx, 2
call fcn.00405698
lea ecx, [ebp - 0x10048]
xor eax, eax
mov al, byte [ebp - 0x26]
mov edx, 2
call fcn.0040527c
lea eax, [ebp - 0x10048]
push eax
lea ecx, [ebp - 0x1004c]
xor eax, eax
mov al, byte [ebp - 0x25]
mov edx, 2
call fcn.0040527c
mov edx, dword [ebp - 0x1004c]
pop eax
call fcn.004035f8
mov eax, dword [ebp - 0x10048]
call fcn.00408824
mov ebx, eax
xor ecx, ecx
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.004056d8
test ebx, ebx
jne 0x408bb5
lea edx, [ebp - 0x29]
mov eax, dword [edi]
mov ecx, 2
call fcn.00405698
lea ecx, [ebp - 0x10050]
xor eax, eax
mov al, byte [ebp - 0x29]
mov edx, 2
call fcn.0040527c
lea eax, [ebp - 0x10050]
push eax
lea ecx, [ebp - 0x10054]
xor eax, eax
mov al, byte [ebp - 0x28]
mov edx, 2
call fcn.0040527c
mov edx, dword [ebp - 0x10054]
pop eax
call fcn.004035f8
mov eax, dword [ebp - 0x10050]
call fcn.00408824
mov ebx, eax
lea edx, [ebp - 0xd]
mov eax, dword [edi]
mov ecx, 1
call fcn.00405698
dec ebx
test ebx, ebx
jl 0x408c11
inc ebx
lea edx, [ebp - 0xd]
mov ecx, 1
mov eax, esi
call fcn.004056a0
dec ebx
jne 0x408ba1
jmp 0x408c11
lea edx, [ebp - 0x10030]
mov eax, dword [edi]
mov ecx, ebx
call fcn.00405698
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov ecx, 0x1388
cdq
idiv ecx
test edx, edx
jne 0x408c02
mov eax, dword [edi]
call fcn.00405670
imul eax, eax, 0x64
push eax
mov eax, dword [edi]
call fcn.00405684
pop edx
xchg edx, eax
mov ecx, edx
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, 0x84020408
call fcn.00407a84
lea edx, [ebp - 0x10030]
mov ecx, ebx
mov eax, esi
call fcn.004056a0
mov eax, dword [edi]
call fcn.00405670
mov ebx, eax
mov eax, dword [edi]
call fcn.00405684
sub eax, 3
cmp ebx, eax
jb 0x408a4e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov ecx, 0x64
mov edx, 0x84020408
call fcn.00407a84
push dword [0x40b6a8]
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x14]
lea edx, [ebp - 0x1005c]
call fcn.004052c0
push dword [ebp - 0x1005c]
push dword [0x40b6ac]
lea eax, [ebp - 0x10058]
mov edx, 3
call fcn.004036b0
mov eax, dword [ebp - 0x10058]
xor edx, edx
call fcn.004044c0
jmp 0x408c91
xor edx, edx
mov eax, dword [0x40b6b0]
call fcn.004044c0
mov eax, esi
call fcn.004045d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x408ccd
lea eax, [ebp - 0x1005c]
mov edx, 0xb
call fcn.004033d0
lea eax, [ebp - 0x20]
call fcn.004033ac
lea eax, [ebp - 8]
call fcn.004033ac
ret