Function at 0x416495
Capabilities:
Copy file

Disassembly:
push 0x6b8
mov eax, 0x4bc80d
call fcn.004991ba
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
and dword [ebp - 0x650], 0
mov dword [ebp - 0x640], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x64c], eax
lea eax, [ebp - 0x678]
push eax
call fcn.00410244
mov dword [ebp - 4], 1
lea eax, [ebx + 0x54c]
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx]
mov dword [ebp - 0x644], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x648], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x654], ecx
mov dword [ebp - 0x658], eax
jmp 0x416745
lea esi, [ebp - 0x648]
call fcn.00432e32
cmp byte [eax + 0x28], 0
je 0x416611
call fcn.00432e32
cmp dword [eax + 0x18], 8
jb 0x416527
mov eax, dword [eax + 4]
jmp 0x41652a
add eax, 4
push dword [ebx + 0x58c]
lea esi, [ebp - 0x63c]
push dword [ebp - 0x64c]
push eax
lea eax, [ebp - 0x678]
call fcn.004167bc
lea esi, [ebp - 0x648]
call fcn.00432e32
cmp dword [eax + 0x18], 8
jb 0x41655e
mov eax, dword [eax + 4]
jmp 0x416561
add eax, 4
xor edi, edi
push edi
push edi
lea ecx, [ebp - 0x63c]
push ecx
push 0x4168a6
xor esi, esi
inc esi
push esi
push eax
call fcn.0042cd96
cmp byte [ebp - 0x224], 0
jne 0x416760
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x64c], edi
jne 0x41673a
mov eax, dword [ebx + 0x58c]
cmp eax, 6
je 0x4165dd
cmp eax, 7
je 0x4165dd
lea eax, [ebp - 0x434]
push eax
lea esi, [ebp - 0x694]
call fcn.004034c9
mov eax, esi
push eax
mov byte [ebp - 4], 3
lea eax, [ebp - 0x6c4]
push eax
lea eax, [ebp - 0x678]
push eax
call fcn.004102a2
push edi
jmp 0x416708
lea esi, [ebp - 0x648]
call fcn.00432e32
cmp dword [eax + 0x18], 8
jb 0x4165f3
mov eax, dword [eax + 4]
jmp 0x4165f6
add eax, 4
push eax
lea esi, [ebp - 0x694]
call fcn.004034c9
mov eax, esi
push eax
mov byte [ebp - 4], 2
lea eax, [ebp - 0x6a0]
jmp 0x4165ca
cmp dword [ebp - 0x64c], 0
je 0x41671b
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push eax
call fcn.00499dd0
add esp, 0xc
push dword [ebp - 0x64c]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea esi, [ebp - 0x648]
call fcn.00432e32
push 8
pop edi
cmp dword [eax + 0x18], edi
jb 0x416667
mov eax, dword [eax + 4]
jmp 0x41666a
add eax, 4
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea esi, [ebp - 0x648]
cmp dword [ebx + 0x58c], edi
jne 0x4166b0
call fcn.00432e32
cmp dword [eax + 0x18], edi
jb 0x41669c
mov eax, dword [eax + 4]
jmp 0x41669f
add eax, 4
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.00449a7b
pop ecx
pop ecx
jmp 0x4166d2
call fcn.00432e32
cmp dword [eax + 0x18], edi
jb 0x4166bf
mov eax, dword [eax + 4]
jmp 0x4166c2
add eax, 4
push 0
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x41677a
lea eax, [ebp - 0x21c]
push eax
lea esi, [ebp - 0x694]
call fcn.004034c9
mov eax, esi
push eax
lea eax, [ebp - 0x6b8]
push eax
lea eax, [ebp - 0x678]
push eax
mov byte [ebp - 4], 4
call fcn.004102a2
push 0
push 1
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 1
call fcn.00403ead
jmp 0x41673a
lea esi, [ebp - 0x648]
call fcn.00432e32
push eax
lea eax, [ebp - 0x6ac]
push eax
lea eax, [ebp - 0x678]
push eax
call fcn.004102a2
lea esi, [ebp - 0x648]
call fcn.00419672
lea edi, [ebp - 0x658]
lea esi, [ebp - 0x648]
call fcn.0041e1dc
test al, al
jne 0x416502
jmp 0x416782
lea eax, [ebp - 0x678]
push eax
push dword [ebp - 0x640]
call fcn.0041931a
mov dword [ebp - 0x650], esi
jmp 0x41679e
push 0xd
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x678]
push eax
push dword [ebp - 0x640]
call fcn.0041931a
mov dword [ebp - 0x650], 1
lea eax, [ebp - 0x678]
push eax
mov byte [ebp - 4], 0
call fcn.0041027a
mov eax, dword [ebp - 0x640]
call fcn.0049923d
ret 0xc