Function at 0x412a1e
Capabilities:
Move file

Disassembly:
mov eax, 0x4340e2
call fcn.00427498
sub esp, 0x7d4
mov eax, dword [0x443d1c]
push ebx
push esi
xor esi, esi
cmp dword [ebp + 0x14], esi
push edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
jne 0x412a50
cmp dword [ebp + 0x18], esi
jne 0x412a50
push 1
pop eax
jmp 0x413064
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp - 0x18]
mov dword [eax], esi
call fcn.00401046
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x19]
push esi
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0x4364bc
mov dword [ebp - 0x2c], 0x4364b4
call fcn.00402838
and byte [ebp - 0x3d0], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x3cf]
and byte [ebp - 0x1a0], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x19f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x58]
push 0x105
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], esi
call fcn.004021e9
mov edi, eax
mov ecx, dword [edi]
mov byte [ebp - 4], 1
call fcn.00402d6a
push 1
lea ecx, [ebp - 0x24]
push 1
push ecx
mov ecx, dword [ebp - 0x18]
push esi
mov dword [edi + 8], eax
mov esi, str.dotnetfx.exe
push eax
mov edi, str.isnetfx.exe
push esi
push edi
call fcn.004156e4
mov ebx, eax
lea ecx, [ebp - 0x58]
neg ebx
sbb bl, bl
and byte [ebp - 4], 0
inc bl
call fcn.004022fb
test bl, bl
je 0x412b0a
xor esi, esi
jmp 0x413056
lea eax, [ebp - 0x11]
push 1
push eax
push esi
lea ecx, [ebp - 0x74]
call fcn.004029bb
lea eax, [ebp - 0x74]
lea ecx, [ebp - 0x4c]
push eax
mov byte [ebp - 4], 2
call fcn.00418a0d
and byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
mov bl, al
call fcn.00401cf2
test bl, bl
je 0x412bd2
lea eax, [ebp - 0x11]
push 1
push eax
push edi
lea ecx, [ebp - 0x9c]
call fcn.004029bb
push 0
lea eax, [ebp - 0x1c8]
push 0
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 3
call fcn.00402a71
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 4
push ecx
lea ecx, [ebp - 0x74]
push ecx
mov ecx, eax
call fcn.0041883f
lea ecx, [ebp - 0x1c8]
mov byte [ebp - 4], 7
call fcn.00401cf2
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 6
call fcn.00401cf2
lea ecx, [ebp - 0x4c]
call fcn.00402d6a
lea ecx, [ebp - 0x74]
mov edi, eax
call fcn.00402d6a
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x412bc6
lea eax, [ebp - 0x74]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00401d6c
and byte [ebp - 4], 0
lea ecx, [ebp - 0x74]
call fcn.00401cf2
mov ebx, 0x104
lea ecx, [ebp - 0x4c]
push ebx
call fcn.00402d6a
push eax
lea eax, [ebp - 0x3d0]
push eax
call fcn.00427700
and byte [ebp - 0x2cd], 0
add esp, 0xc
cmp dword [ebp - 0x24], 1
jne 0x412e01
and byte [ebp - 0x5d8], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x5d7]
and byte [ebp - 0x2cc], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x2cb]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp - 0x10]
cmp byte [edi + 0x2b10], 0
je 0x412c54
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x2cc]
push eax
push str.dotnetredist.exe
push dword [ebp + 0xc]
call fcn.00417d85
jmp 0x412ccf
cmp byte [edi + 0x2b11], 0
je 0x412cb4
and byte [ebp - 0x5c], 0
xor eax, eax
lea edi, [ebp - 0x5b]
push 0x10
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [ebp - 0x10]
push 0x43dd5c
push str.DotNetCoreSetupUILang
push dword [0x4365e4]
lea ecx, [eax + 0x4020]
call fcn.004025bc
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x2cc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x2cc]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [ebp - 0x10]
jmp 0x412ccf
cmp byte [edi + 0x2b12], 0
je 0x412ccf
lea eax, [ebp - 0x2cc]
push str.dotnetfx20.exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x5d8]
push 1
push eax
lea eax, [ebp - 0x2cc]
mov ecx, esi
push eax
call fcn.00415d4d
test eax, eax
je 0x412dee
cmp byte [edi + 0x2b10], 0
je 0x412d09
push dword [ebp + 0xc]
mov ecx, esi
call fcn.004126b7
jmp 0x412d8f
cmp byte [edi + 0x2b11], 0
je 0x412d6a
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x412d48
push dword [ebp + 0x18]
mov ecx, esi
push dword [ebp + 0x10]
push 1
call fcn.004126f3
test eax, eax
je 0x412dee
push dword [ebp + 0x10]
mov ecx, esi
call fcn.0041288b
test eax, eax
je 0x412dee
push 0x43dbe0
mov ecx, esi
call fcn.0041288b
test eax, eax
je 0x412dee
push 0x43dd5c
mov ecx, esi
call fcn.0041288b
jmp 0x412d8f
cmp byte [edi + 0x2b12], 0
je 0x412d93
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x412d93
push dword [ebp + 0x18]
mov ecx, esi
push dword [ebp + 0x10]
push 2
call fcn.004126f3
test eax, eax
je 0x412dee
cmp dword [ebp + 0x18], 0
je 0x412e04
and byte [ebp - 0x4d4], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x4d3]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x2b11], 0
je 0x412dcc
lea eax, [ebp - 0x4d4]
push 1
push eax
push str.vjredist.exe
jmp 0x412de3
cmp byte [eax + 0x2b12], 0
je 0x412e01
lea eax, [ebp - 0x4d4]
push 1
push eax
push str.vjredist20.exe
mov ecx, esi
call fcn.00415d4d
test eax, eax
jne 0x412e01
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.00401cf2
xor eax, eax
jmp 0x413064
mov edi, dword [ebp - 0x10]
cmp byte [edi + 0x2b10], 0
je 0x412e60
cmp dword [ebp + 8], 0
je 0x412e25
lea eax, [ebp - 0x1a0]
push str.__q:a__c:_install__q_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
and byte [ebp - 0x60], 0
xor eax, eax
lea edi, [ebp - 0x5f]
push dword [ebp + 0xc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x60]
push str.__l_d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x412fcf
cmp dword [ebp + 0x14], 0
mov esi, 0x442430
je 0x412f01
lea eax, [ebp - 0x1a0]
push str.__q:a
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [ebp - 0x18]
push esi
push 0x43dac8
push ebx
push str.__ver:
lea eax, [ebp - 0x1a0]
push str.DotNetVersion
push eax
mov ecx, edi
call fcn.0041240c
cmp dword [ebp + 8], 0
mov eax, str._redistui:S
jne 0x412eb3
mov eax, str._redistui:F
push eax
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push str.__c:_
push 0x43dcc0
push ebx
push esi
lea eax, [ebp - 0x1a0]
push str.DotNetFxCmd
push eax
mov ecx, edi
call fcn.0041240c
push esi
push 0x43dcb0
push ebx
push str.__langcmd:__q:a__c:_
lea eax, [ebp - 0x1a0]
push str.DotNetLangPackCmd
push eax
mov ecx, edi
call fcn.0041240c
jmp 0x412f0e
cmp dword [ebp + 0x18], 0
je 0x412fcf
mov edi, dword [ebp - 0x18]
push esi
push esi
push ebx
push str.__coreui:
lea eax, [ebp - 0x1a0]
push str.DotNetCoreSetupUILang
push eax
mov ecx, edi
call fcn.0041240c
push esi
push esi
push ebx
push str.__langs:
lea eax, [ebp - 0x1a0]
push str.DotNetLangPacks
push eax
mov ecx, edi
call fcn.0041240c
cmp dword [ebp + 0x18], 0
je 0x412fcf
push esi
push esi
push ebx
push str._jsharpver:
lea eax, [ebp - 0x1a0]
push str.JVersion
push eax
mov ecx, edi
call fcn.0041240c
cmp dword [ebp + 0x14], 0
jne 0x412fac
cmp dword [ebp + 8], 0
mov eax, str.__redistui:S
jne 0x412f7f
mov eax, str.__redistui:F
push eax
lea eax, [ebp - 0x1a0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push esi
push 0x43dcb0
push ebx
push str.__langcmd:__q:a__c:_
lea eax, [ebp - 0x1a0]
push str.DotNetLangPackCmd
push eax
mov ecx, edi
call fcn.0041240c
push str.__q:a__c:_
push 0x43dc14
push ebx
push str._jscmd:
lea eax, [ebp - 0x1a0]
push str.JCmdLine
push eax
mov ecx, edi
call fcn.0041240c
lea eax, [ebp - 0x6dc]
push ebx
push eax
push 0x452
call fcn.004204d4
add esp, 0xc
lea eax, [ebp - 0x6dc]
push str.Microsoft_R__.NET_Framework
push eax
lea eax, [ebp - 0x7e0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp - 0x10]
add esp, 0xc
lea eax, [ebp - 0x7e0]
push eax
call fcn.0041ce57
xor ebx, ebx
push 2
cmp dword [0x44542c], ebx
push dword [ebp - 0x20]
sete bl
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
mov esi, eax
push 0
push esi
call edi
push dword [ebp - 0x10]
lea eax, [ebp - 0x1a0]
push ebx
push eax
lea eax, [ebp - 0x3d0]
push eax
call fcn.00421732
mov ecx, dword [ebp + 0x1c]
push 1
push esi
mov dword [ecx], eax
call edi
push 1
pop esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.00401cf2
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x18