Function at 0x420201
Capabilities:
Reference sql statements

Disassembly:
push 0x3b0
mov eax, 0x44c93f
call fcn.00423e41
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x2a8], eax
cmp dword [esi + 0x14], 8
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x298], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x294], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x2b0], eax
mov eax, esi
mov dword [ebp - 0x2ac], esi
mov dword [ebp - 0x2b4], ebx
jb 0x420253
mov eax, dword [esi]
push eax
call sub.msi.dll_MsiViewGetErrorA
test eax, eax
je 0x420266
mov dword [ebx], eax
xor eax, eax
jmp 0x42077c
xor ebx, ebx
lea ecx, [ebp - 0x30c]
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x290], ebx
mov dword [ebp - 0x29c], ebx
mov dword [ebp - 0x2a0], ebx
call fcn.00414980
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 4], ebx
jb 0x420298
mov eax, dword [esi]
lea ecx, [ebp - 0x2a0]
push ecx
lea ecx, [ebp - 0x29c]
push ecx
lea ecx, [ebp - 0x2b8]
push ecx
lea ecx, [ebp - 0x290]
push ecx
push eax
lea ecx, [ebp - 0x30c]
call fcn.004152c6
test eax, eax
je 0x420300
push str.Fortinet_Technologies__Canada__Inc.
push dword [ebp - 0x290]
call fcn.0042d2c3
pop ecx
pop ecx
test eax, eax
je 0x4202f6
push str.Fortinet_Technologies
push dword [ebp - 0x290]
call fcn.0042d2c3
mov dword [ebp - 0x288], ebx
pop ecx
pop ecx
test eax, eax
jne 0x420300
mov dword [ebp - 0x288], 1
cmp dword [ebp - 0x290], 0
je 0x420315
push dword [ebp - 0x290]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp - 0x29c], 0
je 0x42032a
push dword [ebp - 0x29c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2a0], 0
je 0x420342
push 1
push dword [ebp - 0x2a0]
call fcn.00423b1a
pop ecx
pop ecx
cmp dword [ebp - 0x288], 0
je 0x42076f
cmp dword [edi + 0x14], 8
jb 0x420357
mov edi, dword [edi]
push 3
push edi
push 0x1000
call sub.msi.dll_MsiGetComponentPathW
cmp dword [ebp + 0x14], 0
je 0x42037f
call fcn.00418683
neg eax
push ebx
sbb eax, eax
add eax, 5
push eax
call sub.msi.dll_MsiSetPropertyW
jmp 0x4203a3
push dword [ebp - 0x298]
push 2
call sub.msi.dll_MsiSetPropertyW
lea eax, [ebp - 0x2b0]
push eax
push 0xc02
push dword [ebp - 0x294]
call sub.msi.dll_MsiSetInternalUI
push 8
xor eax, eax
mov dword [ebp - 0x294], ebx
cmp dword [esi + 0x14], 8
lea edi, [ebp - 0x30]
pop ecx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x2a4], ebx
mov eax, esi
jb 0x4203c3
mov eax, dword [esi]
lea ecx, [ebp - 0x2a4]
push ecx
push ebx
push eax
call sub.msi.dll_MsiOpenProductW
mov edi, 0x104
test eax, eax
jne 0x42059c
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
push eax
push str._x.mst
lea eax, [ebp - 0x30]
push 0x10
push eax
call fcn.00408fc5
add esp, 0x10
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x28c], ebx
push 1
push 3
lea ecx, [ebp - 0x3bc]
mov byte [ebp - 4], 2
mov dword [ebp - 0x298], ebx
call fcn.004154c6
push 0x453bc4
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x3ac]
push 0x453bc8
push eax
call fcn.00409cb1
pop ecx
pop ecx
push eax
call fcn.00409cb1
pop ecx
pop ecx
push eax
call fcn.00409cb1
pop ecx
pop ecx
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x3a4]
call fcn.0040be89
cmp dword [ebp - 0x288], 0
je 0x420473
push dword [ebp - 0x288]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x258], 8
lea ecx, [ebp - 0x288]
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x288], ebx
cmovae eax, dword [ebp - 0x26c]
push ecx
push eax
push dword [ebp - 0x2a4]
call sub.msi.dll_MsiEnumClientsA
lea ecx, [ebp - 0x26c]
mov esi, eax
call fcn.004086f1
test esi, esi
jne 0x420555
push ebx
push dword [ebp - 0x288]
call sub.msi.dll_MsiViewModify
test eax, eax
jne 0x420555
mov eax, dword [ebp - 0x28c]
test eax, eax
je 0x4204d9
push eax
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
lea eax, [ebp - 0x28c]
mov dword [ebp - 0x28c], ebx
push eax
push dword [ebp - 0x288]
call sub.msi.dll_MsiDatabaseIsTablePersistentA
test eax, eax
jne 0x420555
lea eax, [ebp - 0x298]
mov dword [ebp - 0x298], edi
push eax
lea eax, [ebp - 0x23c]
push eax
push 1
push dword [ebp - 0x28c]
call sub.msi.dll_MsiRecordSetStreamA
push dword [ebp - 0x28c]
mov esi, eax
xor eax, eax
test esi, esi
sete al
mov dword [ebp - 0x294], eax
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
test esi, esi
je 0x420555
cmp dword [ebp - 0x28c], 0
je 0x420548
push dword [ebp - 0x28c]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov eax, ebx
mov dword [ebp - 0x28c], eax
jmp 0x4204cf
push dword [ebp - 0x2a4]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
lea ecx, [ebp - 0x3bc]
call fcn.00415699
cmp dword [ebp - 0x28c], 0
je 0x42057f
push dword [ebp - 0x28c]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
cmp dword [ebp - 0x288], 0
mov byte [ebp - 4], bl
je 0x420596
push dword [ebp - 0x288]
call sub.msi.dll_MsiConfigureFeatureFromDescriptorA
mov esi, dword [ebp - 0x2ac]
push dword [ebp - 0x2a8]
lea ecx, [ebp - 0x254]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x240], ebx
call fcn.0041a2f6
cmp dword [ebp - 0x244], 0
mov byte [ebp - 4], 4
jne 0x420711
push 0x20a
lea eax, [ebp - 0x23c]
push ebx
push eax
call fcn.00425c30
add esp, 0xc
mov dword [ebp - 0x2a8], edi
lea eax, [ebp - 0x2a8]
push eax
lea eax, [ebp - 0x23c]
push eax
push 0x452268
push str.FEB6D8F3_8D40_4D4E_95A1_152474E35A56
call sub.msi.dll_MsiGetPropertyW
test eax, eax
jne 0x42061f
mov edi, str._REINSTALLALL_REINSTALLMODEvomus
push edi
call fcn.0042d325
pop ecx
push eax
push edi
lea ecx, [ebp - 0x254]
call fcn.00408729
cmp dword [ebp + 0x14], 0
jne 0x4206ad
cmp dword [ebp - 0x294], 0
je 0x420692
push str._REBOOTr_DONT_PROMPT_REBOOT1_TRANSFORMS:
lea ecx, [ebp - 0x284]
call fcn.004090db
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
push ecx
push eax
lea eax, [ebp - 0x26c]
push eax
call fcn.00409013
add esp, 0xc
cmp dword [eax + 0x14], 8
mov ecx, eax
mov byte [ebp - 4], 6
jb 0x420668
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x254]
call fcn.00408729
lea ecx, [ebp - 0x26c]
call fcn.004086f1
lea ecx, [ebp - 0x284]
call fcn.004086f1
jmp 0x420724
mov edi, str._REBOOTr_DONT_PROMPT_REBOOT1
push edi
call fcn.0042d325
pop ecx
push eax
push edi
lea ecx, [ebp - 0x254]
call fcn.00408729
jmp 0x420724
cmp dword [ebp - 0x294], 0
je 0x420711
push str._TRANSFORMS:
lea ecx, [ebp - 0x26c]
call fcn.004090db
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.00409013
add esp, 0xc
cmp dword [eax + 0x14], 8
mov ecx, eax
mov byte [ebp - 4], 8
jb 0x4206ec
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x254]
call fcn.00408729
lea ecx, [ebp - 0x284]
call fcn.004086f1
lea ecx, [ebp - 0x26c]
call fcn.004086f1
cmp dword [ebp + 0x14], 0
je 0x420724
push ebx
push dword [0x46ecf4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp - 0x240], 8
lea eax, [ebp - 0x254]
cmovae eax, dword [ebp - 0x254]
cmp dword [esi + 0x14], 8
jb 0x420740
mov esi, dword [esi]
push eax
push esi
call sub.msi.dll_MsiOpenDatabaseW
mov ecx, dword [ebp - 0x2b4]
mov dword [ecx], eax
test eax, eax
je 0x420761
cmp eax, 0xbc2
je 0x420761
cmp eax, 0x669
jne 0x420764
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x254]
call fcn.004086f1
lea ecx, [ebp - 0x30c]
call fcn.00414a21
mov eax, ebx
call fcn.00423deb
ret