Function at 0x409a2f
Capabilities:
Copy file

Disassembly:
push ebp
lea ebp, [esp - 0x4b8]
sub esp, 0x538
mov eax, dword [0x478a78]
xor eax, ebp
mov dword [ebp + 0x4b4], eax
push ebx
push esi
push edi
xor eax, eax
mov edi, 0x206
push edi
mov word [ebp + 0xa4], ax
xor ebx, ebx
lea eax, [ebp + 0xa6]
push ebx
push eax
mov dword [ebp + 0x38], ecx
call fcn.0043d840
add esp, 0xc
mov esi, 0x104
push esi
lea eax, [ebp + 0xa4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
push edi
mov word [ebp + 0x2ac], ax
lea eax, [ebp + 0x2ae]
push ebx
push eax
call fcn.0043d840
xor eax, eax
mov dword [ebp + 0x5c], ebx
lea edi, [ebp + 0x60]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0xc
lea eax, [ebp + 0x5c]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
push esi
lea eax, [ebp + 0x2ac]
push eax
lea eax, [ebp + 0x5c]
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
lea eax, [ebp]
push str._setup_
push eax
call fcn.0040ad0c
pop ecx
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.00403514
add esp, 0xc
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp]
call fcn.00402515
mov eax, dword [ebp + 0x44]
push 8
pop edi
cmp dword [ebp + 0x58], edi
jae 0x409afd
lea eax, [ebp + 0x44]
push eax
lea ecx, [ebp + 0x1c]
call fcn.004033f2
lea eax, [ebp + 0x1c]
push eax
call fcn.0040adaa
pop ecx
push ebx
push esi
lea ecx, [ebp + 0x1c]
call fcn.00402515
lea eax, [ebp + 0x2ac]
push eax
lea eax, [ebp + 0x40]
push eax
lea eax, [ebp + 0x88]
push eax
call fcn.00403514
mov eax, dword [ebp + 0x8c]
add esp, 0xc
cmp dword [ebp + 0xa0], edi
jae 0x409b48
lea eax, [ebp + 0x8c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.uninstall.exe
push 0x460520
lea eax, [ebp + 0x88]
push eax
lea eax, [ebp]
push eax
call fcn.00403514
add esp, 0xc
push eax
lea eax, [ebp + 0x6c]
push eax
call fcn.00403514
add esp, 0xc
push ebx
push esi
lea ecx, [ebp]
call fcn.00402515
mov eax, dword [ebp + 0x70]
cmp dword [ebp + 0x84], edi
jae 0x409b92
lea eax, [ebp + 0x70]
push ebx
push eax
lea eax, [ebp + 0xa4]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x409bc8
cmp dword [ebp + 0x84], edi
mov edi, dword [ebp + 0x70]
jae 0x409bb3
lea edi, [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.MixerUninstallCore::prepareUninstall__copy_file_fail_dest_file_is__s__last_error_is__d
call fcn.0043b312
add esp, 0xc
mov edi, dword [ebp + 0x38]
push 0xffffffffffffffff
push ebx
lea eax, [edi + 4]
push eax
lea ecx, [ebp + 0x88]
call fcn.00402de2
mov eax, dword [ebp + 0x9c]
dec eax
push eax
lea ecx, [ebp + 0x88]
call fcn.0040904d
cmp word [eax], 0x5c
jne 0x409c2e
lea eax, [ebp + 0x3f]
push eax
mov eax, dword [ebp + 0x9c]
dec eax
push eax
push ebx
lea eax, [ebp + 0x88]
push eax
lea ecx, [ebp + 0x1c]
call fcn.00403280
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp + 0x88]
call fcn.00402de2
push ebx
push esi
lea ecx, [ebp + 0x1c]
call fcn.00402515
push esi
push 2
lea ecx, [ebp - 0x80]
call fcn.00404e4c
lea eax, [ebp - 0x80]
cmp byte [edi], bl
je 0x409c47
push str._silencedelete
jmp 0x409c4c
push 0x460f38
push eax
call fcn.00404e98
pop ecx
pop ecx
push 0x461380
lea eax, [ebp + 0x88]
push eax
push 0x4614b0
push str._path
lea eax, [ebp - 0x80]
push 0x4614ac
push eax
call fcn.00404e98
pop ecx
pop ecx
push eax
call fcn.00404e98
pop ecx
pop ecx
push eax
call fcn.00404e98
pop ecx
pop ecx
push eax
call fcn.0040990b
pop ecx
pop ecx
push eax
call fcn.00404e98
pop ecx
pop ecx
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00403414
cmp dword [ebp + 0x34], 8
mov eax, dword [ebp + 0x20]
jae 0x409cb2
lea eax, [ebp + 0x20]
push eax
push str.para_is__s
call fcn.0043b312
pop ecx
pop ecx
push ebx
push esi
lea ecx, [ebp + 0x1c]
call fcn.00402515
cmp dword [ebp + 0x84], 8
mov eax, dword [ebp + 0x70]
jae 0x409cd8
lea eax, [ebp + 0x70]
push eax
lea ecx, [ebp]
call fcn.004033f2
lea eax, [ebp + 0x1c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00403414
push ebx
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp]
push eax
call fcn.0040a46f
add esp, 0xc
push ebx
push esi
lea ecx, [ebp + 0x1c]
call fcn.00402515
push ebx
push esi
lea ecx, [ebp]
call fcn.00402515
lea ecx, [ebp - 0x80]
call fcn.00402da9
push ebx
push esi
lea ecx, [ebp + 0x6c]
call fcn.00402515
push ebx
push esi
lea ecx, [ebp + 0x88]
call fcn.00402515
push ebx
push esi
lea ecx, [ebp + 0x40]
call fcn.00402515
mov ecx, dword [ebp + 0x4b4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043dae6
add ebp, 0x4b8
leave
ret