Function at 0x4cf5d8
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x16
push 0
push 0
dec ecx
jne 0x4cf5e1
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
call fcn.00404738
xor eax, eax
push ebp
push 0x4cfd1c
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 1
mov dl, 1
mov eax, dword [0x417998]
call fcn.00403444
mov dword [ebp - 0x14], eax
mov edx, dword [0x4ddf5c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x18]
xor eax, eax
mov al, byte [0x4ddf61]
call fcn.00408c04
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x1c]
mov eax, dword [0x4ddf64]
call fcn.0041b574
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x20]
mov eax, dword [0x4ddf68]
call fcn.0041b574
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x24]
mov eax, dword [0x4ddf6c]
call fcn.0041b574
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x28]
xor eax, eax
mov al, byte [0x4ddf70]
call fcn.00408c04
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x2c]
xor eax, eax
mov al, byte [0x4ddf71]
call fcn.00408c04
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x30]
xor eax, eax
mov al, byte [0x4ddf72]
call fcn.00408c04
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x34]
mov eax, dword [0x4ddf74]
call fcn.0041b574
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x38]
mov eax, dword [0x4ddf78]
call fcn.0041b574
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x3c]
xor eax, eax
mov al, byte [0x4ddf7c]
call fcn.00408c04
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x40]
mov eax, dword [0x4ddf80]
call fcn.0041b574
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x44]
xor eax, eax
mov al, byte [0x4ddf84]
call fcn.00408c04
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x48]
xor eax, eax
mov al, byte [0x4ddf85]
call fcn.00408c04
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x4c]
xor eax, eax
mov al, byte [0x4ddf86]
call fcn.00408c04
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x50]
xor eax, eax
mov al, byte [0x4ddf87]
call fcn.00408c04
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x54]
xor eax, eax
mov al, byte [0x4ddf88]
call fcn.00408c04
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [0x4ddf8c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x58]
xor eax, eax
mov al, byte [0x4ddf90]
call fcn.00408c04
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov dl, 1
mov eax, dword [0x43ca04]
call fcn.0043cb04
mov ebx, eax
mov edx, 0x80000002
mov eax, ebx
call fcn.0043cba4
xor ecx, ecx
mov edx, 0x4cfd38
mov eax, ebx
call fcn.0043cce8
test al, al
je 0x4cf85c
mov edx, 0x4cfd64
mov eax, ebx
call fcn.0043d2c0
test al, al
je 0x4cf82e
mov byte [0x4ddf98], 0
mov edx, 0x4cfd64
mov eax, ebx
call fcn.0043d2c0
test al, al
jne 0x4cf855
mov edx, 0x4cfd78
mov eax, ebx
call fcn.0043d2c0
test al, al
je 0x4cf855
mov byte [0x4ddf98], 1
mov eax, ebx
call fcn.0043cb74
mov eax, ebx
call fcn.00403474
mov edx, 0x20
mov eax, 0x4cfd8c
call fcn.00409424
mov ecx, 0x4cfd8c
mov dl, 1
mov eax, dword [0x43bab8]
call fcn.0043bb68
mov ebx, eax
push 0x4cfda4
lea eax, [ebp - 0x5c]
push eax
mov ecx, 0x4cfdb0
mov edx, 0x4cfdc4
mov eax, ebx
mov esi, dword [eax]
call dword [esi]
mov eax, dword [ebp - 0x5c]
mov edx, 0x4cfda4
call fcn.00404694
je 0x4cf8de
push 0x4cfda4
lea eax, [ebp - 0x60]
push eax
mov ecx, 0x4cfdd4
mov edx, 0x4cfdc4
mov eax, ebx
mov esi, dword [eax]
call dword [esi]
mov eax, dword [ebp - 0x60]
mov edx, 0x4cfda4
call fcn.00404694
je 0x4cf8de
mov byte [0x4ddf99], 1
jmp 0x4cf8e5
mov byte [0x4ddf99], 0
mov eax, ebx
call fcn.00403474
mov edx, 3
mov eax, 0x4cfd8c
call fcn.00409424
lea edx, [ebp - 0x64]
xor eax, eax
mov al, byte [0x4ddf98]
call fcn.00408c04
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x68]
xor eax, eax
mov al, byte [0x4ddf99]
call fcn.00408c04
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [0x4ddf48]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov edx, dword [0x4ddf4c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x6c]
mov eax, 0xf
call fcn.00408c04
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x70]
mov eax, dword [0x4ddf50]
call fcn.00408c04
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
movzx eax, byte [eax + 0x40]
call fcn.00408c04
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2fc]
movzx eax, byte [eax + 0x40]
call fcn.00408c04
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x300]
movzx eax, byte [eax + 0x40]
call fcn.00408c04
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x80]
xor eax, eax
mov al, byte [0x4ddf38]
call fcn.00408c04
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x84]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x388]
movzx eax, byte [eax + 0x40]
call fcn.00408c04
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x88]
xor eax, eax
mov al, byte [0x4ddf60]
call fcn.00408c04
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x8c]
xor eax, eax
mov al, byte [0x4ddfa8]
call fcn.00408c04
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x90]
mov eax, dword [0x4ddfac]
call fcn.0041b574
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor eax, eax
push ebp
push 0x4cfabe
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x14]
call fcn.0041b574
mov eax, dword [ebp - 0x98]
lea edx, [ebp - 0x94]
call fcn.0049ca18
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x14]
call fcn.0041be80
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfac8
cmp byte [ebp - 5], 0x41
jne 0x4cfc9f
lea eax, [ebp - 0x9c]
mov ecx, 0x4cfde8
mov edx, dword [0x4de1cc]
call fcn.00404594
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 4]
call fcn.004cf200
lea eax, [ebp - 0xa0]
mov ecx, 0x4cfde8
mov edx, dword [0x4de1cc]
call fcn.00404594
mov eax, dword [ebp - 0xa0]
call fcn.00409294
xor eax, eax
push ebp
push 0x4cfb62
push dword fs:[eax]
mov dword fs:[eax], esp
push dword [0x4de1cc]
push 0x4cfde8
push 0x4cfdf8
push 0x4cfe08
lea eax, [ebp - 0xa4]
mov edx, 4
call fcn.00404608
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x74]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfb70
xor eax, eax
push ebp
push 0x4cfbcb
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push dword [0x4de1cc]
push 0x4cfde8
push 0x4cfdf8
push 0x4cfe18
lea eax, [ebp - 0xa8]
mov edx, 4
call fcn.00404608
mov eax, dword [ebp - 0xa8]
call fcn.00404748
push eax
mov eax, dword [0x4dded0]
call fcn.00404748
push eax
call sub.kernel32.dll_CopyFileA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfbd9
lea eax, [ebp - 0xac]
mov ecx, 0x4cfde8
mov edx, dword [0x4de1cc]
call fcn.00404594
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 4]
call fcn.004ceb50
mov eax, dword [ebp - 0xc]
call fcn.00409260
test al, al
je 0x4cfc1e
mov edx, 0x20
mov eax, dword [ebp - 0xc]
call fcn.00409424
mov eax, dword [ebp - 0xc]
call fcn.00409540
xor eax, eax
push ebp
push 0x4cfc5d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xb0]
mov ecx, 0x4cfde8
mov edx, dword [0x4de1cc]
call fcn.00404594
mov edx, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004cf394
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfc6b
lea eax, [ebp - 0xb4]
mov ecx, 0x4cfde8
mov edx, dword [0x4de1cc]
call fcn.00404594
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 4]
call fcn.004cf200
mov eax, dword [ebp - 0xc]
call fcn.00409260
test al, al
jne 0x4cfc9f
mov byte [ebp - 0xd], 0
cmp byte [ebp - 5], 0x52
jne 0x4cfcee
xor eax, eax
push ebp
push 0x4cfce0
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xb8]
mov eax, dword [ebp - 0x14]
call fcn.0041b574
mov ecx, dword [ebp - 0xb8]
mov edx, 0x4cfe28
mov eax, dword [0x4ddf9c]
call fcn.0043d084
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cfcee
mov eax, dword [ebp - 0x14]
call fcn.00403474
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cfd23
lea eax, [ebp - 0xb8]
mov edx, 0x29
call fcn.004042ac
lea eax, [ebp - 0xc]
call fcn.00404288
ret