Function at 0x4a69b0
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x4f52a1
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x52b360]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x52b360]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov eax, dword [0x5323b8]
mov ebp, dword [esp + 0x100]
xor edi, edi
cmp eax, edi
je 0x4a6a0c
push edi
push 6
push 0x505d8c
push 0xf69bb
call eax
mov ecx, dword [ebp + 0x88]
sub ecx, dword [ebp + 0x84]
sar ecx, 2
cmp ecx, edi
je 0x4a6d8b
mov eax, dword [ebp + 0x74]
cmp eax, edi
jge 0x4a6a2f
mov dword [ebp + 0x74], edi
jmp 0x4a6a35
cdq
idiv ecx
mov dword [ebp + 0x74], edx
mov eax, dword [ebp + 0x74]
mov ecx, ebp
call fcn.004a7c50
mov esi, eax
cmp esi, edi
je 0x4a6d8b
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, esi
call edx
cmp eax, edi
je 0x4a6a68
mov al, byte [eax]
test al, al
je 0x4a6d8b
cmp al, 3
je 0x4a6d8b
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
mov ecx, esi
call edx
cmp eax, edi
je 0x4a6a81
movzx eax, byte [eax]
cmp eax, 1
je 0x4a6d8b
cmp dword [ebp + 0x94], edi
jne 0x4a6aa9
push 6
push edi
push 0x52decc
push 0x52dea0
push edi
push esi
call fcn.004eb16a
add esp, 0x14
push eax
call fcn.00478fb0
add esp, 8
lea eax, [esp + 0x98]
call fcn.00480d70
mov dword [esp + 0xf8], edi
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call edx
mov ebx, 8
mov byte [esp + 0xf8], 1
cmp dword [eax + 0x18], ebx
jb 0x4a6ae1
mov eax, dword [eax + 4]
jmp 0x4a6ae4
add eax, 4
mov edx, eax
lea eax, [esp + 0x28]
call fcn.00403c00
lea eax, [esp + 0x28]
push eax
lea edi, [esp + 0xd4]
mov byte [esp + 0xfc], 2
call fcn.004a6750
add esp, 4
lea ecx, [esp + 0x28]
call fcn.004016f0
lea ecx, [esp + 0x44]
mov byte [esp + 0xf8], 5
call fcn.004016f0
cmp byte [esp + 0x104], 0
jne 0x4a6bce
mov eax, dword [esp + 0x9c]
cmp dword [esp + 0xb0], ebx
jae 0x4a6b4a
lea eax, [esp + 0x9c]
push 0
push eax
call fcn.004ce379
add esp, 8
test eax, eax
jne 0x4a6bce
lea ecx, [esp + 0xd0]
push ecx
lea ecx, [esp + 0x9c]
lea edi, [esp + 0x64]
call fcn.00466570
add esp, 4
mov byte [esp + 0xf8], 6
mov edx, dword [esi]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x7c]
push eax
mov ecx, esi
call edx
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x78], ebx
jae 0x4a6b98
lea ecx, [esp + 0x64]
cmp dword [eax + 0x18], ebx
jb 0x4a6ba2
mov eax, dword [eax + 4]
jmp 0x4a6ba5
add eax, 4
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [esp + 0x7c]
call fcn.004016f0
lea ecx, [esp + 0x60]
mov byte [esp + 0xf8], 5
call fcn.004016f0
jmp 0x4a6c5b
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, esi
call edx
mov byte [esp + 0xf8], 7
cmp dword [eax + 0x18], ebx
jb 0x4a6bee
mov ecx, dword [eax + 4]
jmp 0x4a6bf1
lea ecx, [eax + 4]
mov eax, dword [ebp + 4]
test eax, eax
je 0x4a6bfd
mov eax, dword [eax + 4]
jmp 0x4a6bff
xor eax, eax
push eax
call fcn.00480de0
add esp, 4
lea ecx, [esp + 0x7c]
mov bl, al
mov byte [esp + 0xf8], 5
call fcn.004016f0
lea eax, [esp + 0x7c]
call fcn.00480d70
push 0xffffffffffffffff
push 0
push eax
lea eax, [esp + 0xa4]
mov byte [esp + 0x104], 8
call fcn.00401850
lea ecx, [esp + 0x7c]
mov byte [esp + 0xf8], 5
call fcn.004016f0
test bl, bl
je 0x4a6d73
mov ebx, 8
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x9c]
lea edi, [esp + 0x80]
call fcn.00466570
add esp, 4
mov ecx, edi
push ecx
mov edx, 0x5101bc
lea edi, [esp + 0xb8]
mov byte [esp + 0xfc], 9
call fcn.0041e4b0
add esp, 4
lea edx, [esp + 0x18]
mov byte [esp + 0xf8], 0xa
test edx, edx
je 0x4a6d0f
mov eax, dword [ebp + 4]
test eax, eax
je 0x4a6cb4
mov eax, dword [eax + 4]
jmp 0x4a6cb6
xor eax, eax
lea ecx, [esp + 0x60]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x60]
sub eax, 0x2c0
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
sar ecx, 1
sub eax, 0xac
cdq
sub eax, edx
sar eax, 1
lea edx, [eax + 0x7a]
push edx
lea edx, [ecx + 0x2c0]
push edx
push eax
push ecx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_SetRect]
push 0xffffffffffffffd8
push 0
lea ecx, [esp + 0x20]
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebp + 0x54]
sub edx, eax
push edx
mov edx, dword [esp + 0x24]
sub edx, ecx
push edx
call fcn.00410b30
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0xcc], ebx
jae 0x4a6d44
lea eax, [esp + 0xb8]
mov edi, dword [ebp + 0x54]
push 0xbb8
push 0
call fcn.004a4fb0
mov eax, dword [ebp + 0x54]
push 1
push eax
call fcn.00410a60
lea ecx, [esp + 0xb4]
call fcn.004016f0
lea ecx, [esp + 0x7c]
call fcn.004016f0
lea ecx, [esp + 0xd0]
call fcn.004016f0
lea ecx, [esp + 0x98]
call fcn.004016f0
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.004c8f08
add esp, 0xe8
ret 8