Function at 0x57d2cc
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x42
push 0
push 0
dec ecx
jne 0x57d2d5
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x20]
lea eax, [ebp - 0x18c]
mov edx, dword [0x4086fc]
call fcn.004056f0
xor eax, eax
push ebp
push 0x57dc06
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x57dba5
push dword fs:[edx]
mov dword fs:[edx], esp
mov byte [ebp - 0xd], 1
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov dword [ebp - 0x34], ebx
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
call fcn.00404dc8
lea eax, [ebp - 0x190]
mov ecx, 0x57dc24
mov edx, dword [ebp - 0x14]
call fcn.0040503c
mov eax, dword [ebp - 0x190]
lea ecx, [ebp - 0x18c]
mov edx, 0x3f
call fcn.0040a1c4
test eax, eax
jne 0x57db90
mov eax, dword [ebp + 0x1c]
mov edx, 0x57dc30
call fcn.0040513c
jne 0x57d441
mov eax, esi
call fcn.004d9000
test al, al
jne 0x57d441
mov eax, esi
call fcn.004d9008
test al, al
jne 0x57d441
push 0x57dc3c
push esi
push 0x57dc50
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
mov eax, esi
call fcn.004d9008
test al, al
jne 0x57d40f
push 0x57dc70
push esi
push 0x57dc80
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, 2
call fcn.005978d0
jmp 0x57d441
push 0x57dca0
push esi
push 0x57dcb4
lea eax, [ebp - 0x19c]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x19c]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
mov eax, dword [ebp - 0x180]
mov edx, 0x57dcc4
call fcn.0040513c
je 0x57db7d
mov eax, dword [ebp - 0x180]
mov edx, 0x57dcd0
call fcn.0040513c
je 0x57db7d
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, 0x57dcdc
call fcn.0040513c
jne 0x57d49f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x57dbca
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 0x180]
call fcn.00404dc8
lea eax, [ebp - 0x18]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x14]
call fcn.0040503c
lea edx, [ebp - 0x28]
mov eax, esi
call fcn.0040eca4
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x180]
call fcn.00404ff8
test byte [ebp - 0x184], 0x10
je 0x57d524
cmp byte [ebp + 0x14], 0
je 0x57db7d
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x18]
push eax
mov al, byte [ebp + 0x14]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov al, byte [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.0057d2cc
mov byte [ebp - 0xd], al
jmp 0x57db7d
lea ecx, [ebp - 0x1a4]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1a4]
mov edx, 0x57dcdc
call fcn.0040513c
jne 0x57d556
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x57dbca
lea ecx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 8]
mov edx, 1
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1a8]
lea edx, [ebp - 0x20]
call fcn.0040eca4
lea edx, [ebp - 0x1ac]
mov eax, esi
call fcn.0040eca4
mov edx, dword [ebp - 0x1ac]
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x180]
call fcn.0040503c
mov eax, dword [ebp + 0x1c]
mov edx, 0x57dc30
call fcn.0040513c
je 0x57d9ed
lea ecx, [ebp - 0x1b0]
mov edx, 1
mov eax, dword [ebp + 0x1c]
call fcn.0043e44c
mov eax, dword [ebp - 0x1b0]
mov edx, 0x57dcec
call fcn.0040513c
jne 0x57d7e2
mov edx, dword [ebp - 0x30]
mov eax, 0x57dcc4
call fcn.00405334
test eax, eax
jle 0x57db7d
lea edx, [ebp - 0x1b4]
mov eax, dword [ebp + 0x18]
call fcn.00409448
mov eax, dword [ebp - 0x1b4]
push eax
lea edx, [ebp - 0x1c0]
mov eax, dword [ebp - 0x30]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x1c0]
lea eax, [ebp - 0x1bc]
mov edx, 0x57dcf8
call fcn.0040503c
mov eax, dword [ebp - 0x1bc]
lea edx, [ebp - 0x1b8]
call fcn.00409448
mov eax, dword [ebp - 0x1b8]
pop edx
call fcn.00405334
test eax, eax
jle 0x57db7d
mov eax, esi
call fcn.004d9000
test al, al
jne 0x57d65c
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x1c4]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x24]
mov ecx, 0x57dc24
call fcn.0040503c
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.0040eca4
mov eax, dword [ebp - 0x24]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x1c8]
mov eax, dword [ebp - 0x24]
call fcn.0043e44c
mov edx, dword [ebp - 0x1c8]
lea eax, [ebp - 0x24]
call fcn.00404dc8
lea edx, [ebp - 0x1cc]
mov eax, dword [ebp - 0x20]
call fcn.0040eca4
mov edx, dword [ebp - 0x1cc]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
call fcn.0040503c
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp + 8]
push eax
mov cl, byte [ebp + 0xc]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.0057dda0
lea ecx, [ebp - 0x1d0]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1d0]
mov edx, 0x57dcdc
call fcn.0040513c
je 0x57db90
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x18]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57db7d
push 0x57dd04
push dword [ebp - 0x18]
push 0x57dd14
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, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57d7a9
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x57dd44
call fcn.005978d0
jmp 0x57db7d
push 0x57dd74
push dword [ebp - 0x18]
push 0x57dd98
lea eax, [ebp - 0x1d8]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x1d8]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x57db7d
mov edx, dword [ebp - 0x30]
mov eax, 0x57dcc4
call fcn.00405334
test eax, eax
jle 0x57db7d
lea edx, [ebp - 0x1dc]
mov eax, dword [ebp + 0x18]
call fcn.00409448
mov eax, dword [ebp - 0x1dc]
push eax
lea edx, [ebp - 0x1e8]
mov eax, dword [ebp - 0x30]
call fcn.0040a4d4
mov ecx, dword [ebp - 0x1e8]
lea eax, [ebp - 0x1e4]
mov edx, 0x57dcf8
call fcn.0040503c
mov eax, dword [ebp - 0x1e4]
lea edx, [ebp - 0x1e0]
call fcn.00409448
mov eax, dword [ebp - 0x1e0]
pop edx
call fcn.00405334
test eax, eax
jg 0x57db7d
mov eax, esi
call fcn.004d9000
test al, al
jne 0x57d867
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x1ec]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov edx, dword [ebp - 0x1ec]
lea eax, [ebp - 0x24]
mov ecx, 0x57dc24
call fcn.0040503c
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.0040eca4
mov eax, dword [ebp - 0x24]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x1f0]
mov eax, dword [ebp - 0x24]
call fcn.0043e44c
mov edx, dword [ebp - 0x1f0]
lea eax, [ebp - 0x24]
call fcn.00404dc8
lea edx, [ebp - 0x1f4]
mov eax, dword [ebp - 0x20]
call fcn.0040eca4
mov edx, dword [ebp - 0x1f4]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
call fcn.0040503c
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp + 8]
push eax
mov cl, byte [ebp + 0xc]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.0057dda0
lea ecx, [ebp - 0x1f8]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x1f8]
mov edx, 0x57dcdc
call fcn.0040513c
je 0x57db90
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x18]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57db7d
push 0x57dd04
push dword [ebp - 0x18]
push 0x57dd14
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, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57d9b4
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x57dd44
call fcn.005978d0
jmp 0x57db7d
push 0x57dd74
push dword [ebp - 0x18]
push 0x57dd98
lea eax, [ebp - 0x200]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x200]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
jmp 0x57db7d
mov eax, esi
call fcn.004d9000
test al, al
jne 0x57d9ff
mov eax, esi
call fcn.004d9008
lea edx, [ebp - 0x204]
mov eax, dword [ebp - 8]
call fcn.0040eca4
mov edx, dword [ebp - 0x204]
lea eax, [ebp - 0x24]
mov ecx, 0x57dc24
call fcn.0040503c
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.0040eca4
mov eax, dword [ebp - 0x24]
call fcn.00404ff0
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00404ff0
pop edx
sub edx, eax
lea ecx, [ebp - 0x208]
mov eax, dword [ebp - 0x24]
call fcn.0043e44c
mov edx, dword [ebp - 0x208]
lea eax, [ebp - 0x24]
call fcn.00404dc8
lea edx, [ebp - 0x20c]
mov eax, dword [ebp - 0x20]
call fcn.0040eca4
mov edx, dword [ebp - 0x20c]
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
call fcn.0040503c
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp + 8]
push eax
mov cl, byte [ebp + 0xc]
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
call fcn.0057dda0
lea ecx, [ebp - 0x210]
mov eax, dword [ebx + 8]
mov edx, 9
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x210]
mov edx, 0x57dcdc
call fcn.0040513c
je 0x57db90
mov eax, dword [0x5a5f50]
mov eax, dword [eax]
call fcn.0049fa8c
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
mov eax, dword [ebp - 0x18]
call fcn.004051f0
mov edi, eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57db7d
push 0x57dd04
push dword [ebp - 0x18]
push 0x57dd14
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, 2
call fcn.005978d0
push 0
mov eax, dword [ebp - 0x28]
call fcn.004051f0
push eax
push edi
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x57db49
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 2
mov edx, 0x57dd44
call fcn.005978d0
jmp 0x57db7d
push 0x57dd74
push dword [ebp - 0x18]
push 0x57dd98
lea eax, [ebp - 0x218]
mov edx, 3
call fcn.004050b0
mov edx, dword [ebp - 0x218]
mov eax, dword [0x5a5d58]
mov eax, dword [eax]
mov ecx, 1
call fcn.005978d0
lea eax, [ebp - 0x18c]
call fcn.0040a214
test eax, eax
je 0x57d441
lea eax, [ebp - 0x18c]
call fcn.0040a238
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x57dbca
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x57dc0d
lea eax, [ebp - 0x218]
mov edx, 0x23
call fcn.00404d54
lea eax, [ebp - 0x18c]
mov edx, dword [0x4086fc]
call fcn.004057c0
lea eax, [ebp - 0x30]
mov edx, 8
call fcn.00404d54
ret