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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eb360
mov eax, dword fs:[0]
push eax
sub esp, 0x510
mov eax, dword [0x53f1e4]
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 [0x5430d8]
mov ebx, 4
test eax, eax
je 0x44544d
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x44544d
push 0x50c3f4
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x51c], esp
push eax
mov ecx, str.begin_RunUnSetup
lea esi, [ebx + 9]
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
mov eax, dword [0x5430d8]
test byte [0x5431e4], 1
mov esi, 1
jne 0x445478
or dword [0x5431e4], esi
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
mov eax, dword [0x5430d8]
add esp, 4
cmp byte [0x5431c1], 0
jne 0x4454bc
test eax, eax
je 0x4454b5
cmp dword [eax + 8], 2
mov edi, eax
jl 0x4454b5
push 0x50c3f4
push 2
push ecx
mov ecx, esp
mov dword [ebp - 0x51c], esp
push ecx
mov ecx, 0x50c440
mov esi, 0x11
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
xor al, al
jmp 0x445a73
cmp byte [ebp + 0xc], 0
jne 0x445601
test eax, eax
je 0x4454f8
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x4454f8
push 0x50c3f4
push ebx
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, str.eQ_rY6RxS
mov esi, 0x18
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
push str.UnsetupXXXXXX
lea eax, [ebp - 0x60]
push 0x28
push eax
call fcn.004b4755
lea ecx, [ebp - 0x60]
push ecx
call fcn.004b59e1
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x44551f
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
test cx, cx
jne 0x445535
lea edi, [ebp - 0x268]
sub eax, edx
add edi, 0xfffffffe
jmp 0x445550
mov cx, word [edi + 2]
add edi, 2
test cx, cx
jne 0x445550
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
test cx, cx
jne 0x445575
mov ecx, dword [str..exe]
mov edx, dword [0x50c4d8]
mov dword [eax], ecx
mov cx, word [0x50c4dc]
mov dword [eax + 4], edx
push 0x104
lea edx, [ebp - 0x470]
push edx
push 0
mov word [eax + 8], cx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
lea eax, [ebp - 0x268]
push eax
lea ecx, [ebp - 0x470]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x445656
lea edx, [ebp - 0x268]
push edx
lea eax, [ebp - 0x470]
push eax
mov edx, 0x25
push 0x50c4e0
push 0x50c3f4
lea esi, [edx - 0x23]
mov eax, 0x5430d8
call fcn.0042b3c0
add esp, 0x10
mov esi, 1
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x4456b7
call fcn.00445a90
mov eax, dword [0x5430d8]
test eax, eax
je 0x445a71
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x445a71
push 0x50c3f4
push ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x51c], esp
push ecx
mov ecx, 0x50c534
mov esi, 0x34
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x445a71
push 1
push 0
push str._tempunsetup
lea ecx, [ebp - 0x268]
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov eax, dword [0x5430d8]
test eax, eax
je 0x445a71
mov edi, eax
cmp dword [eax + 8], ebx
jl 0x445a71
push 0x50c3f4
push ebx
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, 0x50c500
mov esi, 0x2b
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
jmp 0x445a71
test byte [0x5431e4], 1
jne 0x4456d8
or dword [0x5431e4], esi
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
add esp, 4
test byte [0x5434ac], 1
jne 0x4456f9
or dword [0x5434ac], esi
call fcn.004565e0
push 0x4ec570
call fcn.004b3d86
add esp, 4
push 0xffffffffffffffff
push 0
push 0x543134
mov ecx, 0x5434cc
call fcn.00404530
test byte [0x5431e4], 1
jne 0x44572d
or dword [0x5431e4], esi
call fcn.00442d10
push 0x4ec540
call fcn.004b3d86
add esp, 4
test byte [0x5434ac], 1
jne 0x44574e
or dword [0x5434ac], esi
call fcn.004565e0
push 0x4ec570
call fcn.004b3d86
add esp, 4
push 0xffffffffffffffff
push 0
push 0x543150
mov ecx, 0x5434b0
call fcn.00404530
mov ebx, 7
xor esi, esi
xor edx, edx
mov dword [ebp - 0x504], ebx
mov dword [ebp - 0x508], esi
mov word [ebp - 0x518], dx
mov dword [ebp - 4], esi
xor eax, eax
mov dword [ebp - 0x4b0], ebx
mov dword [ebp - 0x4b4], esi
mov word [ebp - 0x4c4], ax
xor ecx, ecx
mov dword [ebp - 0x494], ebx
mov dword [ebp - 0x498], esi
mov word [ebp - 0x4a8], cx
mov byte [ebp - 4], 2
push 0xa
push 0x50c074
lea ecx, [ebp - 0x4e0]
mov dword [ebp - 0x4cc], ebx
mov dword [ebp - 0x4d0], esi
mov word [ebp - 0x4e0], dx
call fcn.00404960
push 1
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x518]
push ecx
lea ecx, [ebp - 0x4a8]
lea edx, [ebp - 0x4e0]
mov byte [ebp - 4], 3
call fcn.00409050
add esp, 0xc
mov byte [ebp - 4], 2
cmp dword [ebp - 0x4cc], 8
jb 0x445817
mov edx, dword [ebp - 0x4e0]
push edx
call fcn.004b1676
add esp, 4
test byte [0x5434ac], 1
jne 0x445839
or dword [0x5434ac], 1
call fcn.004565e0
push 0x4ec570
call fcn.004b3d86
add esp, 4
push str.cfg.ini
lea eax, [ebp - 0x4fc]
push 0x5434cc
push eax
call fcn.00403a10
push 0x458
mov byte [ebp - 4], 4
call fcn.004b1d85
add esp, 0x10
mov dword [ebp - 0x51c], eax
mov byte [ebp - 4], 5
cmp eax, esi
je 0x445876
push eax
call fcn.00455d60
mov esi, eax
mov byte [ebp - 4], 4
mov edi, dword [fcn.00475970]
push str.UnSetupUnSetupWnd.xml
lea ecx, [esi + 0x348]
call edi
cmp dword [0x540630], 8
mov eax, dword [0x54061c]
jae 0x4458a0
mov eax, 0x54061c
push eax
lea ecx, [esi + 0x3cc]
call edi
xor ecx, ecx
push ebx
mov word [ebp - 0x48c], cx
xor edi, edi
push 0x50a8b0
lea ecx, [ebp - 0x48c]
mov dword [ebp - 0x478], ebx
mov dword [ebp - 0x47c], edi
call fcn.00404960
push 4
mov eax, 0x50c5a0
lea ecx, [ebp - 0x48c]
mov byte [ebp - 4], 6
call fcn.00403f00
cmp dword [ebp - 0x478], 8
mov eax, dword [ebp - 0x48c]
jae 0x4458fc
lea eax, [ebp - 0x48c]
push edi
push SysReAllocString
push SysReAllocString
push SysReAllocString
push SysReAllocString
push edi
push 0x96c80000
push eax
push edi
mov ecx, esi
call dword [0x511028]
mov ecx, esi
call dword [0x511030]
push 1
push 1
mov ecx, esi
call dword [0x511094]
test byte [0x5434ac], 1
jne 0x445957
or dword [0x5434ac], 1
call fcn.004565e0
push 0x4ec570
call fcn.004b3d86
add esp, 4
mov ecx, esi
call dword [0x511090]
mov dword [0x543504], eax
call dword [0x51108c]
mov eax, dword [0x5430d8]
cmp eax, edi
je 0x4459a5
cmp dword [eax + 8], 4
mov edi, eax
jl 0x4459a3
push 0x50c3f4
push 4
push ecx
mov edx, esp
mov dword [ebp - 0x51c], esp
push edx
mov ecx, str.end_RunUnSetup
mov esi, 0x55
call fcn.00408620
push edi
mov ecx, esi
call fcn.0042c420
xor edi, edi
mov esi, 8
cmp dword [ebp - 0x478], esi
jb 0x4459c1
mov eax, dword [ebp - 0x48c]
push eax
call fcn.004b1676
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x478], ebx
mov dword [ebp - 0x47c], edi
mov word [ebp - 0x48c], cx
cmp dword [ebp - 0x4e8], esi
jb 0x4459ed
mov edx, dword [ebp - 0x4fc]
push edx
call fcn.004b1676
add esp, 4
xor eax, eax
mov dword [ebp - 0x4e8], ebx
mov dword [ebp - 0x4ec], edi
mov word [ebp - 0x4fc], ax
cmp dword [ebp - 0x494], esi
jb 0x445a19
mov ecx, dword [ebp - 0x4a8]
push ecx
call fcn.004b1676
add esp, 4
xor edx, edx
mov dword [ebp - 0x494], ebx
mov dword [ebp - 0x498], edi
mov word [ebp - 0x4a8], dx
cmp dword [ebp - 0x4b0], esi
jb 0x445a45
mov eax, dword [ebp - 0x4c4]
push eax
call fcn.004b1676
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x4b0], ebx
mov dword [ebp - 0x4b4], edi
mov word [ebp - 0x4c4], cx
cmp dword [ebp - 0x504], esi
jb 0x445a71
mov edx, dword [ebp - 0x518]
push edx
call fcn.004b1676
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.004b1681
mov esp, ebp
pop ebp
ret