Function at 0x4ab5bc
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
mov ebx, eax
xor eax, eax
push ebp
push 0x4ab84f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x6f8]
cmp byte [eax + 0x47], 1
jne 0x4ab60f
mov eax, dword [ebx + 0x698]
call fcn.0045e570
call fcn.0045c228
mov edx, eax
shl eax, 3
sub eax, edx
cmp byte [ebx + eax*8 + 0xb062], 0
jbe 0x4ab60f
mov dword [ebx + 0xa3f8], 1
mov eax, dword [ebx + 0x6f8]
cmp byte [eax + 0x47], 0
jne 0x4ab646
mov eax, dword [ebx + 0x698]
call fcn.0045e570
call fcn.0045c228
mov edx, eax
shl eax, 3
sub eax, edx
cmp byte [ebx + eax*8 + 0xb062], 0
jne 0x4ab646
mov dword [ebx + 0xa3f8], 1
cmp dword [ebx + 0xa4ec], 1
jne 0x4ab665
mov eax, dword [ebx + 0x6f8]
cmp byte [eax + 0x47], 0
jne 0x4ab665
mov dword [ebx + 0xa3f8], 1
mov eax, dword [ebx + 0x698]
call fcn.0045e570
call fcn.0045c228
mov edx, eax
shl eax, 3
sub eax, edx
cmp byte [ebx + eax*8 + 0xb062], 5
je 0x4ab6a7
mov eax, dword [ebx + 0x698]
call fcn.0045e570
call fcn.0045c228
mov edx, eax
shl eax, 3
sub eax, edx
cmp byte [ebx + eax*8 + 0xb062], 6
jne 0x4ab6af
xor eax, eax
mov dword [ebx + 0xa3f8], eax
cmp dword [ebx + 0xa3f8], 1
jne 0x4ab6e6
mov eax, dword [ebx + 0x698]
mov eax, dword [eax + 0x254]
call fcn.0045c9d0
test eax, eax
jle 0x4ab6e6
mov eax, dword [ebx + 0x698]
call fcn.0045e570
call fcn.0045c228
mov edx, eax
mov eax, ebx
call fcn.004a73a0
cmp dword [ebx + 0x4fa94], 0
jne 0x4ab787
mov eax, dword [ebx + 0x698]
mov eax, dword [eax + 0x254]
call fcn.0045c9d0
test eax, eax
jle 0x4ab76f
mov eax, dword [ebx + 0x2d4]
add eax, 0x68
mov edx, 0x4ab864
call fcn.00403c14
mov eax, dword [ebx + 0x2d4]
add eax, 0x70
call fcn.00403bc0
mov esi, dword [ebx + 0x2d4]
mov eax, dword [0x4ab870]
mov dword [esi + 0x54], eax
lea eax, [esi + 0x58]
mov edx, 0x4ab87c
call fcn.00403c14
mov eax, dword [ebx + 0x2d4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
je 0x4ab787
lea edx, [ebp - 8]
mov eax, dword [ebx + 0x2d4]
call fcn.004555e4
mov edx, dword [ebp - 8]
xor ecx, ecx
mov eax, ebx
call fcn.004a99d8
jmp 0x4ab787
push 0
mov ecx, 0x4ab898
mov edx, 0x4ab8a0
mov eax, dword [0x4c3254]
mov eax, dword [eax]
call fcn.0044f9f8
cmp dword [ebx + 0x4fa94], 2
jne 0x4ab80e
lea eax, [ebp - 0xc]
push eax
lea edx, [ebp - 0x10]
mov eax, dword [ebx + 0x4f6c8]
call fcn.00408f2c
mov eax, dword [ebp - 0x10]
call fcn.00403e40
sub eax, 4
push eax
lea edx, [ebp - 0x14]
mov eax, dword [ebx + 0x4f6c8]
call fcn.00408f2c
mov eax, dword [ebp - 0x14]
mov edx, 1
pop ecx
call fcn.00404048
mov edx, dword [ebp - 0xc]
lea eax, [ebp - 4]
mov ecx, 0x4ab8b8
call fcn.00403e8c
cmp byte [ebx + 0x50bcc], 1
jne 0x4ab7ff
push 0
mov eax, dword [ebp - 4]
call fcn.00404004
push eax
mov eax, dword [ebx + 0x4f6c8]
call fcn.00404004
push eax
call sub.kernel32.dll_CopyFileA
xor ecx, ecx
mov edx, dword [ebx + 0x4f6c8]
mov eax, ebx
call fcn.004a99d8
mov eax, dword [ebx + 0x6f8]
cmp byte [eax + 0x47], 1
jne 0x4ab824
mov dword [ebx + 0x4fac8], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ab856
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403be4
lea eax, [ebp - 8]
call fcn.00403bc0
lea eax, [ebp - 4]
call fcn.00403bc0
ret