Function at 0x4455d0
Capabilities:
Copy file
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f01c0
mov eax, dword fs:[0]
push eax
sub esp, 0x510
mov eax, dword [0x5441b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x547e58]
xor ebx, ebx
cmp eax, ebx
je 0x44563c
cmp dword [eax + 8], 4
mov edi, eax
jl 0x44563c
push 0x5111dc
push 4
push ecx
mov eax, esp
mov dword [ebp - 0x51c], esp
push eax
mov ecx, str.begin_RunUnSetup
lea esi, [ebx + 0xb]
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
mov eax, dword [0x547e58]
test byte [0x547f74], 1
mov esi, 1
jne 0x445667
or dword [0x547f74], esi
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
mov eax, dword [0x547e58]
add esp, 4
cmp byte [0x547f51], bl
jne 0x4456aa
cmp eax, ebx
je 0x4456a3
cmp dword [eax + 8], 2
mov edi, eax
jl 0x4456a3
push 0x5111dc
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x51c], esp
push ecx
mov ecx, 0x511228
mov esi, 0xf
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
xor al, al
jmp 0x445c25
cmp byte [ebp + 0xc], bl
jne 0x4457ef
cmp eax, ebx
je 0x4456e7
cmp dword [eax + 8], 4
mov edi, eax
jl 0x4456e7
push 0x5111dc
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, str.eQ_rY6RxS
mov esi, 0x16
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
push str.UnsetupXXXXXX
lea eax, [ebp - 0x60]
push 0x28
push eax
call fcn.004b91c9
lea ecx, [ebp - 0x60]
push ecx
call fcn.004ba455
mov esi, eax
add esp, 0x10
cmp esi, ebx
jne 0x44570e
mov esi, str.UnsetupTemp
lea edx, [ebp - 0x268]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov eax, esi
mov edx, esi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x445724
lea edi, [ebp - 0x268]
sub eax, edx
add edi, 0xfffffffe
lea ebx, [ebx]
mov cx, word [edi + 2]
add edi, 2
cmp cx, bx
jne 0x445740
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x268]
rep movsb byte es:[edi], byte [esi]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
cmp cx, bx
jne 0x445765
mov ecx, dword [str..exe]
mov edx, dword [0x5112c0]
mov dword [eax], ecx
mov cx, word [0x5112c4]
mov dword [eax + 4], edx
push 0x104
lea edx, [ebp - 0x470]
push edx
push ebx
mov word [eax + 8], cx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push ebx
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x470]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x445845
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0x470]
push eax
mov edx, 0x23
push 0x5112c8
push 0x5111dc
lea esi, [edx - 0x21]
mov eax, 0x547e58
call fcn.0042a050
add esp, 0x10
mov esi, 1
mov eax, dword [ebp + 8]
cmp byte [eax], bl
je 0x4458a6
call fcn.00445c50
mov eax, dword [0x547e58]
cmp eax, ebx
je 0x445c23
cmp dword [eax + 8], 4
mov edi, eax
jl 0x445c23
push 0x5111dc
push 4
push ecx
mov ecx, esp
mov dword [ebp - 0x51c], esp
push ecx
mov ecx, 0x51131c
mov esi, 0x32
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
jmp 0x445c23
push 1
push ebx
push str._tempunsetup
lea ecx, [ebp - 0x268]
push ecx
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [0x547e58]
cmp eax, ebx
je 0x445c23
cmp dword [eax + 8], 4
mov edi, eax
jl 0x445c23
push 0x5111dc
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, 0x5112e8
mov esi, 0x29
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
jmp 0x445c23
test byte [0x547f74], 1
jne 0x4458c7
or dword [0x547f74], esi
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
add esp, 4
test byte [0x548220], 1
jne 0x4458e8
or dword [0x548220], esi
call fcn.004587c0
push 0x4f10b0
call fcn.004b809e
add esp, 4
push 0xffffffffffffffff
push ebx
push 0x547ec4
mov ecx, 0x548244
call fcn.00406e90
test byte [0x547f74], 1
jne 0x44591b
or dword [0x547f74], esi
call fcn.00441d90
push 0x4f1080
call fcn.004b809e
add esp, 4
test byte [0x548220], 1
jne 0x44593c
or dword [0x548220], esi
call fcn.004587c0
push 0x4f10b0
call fcn.004b809e
add esp, 4
push 0xffffffffffffffff
push ebx
push 0x547ee0
mov ecx, 0x548228
call fcn.00406e90
mov eax, 7
xor edx, edx
mov dword [ebp - 0x4e8], eax
mov dword [ebp - 0x4ec], ebx
mov word [ebp - 0x4fc], dx
mov dword [ebp - 4], ebx
xor ecx, ecx
mov dword [ebp - 0x4b0], eax
mov dword [ebp - 0x4b4], ebx
mov word [ebp - 0x4c4], cx
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x498], ebx
mov word [ebp - 0x4a8], dx
mov edx, 0x545640
lea ecx, [ebp - 0x518]
mov byte [ebp - 4], 2
call fcn.00403830
push esi
lea ecx, [ebp - 0x4c4]
push ecx
lea edx, [ebp - 0x4fc]
push edx
lea ecx, [ebp - 0x4a8]
mov edx, eax
mov byte [ebp - 4], 3
call fcn.00407ab0
mov ebx, 8
add esp, 0xc
mov byte [ebp - 4], 2
cmp dword [ebp - 0x504], ebx
jb 0x4459ea
mov eax, dword [ebp - 0x518]
push eax
call fcn.004b6106
add esp, 4
test byte [0x548220], 1
jne 0x445a0c
or dword [0x548220], 1
call fcn.004587c0
push 0x4f10b0
call fcn.004b809e
add esp, 4
push str.cfg.ini
lea ecx, [ebp - 0x4e0]
push 0x548244
push ecx
call fcn.00404300
push 0x458
mov byte [ebp - 4], 4
call fcn.004b64b4
add esp, 0x10
mov dword [ebp - 0x51c], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x445a4b
push eax
call fcn.00458520
mov edi, eax
jmp 0x445a4d
xor edi, edi
mov byte [ebp - 4], 4
mov esi, dword [fcn.0047a2c4]
push str.UnSetupUnSetupWnd.xml
lea ecx, [edi + 0x348]
call esi
mov eax, dword [0x5455ec]
cmp dword [0x545600], ebx
jae 0x445a76
mov eax, 0x5455ec
push eax
lea ecx, [edi + 0x3cc]
call esi
lea esi, [ebp - 0x48c]
call fcn.00403cf0
push 4
mov eax, 0x511388
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.004065e0
mov eax, dword [ebp - 0x48c]
cmp dword [ebp - 0x478], ebx
jae 0x445aac
mov eax, esi
xor esi, esi
push esi
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push esi
push 0x96c80000
push eax
push esi
mov ecx, edi
call dword [0x51647c]
mov ecx, edi
call dword [0x516484]
push 1
push 1
mov ecx, edi
call dword [0x5164e8]
test byte [0x548220], 1
jne 0x445b09
or dword [0x548220], 1
call fcn.004587c0
push 0x4f10b0
call fcn.004b809e
add esp, 4
mov ecx, edi
call dword [0x5164e4]
mov dword [0x54827c], eax
call dword [0x5164e0]
mov eax, dword [0x547e58]
cmp eax, esi
je 0x445b57
cmp dword [eax + 8], 4
mov edi, eax
jl 0x445b57
push 0x5111dc
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, str.end_RunUnSetup
mov esi, 0x4d
call fcn.0042d450
push edi
mov ecx, esi
call fcn.0042b0b0
xor esi, esi
cmp dword [ebp - 0x478], ebx
jb 0x445b6e
mov eax, dword [ebp - 0x48c]
push eax
call fcn.004b6106
add esp, 4
xor ecx, ecx
mov edi, 7
mov dword [ebp - 0x478], edi
mov dword [ebp - 0x47c], esi
mov word [ebp - 0x48c], cx
cmp dword [ebp - 0x4cc], ebx
jb 0x445b9f
mov edx, dword [ebp - 0x4e0]
push edx
call fcn.004b6106
add esp, 4
xor eax, eax
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], esi
mov word [ebp - 0x4e0], ax
cmp dword [ebp - 0x494], ebx
jb 0x445bcb
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.004b6106
add esp, 4
xor edx, edx
mov dword [ebp - 0x494], edi
mov dword [ebp - 0x498], esi
mov word [ebp - 0x4a8], dx
cmp dword [ebp - 0x4b0], ebx
jb 0x445bf7
mov eax, dword [ebp - 0x4c4]
push eax
call fcn.004b6106
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x4b0], edi
mov dword [ebp - 0x4b4], esi
mov word [ebp - 0x4c4], cx
cmp dword [ebp - 0x4e8], ebx
jb 0x445c23
mov edx, dword [ebp - 0x4fc]
push edx
call fcn.004b6106
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b6111
mov esp, ebp
pop ebp
ret