Function at 0x407353
Capabilities:
Query or enumerate registry value
Read .ini file
Set current directory

Disassembly:
mov eax, 0x41e96e
call fcn.00414644
mov eax, 0x1f7c
call fcn.00414820
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
call fcn.00401046
xor edi, edi
mov ecx, esi
mov ebx, eax
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x28], edi
call fcn.0040105f
push edi
mov ecx, ebx
call fcn.0040ce2a
lea eax, [ebp - 0x38]
mov ecx, esi
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0040a5a2
cmp eax, edi
mov dword [ebp - 0x1c], eax
je 0x4076fe
push 0x4284b0
lea eax, [ebp - 0x6c]
push 0x14
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
push 0x4276d0
push dword [0x41f5c0]
push dword [0x41f574]
call edi
cmp byte [ebp - 0x6c], 0x79
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
je 0x4073e4
cmp byte [ebp - 0x6c], 0x59
jne 0x4074e7
cmp dword [0x429380], 0
je 0x40742c
push 0x4284b0
lea eax, [ebp - 0x58]
push 0x14
push eax
push 0x4276d0
push dword [0x41f5c4]
push dword [0x41f574]
call edi
cmp byte [ebp - 0x58], 0x79
je 0x407420
cmp byte [ebp - 0x58], 0x59
je 0x407420
and dword [ebp - 0x1c], 0
jmp 0x4076fe
mov dword [ebp - 0x1c], 1
jmp 0x4074f1
lea eax, [ebp - 0x58]
push eax
push 0
call fcn.0040fc74
and byte [ebp - 0x674], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x673]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x674]
push 0x400
push eax
push 0x66e
call fcn.0040ec8f
add esp, 0x14
lea eax, [ebx + 0x410]
push eax
lea eax, [ebp - 0x674]
push eax
lea eax, [ebp - 0x170]
push eax
call esi
add esp, 0xc
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push 0
push 0x401
push dword [0x42849c]
call edi
lea eax, [ebp - 0x58]
push 0x24
push eax
lea eax, [ebp - 0x170]
push eax
push dword [0x42849c]
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x4074d6
and dword [ebp - 0x1c], 0
push 0x3ea
push dword [0x42849c]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0
push 0xf
push eax
call edi
push 0
push 0
push 0x401
push dword [0x42849c]
call edi
cmp dword [ebp - 0x1c], 0
je 0x4076fe
mov edi, dword [ebp - 0x10]
lea eax, [ebp - 0x24]
push 1
push eax
lea eax, [ebp - 0x274]
push 0
push eax
push str.dotnetfx.exe
mov ecx, edi
call fcn.004096df
test eax, eax
je 0x407ba6
cmp dword [ebp - 0x24], 1
jne 0x407583
lea eax, [ebp - 0x170]
mov ecx, edi
push eax
push str.dotnetredist.exe
push dword [ebp - 0x38]
call fcn.0040a75c
lea eax, [ebp - 0x1a84]
mov ecx, edi
push eax
lea eax, [ebp - 0x170]
push eax
call fcn.00409853
test eax, eax
je 0x407ba6
lea eax, [ebp - 0x1580]
mov ecx, edi
push eax
push str.dotnetredistSp1.exe
push dword [ebp - 0x38]
call fcn.0040a75c
lea eax, [ebp - 0x1b88]
mov ecx, edi
push eax
lea eax, [ebp - 0x1580]
push eax
call fcn.00409853
test eax, eax
je 0x407ba6
cmp dword [ebp - 0x40], 0
je 0x40759b
lea eax, [ebp - 0x274]
push str.__q:a__c:_install__q_
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
and byte [ebp - 0x58], 0
xor eax, eax
lea edi, [ebp - 0x57]
push 0x14
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 - 0x58]
push 0
push eax
call fcn.00413fc0
add esp, 0xc
lea eax, [ebp - 0x58]
push dword [ebp - 0x38]
push str.__l_d
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x274]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x107c]
push 0x104
push eax
push 0x452
call fcn.0040ec8f
add esp, 0xc
lea eax, [ebp - 0x107c]
push str.Microsoft_R__.NET_Framework
push eax
lea eax, [ebp - 0xf78]
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0xf78]
mov ecx, ebx
push eax
call fcn.0040d3ef
xor eax, eax
push ebx
cmp dword [0x429380], eax
sete al
push eax
lea eax, [ebp - 0x274]
push eax
call fcn.0040fcd7
cmp eax, 0x2000
je 0x407665
cmp eax, 0xbc2
je 0x407665
test eax, eax
je 0x4076fe
cmp eax, 0x1008
je 0x4076fe
mov dword [0x42937c], 0x66d
jmp 0x407ba6
call fcn.0040f7ac
test eax, eax
je 0x407679
push 1
pop eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], eax
jmp 0x407680
mov dword [ebp - 0x28], 2
xor esi, esi
mov dword [ebp - 0x20], esi
push 0x20019
push str.SoftwareMicrosoftWindowsCurrentVersionInstaller
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], esi
call fcn.00407bd1
test eax, eax
jne 0x4076ec
and byte [ebp - 0x170], al
push 0x40
pop ecx
lea edi, [ebp - 0x16f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x104
push eax
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x34]
push eax
push esi
push str.InstallerLocation
mov dword [ebp - 0x34], esi
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [ebp - 0x170]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x20], esi
je 0x4076fe
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
cmp dword [ebp - 0x1c], edi
mov dword [ebp - 0x30], edi
jne 0x407808
mov ecx, dword [ebp - 0x10]
lea eax, [ebx + 0x10]
push eax
call fcn.00409106
cmp eax, edi
jne 0x4077fd
mov ecx, ebx
call fcn.0040ce10
test eax, eax
je 0x407803
push 1
mov ecx, ebx
pop esi
mov dword [ebp - 0x30], esi
call fcn.0040cd44
mov eax, dword [eax]
dec eax
je 0x40777f
dec eax
jne 0x4077cf
cmp dword [ebx + 0x185c], edi
je 0x407768
lea eax, [ebx + 0x1860]
push eax
lea eax, [ebp - 0x1980]
push eax
call fcn.004140b0
pop ecx
mov dword [ebp - 0x14], esi
pop ecx
lea eax, [ebp - 0x24]
push esi
push eax
lea eax, [ebp - 0x1980]
push dword [ebp - 0x14]
push eax
push dword [0x423f68]
jmp 0x4077b4
cmp dword [ebx + 0x1458], edi
je 0x40779f
lea eax, [ebx + 0x145c]
push eax
lea eax, [ebp - 0x1980]
push eax
call fcn.004140b0
pop ecx
mov dword [ebp - 0x14], esi
pop ecx
lea eax, [ebp - 0x24]
push esi
push eax
lea eax, [ebp - 0x1980]
push dword [ebp - 0x14]
push eax
push dword [0x423f64]
mov ecx, dword [ebp - 0x10]
call fcn.004096df
test eax, eax
jne 0x4077cf
mov dword [0x42937c], 0x482
jmp 0x407ba6
lea eax, [ebp - 0x1980]
push eax
call fcn.0040f445
test eax, eax
jne 0x40780b
lea ecx, [ebp - 0x1980]
mov eax, 0x482
push ecx
push eax
mov dword [0x42937c], eax
call fcn.0040ebaf
pop ecx
pop ecx
jmp 0x407bab
jg 0x407bab
mov dword [ebp - 0x14], edi
jmp 0x40780e
push 1
pop esi
mov dword [ebp - 0x14], esi
and byte [ebp - 0x147c], 0
mov esi, 0xff
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0x147b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
cmp dword [ebx + 0x1c60], eax
je 0x40784b
lea eax, [ebx + 0x1c64]
push eax
lea eax, [ebp - 0x147c]
push eax
call fcn.004140b0
pop ecx
pop ecx
push 1
pop eax
xor edi, edi
xor ecx, ecx
cmp dword [ebp - 0x14], edi
lea edx, [ebp - 0x3c]
sete cl
mov dword [ebp - 0x20], ecx
push dword [ebp - 0x20]
lea ecx, [ebx + 0x810]
push edx
push eax
lea eax, [ebp - 0x147c]
mov dword [ebp - 0x2c], ecx
push eax
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.004096df
test eax, eax
je 0x407ba6
cmp dword [ebp - 0x3c], 2
mov dword [ebp - 0x34], edi
jne 0x407896
cmp dword [ebp - 0x14], edi
je 0x407896
mov dword [ebp - 0x34], 1
and byte [ebp - 0xe74], 0
mov ecx, esi
xor eax, eax
lea edi, [ebp - 0xe73]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x10]
and dword [ebp - 0x1c], 0
stosw word es:[edi], ax
push 1
xor esi, esi
stosb byte es:[edi], al
call fcn.00409437
test eax, eax
je 0x407921
xor eax, eax
cmp dword [ebx + 0x2064], eax
je 0x4078e6
lea eax, [ebx + 0x2068]
push eax
lea eax, [ebp - 0xe74]
push eax
call fcn.004140b0
pop ecx
pop ecx
push 1
pop edi
mov eax, edi
jmp 0x4078e9
push 1
pop edi
push dword [ebp - 0x20]
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xe74]
push eax
push dword [0x41f5b4]
call fcn.004096df
test eax, eax
je 0x407ba6
cmp dword [ebp - 0x24], 2
mov dword [ebp - 0x1c], edi
jne 0x407924
cmp dword [ebp - 0x14], 0
je 0x407924
mov esi, edi
jmp 0x407924
push 1
pop edi
cmp dword [ebp - 0x30], 0
je 0x40793d
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1980]
push eax
call fcn.004092fd
cmp dword [ebp - 0x28], 0
je 0x407983
cmp dword [ebp - 0x18], 0
jne 0x407983
push 0x4284b0
lea eax, [ebp - 0x6c]
push 0x400
push eax
push 0x4276d0
push dword [0x41f578]
push dword [0x41f574]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0x6c], 0x79
je 0x40797f
cmp byte [ebp - 0x6c], 0x59
je 0x40797f
mov dword [ebp - 0x18], edi
jmp 0x407983
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x28], 2
jne 0x4079b3
cmp dword [ebp - 0x18], 0
jne 0x4079b3
lea eax, [ebx + 0x1018]
push str._ISSCHEDULEREBOOT1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push edi
push str.ISSCHEDULEREBOOT1
push 0x423154
mov ecx, ebx
call fcn.0040d840
cmp dword [ebp - 0x1c], 0
je 0x407b20
cmp dword [ebp - 0x18], 0
jne 0x407b20
lea eax, [ebp - 0xe74]
push 0x4276d4
push eax
lea ecx, [ebp - 0xa74]
call fcn.00403659
lea eax, [ebp - 0xe74]
lea ecx, [ebp - 0xa74]
push eax
mov dword [ebp - 4], edi
call fcn.004036d3
test eax, eax
je 0x407a10
call fcn.0040598e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa74]
call fcn.004036bd
jmp 0x407bab
test esi, esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
je 0x407a7e
and byte [ebp - 0x674], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x673]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [ebp - 0x10]
stosb byte es:[edi], al
lea eax, [ebp - 0x674]
push eax
push dword [0x41f5b4]
call fcn.00409bb0
test eax, eax
je 0x4079fc
lea eax, [ebp - 0x674]
push 0x4276d0
push eax
call esi
test eax, eax
je 0x407a7e
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x674]
push 1
push eax
lea eax, [ebp - 0xe74]
push eax
call fcn.00409c48
test eax, eax
je 0x4079f7
cmp dword [ebp - 0x34], 0
je 0x407ae9
and byte [ebp - 0x674], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x673]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [ebp - 0x10]
stosb byte es:[edi], al
lea eax, [ebp - 0x674]
push eax
push dword [ebp - 0x2c]
call fcn.00409bb0
test eax, eax
je 0x4079fc
lea eax, [ebp - 0x674]
push 0x4276d0
push eax
call esi
test eax, eax
je 0x407ae9
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x674]
push 1
push eax
lea eax, [ebp - 0xe74]
push eax
call fcn.00409c48
test eax, eax
je 0x4079f7
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0xe74]
push eax
call fcn.0040960a
test eax, eax
je 0x4079fc
cmp dword [ebp - 0x30], 0
je 0x407b11
mov dword [ebp - 0x18], 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa74]
call fcn.004036bd
mov esi, dword [ebp - 0x18]
mov ecx, ebx
push esi
call fcn.0040ce2a
cmp dword [ebp - 0x3c], 3
je 0x407b8c
test esi, esi
jne 0x407baf
lea eax, [ebp - 0x147c]
push 0x4276d4
push eax
lea ecx, [ebp - 0x1f88]
call fcn.00403659
lea eax, [ebp - 0x147c]
lea ecx, [ebp - 0x1f88]
push eax
mov dword [ebp - 4], 2
call fcn.004036d3
test eax, eax
je 0x407b7d
call fcn.0040598e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f88]
jmp 0x407a06
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1f88]
call fcn.004036bd
test esi, esi
jne 0x407baf
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x147c]
push eax
push dword [ebp - 0x2c]
call fcn.00409ec8
test eax, eax
jne 0x407baf
call fcn.0040598e
xor eax, eax
jmp 0x407bc2
mov ecx, dword [ebp - 0x10]
push esi
push dword [ebp - 0x24]
lea eax, [ebp - 0x147c]
push eax
call fcn.00407c0f
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret