Function at 0x4a56e0
Capabilities:
Copy file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x544dde
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x595c60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov esi, ecx
mov dword [ebp - 0x34], esi
mov eax, dword [0x59e598]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x38], ebx
test al, 1
jne 0x4a574f
or eax, 1
mov dword [0x59e598], eax
mov dword [ebp - 4], 0
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x596f88]
test byte [eax + 0x1c], 2
je 0x4a5764
cmp byte [eax + 0x19], 6
jb 0x4a5764
mov al, 1
jmp 0x4a5766
xor al, al
cmp byte [0x59e5a8], 0
jne 0x4a5780
cmp byte [0x59e5a9], 0
jne 0x4a5780
test al, al
je 0x4a58c9
sub esp, 8
mov dword [ebp - 4], 1
lea ecx, [ebp - 0xdc]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xdc]
call fcn.0047eed0
mov edx, str..InstallHelper.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0xb5
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a46c
mov ecx, eax
call fcn.0047f130
mov edx, str.CopyAndReplaceFile
mov ecx, eax
call fcn.0047f130
mov byte [ebp - 4], 2
cmp dword [ebp - 0x18], 0x10
jb 0x4a5814
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a5814
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0xdc]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 4
cmp dword [esi + 0x14], 0x10
jb 0x4a5831
mov esi, dword [esi]
mov eax, dword [0x59e598]
test al, 1
jne 0x4a585c
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 5
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 4
push esi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x4a587f
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a587f
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 1
call fcn.0047b620
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x8c], 0x56a6f8
push eax
call fcn.0052889f
mov esi, dword [ebp - 0x34]
add esp, 4
mov dword [ebp - 4], 0xffffffff
jmp 0x4a58c9
xor edi, edi
cmp dword [ebx + 0x14], 8
mov dword [ebp - 0x30], edi
jb 0x4a58d6
mov ebx, dword [ebx]
cmp dword [esi + 0x14], 8
jb 0x4a58e1
mov esi, dword [esi]
mov dword [ebp - 0x34], esi
push 0x104
push ebx
lea ecx, [ebp - 0x44]
call fcn.00483d00
push 0x104
push dword [ebp - 0x34]
lea ecx, [ebp - 0x3c]
mov esi, dword [eax]
call fcn.00483d00
push 0
push esi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [ebp - 0x38]
mov esi, eax
test ecx, ecx
je 0x4a591e
push ecx
call fcn.005074d4
add esp, 4
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4a592e
push eax
call fcn.005074d4
add esp, 4
test esi, esi
jne 0x4a593d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov dword [ebp - 0x30], eax
mov ecx, dword [0x59e598]
test cl, 1
jne 0x4a5971
or ecx, 1
mov dword [0x59e598], ecx
mov dword [ebp - 4], 7
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x596f88]
test byte [eax + 0x1c], 2
je 0x4a5986
cmp byte [eax + 0x19], 6
jb 0x4a5986
mov al, 1
jmp 0x4a5988
xor al, al
cmp byte [0x59e5a8], 0
jne 0x4a59a2
cmp byte [0x59e5a9], 0
jne 0x4a59a2
test al, al
je 0x4a5ae6
sub esp, 8
mov dword [ebp - 4], 8
lea ecx, [ebp - 0x174]
call fcn.0047b550
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 9
call fcn.004a0cb0
mov edx, eax
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x174]
call fcn.0047eed0
mov edx, str..InstallHelper.cpp
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
push 0xba
mov ecx, eax
call fcn.0047b1b0
mov edx, 0x56a378
mov ecx, eax
call fcn.0047f130
mov edx, 0x56a498
mov ecx, eax
call fcn.0047f130
mov edx, str.CopyAndReplaceFile
mov ecx, eax
call fcn.0047f130
mov byte [ebp - 4], 9
cmp dword [ebp - 0x18], 0x10
jb 0x4a5a36
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a5a36
push eax
call fcn.005074d4
add esp, 4
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x174]
call fcn.0047b6a0
mov esi, eax
mov byte [ebp - 4], 0xb
cmp dword [esi + 0x14], 0x10
jb 0x4a5a53
mov esi, dword [esi]
mov eax, dword [0x59e598]
test al, 1
jne 0x4a5a7e
or eax, 1
mov dword [0x59e598], eax
mov byte [ebp - 4], 0xc
call fcn.004a08c0
push 0x54e860
call fcn.0050765d
add esp, 4
mov byte [ebp - 4], 0xb
push esi
push 6
mov ecx, 0x59e5a8
call fcn.004a0b40
cmp dword [ebp - 0x18], 0x10
jb 0x4a5aa1
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4a5aa1
push eax
call fcn.005074d4
add esp, 4
lea ecx, [ebp - 0x124]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 4], 8
call fcn.0047b620
lea eax, [ebp - 0x124]
mov dword [ebp - 0x124], 0x56a6f8
push eax
call fcn.0052889f
add esp, 4
jmp 0x4a5ae6
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00506c7d
mov esp, ebp
pop ebp
ret