Function at 0x56bbc8
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x42
push 0
push 0
dec ecx
jne 0x56bbd1
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
call fcn.004051e0
mov eax, dword [ebp + 0x10]
call fcn.004051e0
lea eax, [ebp - 0x188]
mov edx, dword [0x4086fc]
call fcn.004056f0
xor eax, eax
push ebp
push 0x56c4fa
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x56c48c
push dword fs:[edx]
mov dword fs:[edx], esp
mov byte [ebp - 9], 1
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.0040eca4
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x10]
call fcn.00404dc8
lea eax, [ebp - 0x18c]
mov ecx, 0x56c518
mov edx, dword [ebp - 0x10]
call fcn.0040503c
mov eax, dword [ebp - 0x18c]
lea ecx, [ebp - 0x188]
mov edx, 0x3f
call fcn.0040a1c4
test eax, eax
jne 0x56c477
mov eax, dword [ebp + 0x14]
mov edx, 0x56c524
call fcn.0040513c
jne 0x56bd48
mov eax, esi
call fcn.004d9000
test al, al
jne 0x56bd48
mov eax, esi
call fcn.004d9008
test al, al
jne 0x56bd48
push 0x56c530
push esi
push 0x56c544
lea eax, [ebp - 0x190]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x190]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
mov eax, esi
call fcn.004d9008
test al, al
jne 0x56bd16
push 0x56c564
push esi
push 0x56c574
lea eax, [ebp - 0x194]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x194]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
jmp 0x56bd48
push 0x56c594
push esi
push 0x56c5a8
lea eax, [ebp - 0x198]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x198]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
mov eax, dword [ebp - 0x17c]
mov edx, 0x56c5b8
call fcn.0040513c
je 0x56c464
mov eax, dword [ebp - 0x17c]
mov edx, 0x56c5c4
call fcn.0040513c
je 0x56c464
lea ecx, [ebp - 0x19c]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x19c]
mov edx, 0x56c5d0
call fcn.0040513c
jne 0x56bda6
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56c4b1
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x17c]
call fcn.00404dc8
lea eax, [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
call fcn.0040503c
lea edx, [ebp - 0x24]
mov eax, esi
call fcn.0040eca4
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 0x17c]
call fcn.00404ff8
test byte [ebp - 0x180], 0x10
je 0x56be23
cmp byte [ebp + 0x18], 0
je 0x56c464
mov al, byte [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov al, byte [ebp + 8]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
call fcn.0056bbc8
mov byte [ebp - 9], al
jmp 0x56c464
lea ecx, [ebp - 0x1a0]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1a0]
mov edx, 0x56c5d0
call fcn.0040513c
jne 0x56be55
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56c4b1
lea ecx, [ebp - 0x1a4]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov edx, 1
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1a4]
lea edx, [ebp - 0x1c]
call fcn.0040eca4
lea edx, [ebp - 0x1a8]
mov eax, esi
call fcn.0040eca4
mov edx, dword [ebp - 0x1a8]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x17c]
call fcn.0040503c
mov eax, dword [ebp + 0x14]
mov edx, 0x56c524
call fcn.0040513c
je 0x56c2dc
lea ecx, [ebp - 0x1ac]
mov edx, 1
mov eax, dword [ebp + 0x14]
call fcn.0043e44c
mov eax, dword [ebp - 0x1ac]
mov edx, 0x56c5e0
call fcn.0040513c
jne 0x56c0d9
mov edx, dword [ebp - 0x2c]
mov eax, 0x56c5b8
call fcn.00405334
test eax, eax
jle 0x56c464
lea edx, [ebp - 0x1b0]
mov eax, dword [ebp + 0x10]
call fcn.00409448
mov eax, dword [ebp - 0x1b0]
push eax
lea edx, [ebp - 0x1bc]
mov eax, dword [ebp - 0x2c]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x1bc]
lea eax, [ebp - 0x1b8]
mov edx, 0x56c5ec
call fcn.0040503c
mov eax, dword [ebp - 0x1b8]
lea edx, [ebp - 0x1b4]
call fcn.00409448
mov eax, dword [ebp - 0x1b4]
pop edx
call fcn.00405334
test eax, eax
jle 0x56c464
mov eax, esi
call fcn.004d9000
test al, al
jne 0x56bf5b
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x1c0]
mov eax, dword [ebp - 4]
call fcn.0040eca4
mov edx, dword [ebp - 0x1c0]
lea eax, [ebp - 0x20]
mov ecx, 0x56c518
call fcn.0040503c
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov eax, dword [ebp - 0x20]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x28]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x1c4]
mov eax, dword [ebp - 0x20]
call fcn.0043e44c
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x20]
call fcn.00404dc8
lea edx, [ebp - 0x1c8]
mov eax, dword [ebp - 0x1c]
call fcn.0040eca4
mov edx, dword [ebp - 0x1c8]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
call fcn.0040503c
mov ecx, dword [ebp - 0x20]
mov dl, byte [ebp + 8]
mov eax, dword [ebp - 0x30]
call fcn.0056f960
lea ecx, [ebp - 0x1cc]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1cc]
mov edx, 0x56c5d0
call fcn.0040513c
je 0x56c477
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c464
push 0x56c5f8
push dword [ebp - 0x14]
push 0x56c608
lea eax, [ebp - 0x1d0]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1d0]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c0a0
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x56c638
call fcn.005978d0
jmp 0x56c464
push 0x56c668
push dword [ebp - 0x14]
push 0x56c68c
lea eax, [ebp - 0x1d4]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1d4]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x56c464
mov edx, dword [ebp - 0x2c]
mov eax, 0x56c5b8
call fcn.00405334
test eax, eax
jle 0x56c464
lea edx, [ebp - 0x1d8]
mov eax, dword [ebp + 0x10]
call fcn.00409448
mov eax, dword [ebp - 0x1d8]
push eax
lea edx, [ebp - 0x1e4]
mov eax, dword [ebp - 0x2c]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x1e4]
lea eax, [ebp - 0x1e0]
mov edx, 0x56c5ec
call fcn.0040503c
mov eax, dword [ebp - 0x1e0]
lea edx, [ebp - 0x1dc]
call fcn.00409448
mov eax, dword [ebp - 0x1dc]
pop edx
call fcn.00405334
test eax, eax
jg 0x56c464
mov eax, esi
call fcn.004d9000
test al, al
jne 0x56c15e
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x1e8]
mov eax, dword [ebp - 4]
call fcn.0040eca4
mov edx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x20]
mov ecx, 0x56c518
call fcn.0040503c
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov eax, dword [ebp - 0x20]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x28]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x1ec]
mov eax, dword [ebp - 0x20]
call fcn.0043e44c
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x20]
call fcn.00404dc8
lea edx, [ebp - 0x1f0]
mov eax, dword [ebp - 0x1c]
call fcn.0040eca4
mov edx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
call fcn.0040503c
mov ecx, dword [ebp - 0x20]
mov dl, byte [ebp + 8]
mov eax, dword [ebp - 0x30]
call fcn.0056f960
lea ecx, [ebp - 0x1f4]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1f4]
mov edx, 0x56c5d0
call fcn.0040513c
je 0x56c477
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c464
push 0x56c5f8
push dword [ebp - 0x14]
push 0x56c608
lea eax, [ebp - 0x1f8]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1f8]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c2a3
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x56c638
call fcn.005978d0
jmp 0x56c464
push 0x56c668
push dword [ebp - 0x14]
push 0x56c68c
lea eax, [ebp - 0x1fc]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1fc]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x56c464
mov eax, esi
call fcn.004d9000
test al, al
jne 0x56c2ee
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x200]
mov eax, dword [ebp - 4]
call fcn.0040eca4
mov edx, dword [ebp - 0x200]
lea eax, [ebp - 0x20]
mov ecx, 0x56c518
call fcn.0040503c
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov eax, dword [ebp - 0x20]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x28]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x204]
mov eax, dword [ebp - 0x20]
call fcn.0043e44c
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x20]
call fcn.00404dc8
lea edx, [ebp - 0x208]
mov eax, dword [ebp - 0x1c]
call fcn.0040eca4
mov edx, dword [ebp - 0x208]
lea eax, [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
call fcn.0040503c
mov ecx, dword [ebp - 0x20]
mov dl, byte [ebp + 8]
mov eax, dword [ebp - 0x30]
call fcn.0056f960
lea ecx, [ebp - 0x20c]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x20c]
mov edx, 0x56c5d0
call fcn.0040513c
je 0x56c477
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x14]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c464
push 0x56c5f8
push dword [ebp - 0x14]
push 0x56c608
lea eax, [ebp - 0x210]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x210]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x24]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x56c430
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x56c638
call fcn.005978d0
jmp 0x56c464
push 0x56c668
push dword [ebp - 0x14]
push 0x56c68c
lea eax, [ebp - 0x214]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x214]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
lea eax, [ebp - 0x188]
call fcn.0040a214
test eax, eax
je 0x56bd48
lea eax, [ebp - 0x188]
call fcn.0040a238
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x56c4b1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56c501
lea eax, [ebp - 0x214]
mov edx, 0x23
call fcn.00404d54
lea eax, [ebp - 0x188]
mov edx, dword [0x4086fc]
call fcn.004057c0
lea eax, [ebp - 0x2c]
mov edx, 8
call fcn.00404d54
lea eax, [ebp + 0x10]
mov edx, 2
call fcn.00404d54
ret