Function at 0x44ea90
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46f0d2
mov eax, dword fs:[0]
push eax
sub esp, 0xec0
mov eax, dword [0x48e03c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x62c], ecx
mov dword [ebp - 0x650], 0
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 0x670], eax
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x848], ecx
mov edx, dword [ebp - 0x848]
mov dword [ebp - 0x84c], edx
mov eax, dword [ebp - 0x84c]
push eax
call fcn.00465d36
add esp, 4
mov dword [ebp - 0x790], eax
cmp dword [ebp - 0x790], 0
je 0x44eb19
mov ecx, dword [ebp - 0x790]
push ecx
call fcn.00465d42
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0044e910
lea edx, [ebp - 0x638]
push edx
push 0x109
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [0x470004]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x44ebcf
push str.Cannot_open_the_key
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x850], eax
mov eax, dword [ebp - 0x634]
push eax
mov ecx, dword [ebp - 0x850]
call dword [0x47042c]
mov dword [ebp - 0x854], eax
push 0x40cf40
mov ecx, dword [ebp - 0x854]
call dword [0x470328]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x858], ecx
mov edx, dword [ebp - 0x858]
mov dword [ebp - 0x85c], edx
mov eax, dword [ebp - 0x85c]
push eax
call fcn.00465d3c
add esp, 4
jmp 0x452383
mov dword [ebp - 0x788], 0x100
mov dword [ebp - 0x630], 0
jmp 0x44ebf4
mov ecx, dword [ebp - 0x630]
add ecx, 1
mov dword [ebp - 0x630], ecx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x44f895
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x788]
push edx
mov eax, 2
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x298]
push edx
mov eax, dword [ebp - 0x630]
push eax
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x47000c]
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x788], 0x100
mov edx, dword [ebp - 0x634]
mov dword [ebp - 0x7b4], edx
cmp dword [ebp - 0x7b4], 0
je 0x44ec6e
cmp dword [ebp - 0x7b4], 0x103
je 0x44f7f7
jmp 0x44f838
mov eax, dword [ebp - 0x638]
push eax
lea ecx, [ebp - 0x298]
push ecx
mov ecx, dword [ebp - 0x62c]
call fcn.0044c8a0
mov dword [ebp - 0x640], eax
push 0
lea ecx, [ebp - 0x844]
call fcn.00464b58
mov byte [ebp - 4], 1
lea edx, [ebp - 0x310]
mov dword [ebp - 0x860], edx
movzx eax, byte [ebp - 0x6b5]
push eax
mov ecx, dword [ebp - 0x860]
call fcn.00409410
lea ecx, [ebp - 0x310]
mov dword [ebp - 0xc24], ecx
lea ecx, [ebp - 0x310]
call fcn.00413bb0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x3d0]
mov dword [ebp - 0x864], edx
movzx eax, byte [ebp - 0x6b6]
push eax
mov ecx, dword [ebp - 0x864]
call fcn.00409410
lea ecx, [ebp - 0x3d0]
mov dword [ebp - 0xb74], ecx
lea ecx, [ebp - 0x3d0]
call fcn.00413bb0
mov byte [ebp - 4], 3
lea edx, [ebp - 0x3b8]
mov dword [ebp - 0x868], edx
movzx eax, byte [ebp - 0x6b7]
push eax
mov ecx, dword [ebp - 0x868]
call fcn.00409410
lea ecx, [ebp - 0x3b8]
mov dword [ebp - 0xb78], ecx
lea ecx, [ebp - 0x3b8]
call fcn.00413bb0
mov byte [ebp - 4], 4
call fcn.004108e0
mov dword [ebp - 0x86c], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb7c], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00402d50
lea eax, [ebp - 0x2c8]
push eax
mov ecx, dword [ebp - 0x86c]
call fcn.00416ab0
mov dword [ebp - 0xb80], eax
mov byte [ebp - 4], 5
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb88], esp
lea edx, [ebp - 0x2c8]
push edx
call fcn.00405ed0
mov dword [ebp - 0xb8c], eax
mov byte [ebp - 4], 6
lea eax, [ebp - 0x3b8]
push eax
lea ecx, [ebp - 0x3d0]
push ecx
lea edx, [ebp - 0x310]
push edx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb90], esp
mov eax, dword [ebp - 0x640]
add eax, 0x90
push eax
call fcn.00405ed0
mov ecx, dword [ebp - 0x640]
push ecx
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x62c]
call fcn.0044b170
mov edx, dword [ebp - 0x640]
add edx, 0xd8
mov dword [ebp - 0x780], edx
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x870], eax
mov ecx, dword [ebp - 0x780]
cmp ecx, dword [ebp - 0x870]
je 0x44ee40
xor edx, edx
mov byte [ebp - 0x66b], dl
movzx eax, byte [ebp - 0x66b]
push eax
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, dword [ebp - 0x780]
call fcn.00406c40
push 0x4710d8
mov ecx, dword [ebp - 0x640]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x44eeb0
mov eax, dword [ebp - 0x640]
add eax, 0xd8
mov dword [ebp - 0x77c], eax
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x778], ecx
mov edx, dword [ebp - 0x77c]
mov dword [ebp - 0x874], edx
mov eax, dword [ebp - 0x778]
cmp eax, dword [ebp - 0x874]
je 0x44eeb0
xor ecx, ecx
mov byte [ebp - 0x651], cl
movzx edx, byte [ebp - 0x651]
push edx
mov eax, dword [ebp - 0x77c]
push eax
mov ecx, dword [ebp - 0x778]
call fcn.00406c40
mov ecx, dword [ebp - 0x640]
add ecx, 0x78
mov dword [ebp - 0x774], ecx
lea edx, [ebp - 0x310]
mov dword [ebp - 0x878], edx
mov eax, dword [ebp - 0x774]
cmp eax, dword [ebp - 0x878]
je 0x44eefb
xor ecx, ecx
mov byte [ebp - 0x652], cl
movzx edx, byte [ebp - 0x652]
push edx
lea eax, [ebp - 0x310]
push eax
mov ecx, dword [ebp - 0x774]
call fcn.00406c40
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x770], ecx
mov edx, dword [ebp - 0xb94]
mov dword [ebp - 0x76c], edx
mov eax, dword [ebp - 0x770]
mov dword [ebp - 0x87c], eax
mov ecx, dword [ebp - 0x87c]
mov dword [ebp - 0x76c], ecx
lea edx, [ebp - 0x2c8]
push edx
mov ecx, dword [ebp - 0x770]
call fcn.0042ac40
mov dword [ebp - 0x880], eax
mov eax, dword [ebp - 0x76c]
push eax
mov ecx, dword [ebp - 0x880]
push ecx
lea ecx, [ebp - 0x884]
call fcn.0042cce0
lea edx, [ebp - 0x884]
mov dword [ebp - 0x898], edx
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x888], eax
mov ecx, dword [ebp - 0xb98]
mov dword [ebp - 0x764], ecx
mov edx, dword [ebp - 0x888]
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x88c]
mov dword [ebp - 0x768], eax
mov ecx, dword [ebp - 0x768]
mov edx, dword [ecx]
mov dword [ebp - 0x890], edx
mov eax, dword [ebp - 0x768]
push eax
mov ecx, dword [ebp - 0x890]
push ecx
lea ecx, [ebp - 0x894]
call fcn.0042cce0
lea edx, [ebp - 0x894]
mov dword [ebp - 0x764], edx
mov eax, dword [ebp - 0x898]
mov ecx, dword [ebp - 0x764]
mov edx, dword [eax]
cmp edx, dword [ecx]
jne 0x44efef
mov dword [ebp - 0x760], 1
jmp 0x44eff9
mov dword [ebp - 0x760], 0
mov al, byte [ebp - 0x760]
mov byte [ebp - 0x653], al
movzx ecx, byte [ebp - 0x653]
test ecx, ecx
jne 0x44f01c
mov dword [ebp - 0x75c], 1
jmp 0x44f026
mov dword [ebp - 0x75c], 0
mov dl, byte [ebp - 0x75c]
mov byte [ebp - 0x654], dl
movzx eax, byte [ebp - 0x654]
test eax, eax
je 0x44f0f3
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x674], ecx
cmp dword [ebp - 0x674], 0
je 0x44f099
mov edx, dword [ebp - 0xb9c]
mov dword [ebp - 0x758], edx
mov ecx, dword [ebp - 0x674]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x44f08b
push 0xf8
mov ecx, dword [ebp - 0x674]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x674]
mov dword [ebp - 0x758], edx
jmp 0x44f0a3
mov dword [ebp - 0x758], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c8]
call fcn.004043b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3b8]
call fcn.004043b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3d0]
call fcn.004043b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x310]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x844]
call fcn.00464b5e
jmp 0x44ebe5
push 0x472ec4
mov ecx, dword [ebp - 0x640]
add ecx, 0xd8
call fcn.0041dce0
movzx eax, al
test eax, eax
je 0x44f1d0
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x678], ecx
cmp dword [ebp - 0x678], 0
je 0x44f16c
mov edx, dword [ebp - 0xba0]
mov dword [ebp - 0x754], edx
mov ecx, dword [ebp - 0x678]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x44f15e
push 0xf8
mov ecx, dword [ebp - 0x678]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x678]
mov dword [ebp - 0x754], edx
jmp 0x44f176
mov dword [ebp - 0x754], 0
mov dword [ebp - 0x640], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c8]
call fcn.004043b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3b8]
call fcn.004043b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3d0]
call fcn.004043b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x310]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x844]
call fcn.00464b5e
jmp 0x44ebe5
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x89c], eax
lea ecx, [ebp - 0x2c8]
push ecx
lea edx, [ebp - 0xdc4]
push edx
mov ecx, dword [ebp - 0x89c]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [ebp - 0x640]
mov dword [eax + 0x28], ecx
mov edx, dword [ebp - 0x300]
mov dword [ebp - 0x8a0], edx
cmp dword [ebp - 0x8a0], 9
jbe 0x44f396
lea eax, [ebp - 0x310]
mov dword [ebp - 0xba4], eax
lea ecx, [ebp - 0x6b8]
mov dword [ebp - 0x8a4], ecx
mov edx, dword [ebp - 0x8a4]
push edx
push 9
push 1
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x448]
call fcn.0041d400
mov ecx, dword [ebp - 0x650]
or ecx, 1
mov dword [ebp - 0x650], ecx
lea edx, [ebp - 0x448]
mov dword [ebp - 0x8a8], edx
push str.:windows
mov ecx, dword [ebp - 0x8a8]
call fcn.0041dce0
mov byte [ebp - 0x655], al
lea ecx, [ebp - 0x448]
call fcn.004043b0
movzx eax, byte [ebp - 0x655]
test eax, eax
je 0x44f396
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x8ac], ecx
lea edx, [ebp - 0x2c8]
push edx
lea eax, [ebp - 0xc6c]
push eax
mov ecx, dword [ebp - 0x8ac]
call fcn.0044a210
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x6b4], edx
cmp dword [ebp - 0x6b4], 0
je 0x44f31b
mov eax, dword [ebp - 0xba8]
mov dword [ebp - 0x750], eax
mov ecx, dword [ebp - 0x6b4]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x44f30d
push 0xf8
mov edx, dword [ebp - 0x6b4]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x6b4]
mov dword [ebp - 0x750], eax
jmp 0x44f325
mov dword [ebp - 0x750], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x8b0], ecx
lea edx, [ebp - 0x2c8]
push edx
mov ecx, dword [ebp - 0x8b0]
call fcn.0044e9f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c8]
call fcn.004043b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3b8]
call fcn.004043b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3d0]
call fcn.004043b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x310]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x844]
call fcn.00464b5e
jmp 0x44ebe5
push 0x4710d8
lea ecx, [ebp - 0x3b8]
call fcn.0041dce0
movzx eax, al
test eax, eax
je 0x44f4ab
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x8b4], ecx
lea edx, [ebp - 0x2c8]
push edx
lea eax, [ebp - 0xd04]
push eax
mov ecx, dword [ebp - 0x8b4]
call fcn.0044a210
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x6b0], edx
cmp dword [ebp - 0x6b0], 0
je 0x44f430
mov eax, dword [ebp - 0xbac]
mov dword [ebp - 0x74c], eax
mov ecx, dword [ebp - 0x6b0]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x44f422
push 0xf8
mov edx, dword [ebp - 0x6b0]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x6b0]
mov dword [ebp - 0x74c], eax
jmp 0x44f43a
mov dword [ebp - 0x74c], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x8b8], ecx
lea edx, [ebp - 0x2c8]
push edx
mov ecx, dword [ebp - 0x8b8]
call fcn.0044e9f0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c8]
call fcn.004043b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3b8]
call fcn.004043b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3d0]
call fcn.004043b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x310]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x844]
call fcn.00464b5e
jmp 0x44ebe5
xorps xmm0, xmm0
movlpd qword [ebp - 0xae4], xmm0
mov dword [ebp - 0xbb0], 0
push 0x4710bc
lea ecx, [ebp - 0x310]
push ecx
lea edx, [ebp - 0x538]
push edx
call fcn.00404e70
add esp, 0xc
mov dword [ebp - 0x8bc], eax
mov eax, dword [ebp - 0x8bc]
mov dword [ebp - 0x8c0], eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3b8]
push ecx
mov edx, dword [ebp - 0x8c0]
push edx
lea eax, [ebp - 0x568]
push eax
call fcn.00404e30
add esp, 0xc
mov dword [ebp - 0x8c4], eax
mov ecx, dword [ebp - 0x8c4]
mov dword [ebp - 0x6d4], ecx
mov edx, dword [ebp - 0x6d4]
mov dword [ebp - 0x78c], edx
mov eax, dword [ebp - 0x6d4]
cmp dword [eax + 0x14], 0x10
jb 0x44f544
mov dword [ebp - 0x734], 1
jmp 0x44f54e
mov dword [ebp - 0x734], 0
mov cl, byte [ebp - 0x734]
mov byte [ebp - 0x656], cl
movzx edx, byte [ebp - 0x656]
test edx, edx
je 0x44f57f
mov eax, dword [ebp - 0x6d4]
mov ecx, dword [eax]
mov dword [ebp - 0x8c8], ecx
mov edx, dword [ebp - 0x8c8]
mov dword [ebp - 0x78c], edx
mov eax, dword [ebp - 0x78c]
mov dword [ebp - 0x8cc], eax
mov ecx, dword [ebp - 0x8cc]
mov dword [ebp - 0x8d0], ecx
lea edx, [ebp - 0x5c8]
push edx
mov eax, dword [ebp - 0x8d0]
push eax
call dword [0x4707c0]
add esp, 8
mov dword [ebp - 0xbb4], eax
lea ecx, [ebp - 0x568]
call fcn.004043b0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x538]
call fcn.004043b0
lea ecx, [ebp - 0x5a0]
push ecx
call dword [0x470918]
add esp, 4
mov dword [ebp - 0x8d4], eax
mov edx, dword [ebp - 0x8d4]
push edx
push str._Y__m__d
push 0x20
lea eax, [ebp - 0x30]
push eax
call dword [0x470914]
add esp, 0x10
lea ecx, [ebp - 0x2c8]
push ecx
lea ecx, [ebp - 0xdec]
call fcn.00464b6a
mov byte [ebp - 4], 8
lea edx, [ebp - 0xdec]
push edx
push str.uninstallId
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xdec]
call fcn.00464b5e
lea eax, [ebp - 0x3d0]
push eax
lea ecx, [ebp - 0xe04]
call fcn.00464b6a
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xe04]
push ecx
push str.icon
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe04]
call fcn.00464b5e
mov edx, dword [ebp - 0x640]
push edx
lea ecx, [ebp - 0xe1c]
call fcn.00464b6a
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0xe1c]
push eax
push str.softName
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe1c]
call fcn.00464b5e
mov ecx, dword [ebp - 0x640]
add ecx, 0x60
push ecx
lea ecx, [ebp - 0xe34]
call fcn.00464b6a
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0xe34]
push edx
push str.company
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe34]
call fcn.00464b5e
mov eax, dword [ebp - 0xae0]
push eax
mov ecx, dword [ebp - 0xae4]
push ecx
lea ecx, [ebp - 0xe4c]
call fcn.00464c24
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0xe4c]
push edx
push str.fileSize
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe4c]
call fcn.00464b5e
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xe64]
call fcn.00464b64
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xe64]
push ecx
push str.update
lea ecx, [ebp - 0x844]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xe64]
call fcn.00464b5e
lea edx, [ebp - 0x844]
push edx
mov ecx, dword [ebp + 8]
call fcn.00464bee
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c8]
call fcn.004043b0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3b8]
call fcn.004043b0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3d0]
call fcn.004043b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x310]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x844]
call fcn.00464b5e
jmp 0x44f890
push str.Finish_enumerate_softwares
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x8d8], eax
push 0x40cf40
mov ecx, dword [ebp - 0x8d8]
call dword [0x470328]
mov eax, dword [ebp - 0x638]
push eax
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x44f890
push str.Cannot_enumerate_software
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x8dc]
call dword [0x47042c]
mov dword [ebp - 0x8e0], eax
push 0x40cf40
mov ecx, dword [ebp - 0x8e0]
call dword [0x470328]
mov edx, dword [ebp - 0x638]
push edx
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x44ebe5
lea eax, [ebp - 0x638]
push eax
push 9
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [0x470004]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x44f933
push str.Cannot_open_the_key
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x8e4], eax
mov ecx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0x8e4]
call dword [0x47042c]
mov dword [ebp - 0x8e8], eax
push 0x40cf40
mov ecx, dword [ebp - 0x8e8]
call dword [0x470328]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x670]
mov dword [ebp - 0x8ec], edx
mov eax, dword [ebp - 0x8ec]
mov dword [ebp - 0x8f0], eax
mov ecx, dword [ebp - 0x8f0]
push ecx
call fcn.00465d3c
add esp, 4
jmp 0x452383
mov dword [ebp - 0x630], 0
jmp 0x44f94e
mov edx, dword [ebp - 0x630]
add edx, 1
mov dword [ebp - 0x630], edx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x4505db
push 0x208
mov eax, 2
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x298]
push edx
mov eax, dword [ebp - 0x630]
push eax
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x470010]
mov dword [ebp - 0x634], eax
mov edx, dword [ebp - 0x634]
mov dword [ebp - 0x784], edx
cmp dword [ebp - 0x784], 0
je 0x44f9b4
cmp dword [ebp - 0x784], 0x103
je 0x45053d
jmp 0x45057e
mov eax, dword [ebp - 0x638]
push eax
lea ecx, [ebp - 0x298]
push ecx
mov ecx, dword [ebp - 0x62c]
call fcn.0044c8a0
mov dword [ebp - 0x648], eax
push 0
lea ecx, [ebp - 0x82c]
call fcn.00464b58
mov byte [ebp - 4], 0xe
lea edx, [ebp - 0x340]
mov dword [ebp - 0x8f4], edx
movzx eax, byte [ebp - 0x6b9]
push eax
mov ecx, dword [ebp - 0x8f4]
call fcn.00409410
lea ecx, [ebp - 0x340]
mov dword [ebp - 0xbb8], ecx
lea ecx, [ebp - 0x340]
call fcn.00413bb0
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x418]
mov dword [ebp - 0x8f8], edx
movzx eax, byte [ebp - 0x6ba]
push eax
mov ecx, dword [ebp - 0x8f8]
call fcn.00409410
lea ecx, [ebp - 0x418]
mov dword [ebp - 0xbbc], ecx
lea ecx, [ebp - 0x418]
call fcn.00413bb0
mov byte [ebp - 4], 0x10
lea edx, [ebp - 0x3a0]
mov dword [ebp - 0x8fc], edx
movzx eax, byte [ebp - 0x6bb]
push eax
mov ecx, dword [ebp - 0x8fc]
call fcn.00409410
lea ecx, [ebp - 0x3a0]
mov dword [ebp - 0xbc0], ecx
lea ecx, [ebp - 0x3a0]
call fcn.00413bb0
mov byte [ebp - 4], 0x11
call fcn.004108e0
mov dword [ebp - 0x900], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xbc4], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00402d50
lea eax, [ebp - 0x2b0]
push eax
mov ecx, dword [ebp - 0x900]
call fcn.00416ab0
mov dword [ebp - 0xbc8], eax
mov byte [ebp - 4], 0x12
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xbcc], esp
lea edx, [ebp - 0x2b0]
push edx
call fcn.00405ed0
mov dword [ebp - 0xbd0], eax
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x3a0]
push eax
lea ecx, [ebp - 0x418]
push ecx
lea edx, [ebp - 0x340]
push edx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xbd4], esp
mov eax, dword [ebp - 0x648]
add eax, 0x90
push eax
call fcn.00405ed0
mov ecx, dword [ebp - 0x648]
push ecx
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x62c]
call fcn.0044b170
mov edx, dword [ebp - 0x648]
add edx, 0xd8
mov dword [ebp - 0x794], edx
lea eax, [ebp - 0x2b0]
mov dword [ebp - 0x904], eax
mov ecx, dword [ebp - 0x794]
cmp ecx, dword [ebp - 0x904]
je 0x44fb86
xor edx, edx
mov byte [ebp - 0x657], dl
movzx eax, byte [ebp - 0x657]
push eax
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, dword [ebp - 0x794]
call fcn.00406c40
push 0x4710d8
mov ecx, dword [ebp - 0x648]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x44fbf6
mov eax, dword [ebp - 0x648]
add eax, 0xd8
mov dword [ebp - 0x798], eax
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x79c], ecx
mov edx, dword [ebp - 0x798]
mov dword [ebp - 0x908], edx
mov eax, dword [ebp - 0x79c]
cmp eax, dword [ebp - 0x908]
je 0x44fbf6
xor ecx, ecx
mov byte [ebp - 0x658], cl
movzx edx, byte [ebp - 0x658]
push edx
mov eax, dword [ebp - 0x798]
push eax
mov ecx, dword [ebp - 0x79c]
call fcn.00406c40
mov ecx, dword [ebp - 0x648]
add ecx, 0x78
mov dword [ebp - 0x7a0], ecx
lea edx, [ebp - 0x340]
mov dword [ebp - 0x90c], edx
mov eax, dword [ebp - 0x7a0]
cmp eax, dword [ebp - 0x90c]
je 0x44fc41
xor ecx, ecx
mov byte [ebp - 0x659], cl
movzx edx, byte [ebp - 0x659]
push edx
lea eax, [ebp - 0x340]
push eax
mov ecx, dword [ebp - 0x7a0]
call fcn.00406c40
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x7a4], ecx
mov edx, dword [ebp - 0xbd8]
mov dword [ebp - 0x7a8], edx
mov eax, dword [ebp - 0x7a4]
mov dword [ebp - 0x910], eax
mov ecx, dword [ebp - 0x910]
mov dword [ebp - 0x7a8], ecx
lea edx, [ebp - 0x2b0]
push edx
mov ecx, dword [ebp - 0x7a4]
call fcn.0042ac40
mov dword [ebp - 0x914], eax
mov eax, dword [ebp - 0x7a8]
push eax
mov ecx, dword [ebp - 0x914]
push ecx
lea ecx, [ebp - 0x918]
call fcn.0042cce0
lea edx, [ebp - 0x918]
mov dword [ebp - 0xad4], edx
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x91c], eax
mov ecx, dword [ebp - 0xbdc]
mov dword [ebp - 0x7b0], ecx
mov edx, dword [ebp - 0x91c]
mov dword [ebp - 0xa8c], edx
mov eax, dword [ebp - 0xa8c]
mov dword [ebp - 0x7ac], eax
mov ecx, dword [ebp - 0x7ac]
mov edx, dword [ecx]
mov dword [ebp - 0xadc], edx
mov eax, dword [ebp - 0x7ac]
push eax
mov ecx, dword [ebp - 0xadc]
push ecx
lea ecx, [ebp - 0xad8]
call fcn.0042cce0
lea edx, [ebp - 0xad8]
mov dword [ebp - 0x7b0], edx
mov eax, dword [ebp - 0xad4]
mov ecx, dword [ebp - 0x7b0]
mov edx, dword [eax]
cmp edx, dword [ecx]
jne 0x44fd35
mov dword [ebp - 0x7b8], 1
jmp 0x44fd3f
mov dword [ebp - 0x7b8], 0
mov al, byte [ebp - 0x7b8]
mov byte [ebp - 0x65a], al
movzx ecx, byte [ebp - 0x65a]
test ecx, ecx
jne 0x44fd62
mov dword [ebp - 0x7bc], 1
jmp 0x44fd6c
mov dword [ebp - 0x7bc], 0
mov dl, byte [ebp - 0x7bc]
mov byte [ebp - 0x65b], dl
movzx eax, byte [ebp - 0x65b]
test eax, eax
je 0x44fe39
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x6ac], ecx
cmp dword [ebp - 0x6ac], 0
je 0x44fddf
mov edx, dword [ebp - 0xbe0]
mov dword [ebp - 0x7c0], edx
mov ecx, dword [ebp - 0x6ac]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x44fdd1
push 0xf8
mov ecx, dword [ebp - 0x6ac]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x6ac]
mov dword [ebp - 0x7c0], edx
jmp 0x44fde9
mov dword [ebp - 0x7c0], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2b0]
call fcn.004043b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3a0]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x418]
call fcn.004043b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x340]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x82c]
call fcn.00464b5e
jmp 0x44f93f
push 0x472ec4
mov ecx, dword [ebp - 0x648]
add ecx, 0xd8
call fcn.0041dce0
movzx eax, al
test eax, eax
je 0x44ff16
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x6a8], ecx
cmp dword [ebp - 0x6a8], 0
je 0x44feb2
mov edx, dword [ebp - 0xbe4]
mov dword [ebp - 0x7c4], edx
mov ecx, dword [ebp - 0x6a8]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x44fea4
push 0xf8
mov ecx, dword [ebp - 0x6a8]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x6a8]
mov dword [ebp - 0x7c4], edx
jmp 0x44febc
mov dword [ebp - 0x7c4], 0
mov dword [ebp - 0x648], 0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2b0]
call fcn.004043b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3a0]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x418]
call fcn.004043b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x340]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x82c]
call fcn.00464b5e
jmp 0x44f93f
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0xad0], eax
lea ecx, [ebp - 0x2b0]
push ecx
lea edx, [ebp - 0xd9c]
push edx
mov ecx, dword [ebp - 0xad0]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [ebp - 0x648]
mov dword [eax + 0x28], ecx
mov edx, dword [ebp - 0x330]
mov dword [ebp - 0xacc], edx
cmp dword [ebp - 0xacc], 9
jbe 0x4500dc
lea eax, [ebp - 0x340]
mov dword [ebp - 0xbe8], eax
lea ecx, [ebp - 0x6bc]
mov dword [ebp - 0xac8], ecx
mov edx, dword [ebp - 0xac8]
push edx
push 9
push 1
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x460]
call fcn.0041d400
mov ecx, dword [ebp - 0x650]
or ecx, 8
mov dword [ebp - 0x650], ecx
lea edx, [ebp - 0x460]
mov dword [ebp - 0xac4], edx
push str.:windows
mov ecx, dword [ebp - 0xac4]
call fcn.0041dce0
mov byte [ebp - 0x65c], al
lea ecx, [ebp - 0x460]
call fcn.004043b0
movzx eax, byte [ebp - 0x65c]
test eax, eax
je 0x4500dc
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0xac0], ecx
lea edx, [ebp - 0x2b0]
push edx
lea eax, [ebp - 0xda4]
push eax
mov ecx, dword [ebp - 0xac0]
call fcn.0044a210
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x6a4], edx
cmp dword [ebp - 0x6a4], 0
je 0x450061
mov eax, dword [ebp - 0xbec]
mov dword [ebp - 0x7c8], eax
mov ecx, dword [ebp - 0x6a4]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x450053
push 0xf8
mov edx, dword [ebp - 0x6a4]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x6a4]
mov dword [ebp - 0x7c8], eax
jmp 0x45006b
mov dword [ebp - 0x7c8], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0xabc], ecx
lea edx, [ebp - 0x2b0]
push edx
mov ecx, dword [ebp - 0xabc]
call fcn.0044e9f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2b0]
call fcn.004043b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3a0]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x418]
call fcn.004043b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x340]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x82c]
call fcn.00464b5e
jmp 0x44f93f
push 0x4710d8
lea ecx, [ebp - 0x3a0]
call fcn.0041dce0
movzx eax, al
test eax, eax
je 0x4501f1
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0xab8], ecx
lea edx, [ebp - 0x2b0]
push edx
lea eax, [ebp - 0xdac]
push eax
mov ecx, dword [ebp - 0xab8]
call fcn.0044a210
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x6a0], edx
cmp dword [ebp - 0x6a0], 0
je 0x450176
mov eax, dword [ebp - 0xbf0]
mov dword [ebp - 0x7cc], eax
mov ecx, dword [ebp - 0x6a0]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x450168
push 0xf8
mov edx, dword [ebp - 0x6a0]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x7cc], eax
jmp 0x450180
mov dword [ebp - 0x7cc], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0xab4], ecx
lea edx, [ebp - 0x2b0]
push edx
mov ecx, dword [ebp - 0xab4]
call fcn.0044e9f0
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2b0]
call fcn.004043b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3a0]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x418]
call fcn.004043b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x340]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x82c]
call fcn.00464b5e
jmp 0x44f93f
xorps xmm0, xmm0
movlpd qword [ebp - 0xaec], xmm0
mov dword [ebp - 0xbf4], 0
push 0x4710bc
lea ecx, [ebp - 0x340]
push ecx
lea edx, [ebp - 0x508]
push edx
call fcn.00404e70
add esp, 0xc
mov dword [ebp - 0xab0], eax
mov eax, dword [ebp - 0xab0]
mov dword [ebp - 0xaac], eax
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x3a0]
push ecx
mov edx, dword [ebp - 0xaac]
push edx
lea eax, [ebp - 0x520]
push eax
call fcn.00404e30
add esp, 0xc
mov dword [ebp - 0xaa8], eax
mov ecx, dword [ebp - 0xaa8]
mov dword [ebp - 0x6d0], ecx
mov edx, dword [ebp - 0x6d0]
mov dword [ebp - 0x7d4], edx
mov eax, dword [ebp - 0x6d0]
cmp dword [eax + 0x14], 0x10
jb 0x45028a
mov dword [ebp - 0x7d0], 1
jmp 0x450294
mov dword [ebp - 0x7d0], 0
mov cl, byte [ebp - 0x7d0]
mov byte [ebp - 0x65d], cl
movzx edx, byte [ebp - 0x65d]
test edx, edx
je 0x4502c5
mov eax, dword [ebp - 0x6d0]
mov ecx, dword [eax]
mov dword [ebp - 0xaa4], ecx
mov edx, dword [ebp - 0xaa4]
mov dword [ebp - 0x7d4], edx
mov eax, dword [ebp - 0x7d4]
mov dword [ebp - 0xaa0], eax
mov ecx, dword [ebp - 0xaa0]
mov dword [ebp - 0xa9c], ecx
lea edx, [ebp - 0x628]
push edx
mov eax, dword [ebp - 0xa9c]
push eax
call dword [0x4707c0]
add esp, 8
mov dword [ebp - 0xbf8], eax
lea ecx, [ebp - 0x520]
call fcn.004043b0
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x508]
call fcn.004043b0
lea ecx, [ebp - 0x600]
push ecx
call dword [0x470918]
add esp, 4
mov dword [ebp - 0xa98], eax
mov edx, dword [ebp - 0xa98]
push edx
push str._Y__m__d
push 0x20
lea eax, [ebp - 0x50]
push eax
call dword [0x470914]
add esp, 0x10
lea ecx, [ebp - 0x2b0]
push ecx
lea ecx, [ebp - 0xe84]
call fcn.00464b6a
mov byte [ebp - 4], 0x15
lea edx, [ebp - 0xe84]
push edx
push str.uninstallId
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xe84]
call fcn.00464b5e
lea eax, [ebp - 0x418]
push eax
lea ecx, [ebp - 0xe9c]
call fcn.00464b6a
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0xe9c]
push ecx
push str.icon
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xe9c]
call fcn.00464b5e
mov edx, dword [ebp - 0x648]
push edx
lea ecx, [ebp - 0xeb4]
call fcn.00464b6a
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0xeb4]
push eax
push str.softName
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xeb4]
call fcn.00464b5e
mov ecx, dword [ebp - 0x648]
add ecx, 0x60
push ecx
lea ecx, [ebp - 0xecc]
call fcn.00464b6a
mov byte [ebp - 4], 0x18
lea edx, [ebp - 0xecc]
push edx
push str.company
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xecc]
call fcn.00464b5e
mov eax, dword [ebp - 0xae8]
push eax
mov ecx, dword [ebp - 0xaec]
push ecx
lea ecx, [ebp - 0xc4c]
call fcn.00464c24
mov byte [ebp - 4], 0x19
lea edx, [ebp - 0xc4c]
push edx
push str.fileSize
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xc4c]
call fcn.00464b5e
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xc64]
call fcn.00464b64
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0xc64]
push ecx
push str.update
lea ecx, [ebp - 0x82c]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0xc64]
call fcn.00464b5e
lea edx, [ebp - 0x82c]
push edx
mov ecx, dword [ebp + 8]
call fcn.00464bee
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x2b0]
call fcn.004043b0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x3a0]
call fcn.004043b0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x418]
call fcn.004043b0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x340]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x82c]
call fcn.00464b5e
jmp 0x4505d6
push str.Finish_enumerate_softwares
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0xa94], eax
push 0x40cf40
mov ecx, dword [ebp - 0xa94]
call dword [0x470328]
mov eax, dword [ebp - 0x638]
push eax
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x4505d6
push str.Cannot_enumerate_software
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0xa90], eax
mov ecx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0xa90]
call dword [0x47042c]
mov dword [ebp - 0xa38], eax
push 0x40cf40
mov ecx, dword [ebp - 0xa38]
call dword [0x470328]
mov edx, dword [ebp - 0x638]
push edx
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x44f93f
lea eax, [ebp - 0x638]
push eax
push 0x109
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call dword [0x470004]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x45067c
push str.Cannot_open_the_key
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0xa88], eax
mov ecx, dword [ebp - 0x634]
push ecx
mov ecx, dword [ebp - 0xa88]
call dword [0x47042c]
mov dword [ebp - 0xa84], eax
push 0x40cf40
mov ecx, dword [ebp - 0xa84]
call dword [0x470328]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x670]
mov dword [ebp - 0xa80], edx
mov eax, dword [ebp - 0xa80]
mov dword [ebp - 0xa7c], eax
mov ecx, dword [ebp - 0xa7c]
push ecx
call fcn.00465d3c
add esp, 4
jmp 0x452383
mov dword [ebp - 0x630], 0
jmp 0x450697
mov edx, dword [ebp - 0x630]
add edx, 1
mov dword [ebp - 0x630], edx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x4512ff
push 0x208
mov eax, 2
imul ecx, eax, 0
lea edx, [ebp + ecx - 0x298]
push edx
mov eax, dword [ebp - 0x630]
push eax
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x470010]
mov dword [ebp - 0x634], eax
mov edx, dword [ebp - 0x634]
mov dword [ebp - 0x7d8], edx
cmp dword [ebp - 0x7d8], 0
je 0x4506fd
cmp dword [ebp - 0x7d8], 0x103
je 0x451261
jmp 0x4512a2
mov eax, dword [ebp - 0x638]
push eax
lea ecx, [ebp - 0x298]
push ecx
mov ecx, dword [ebp - 0x62c]
call fcn.0044c8a0
mov dword [ebp - 0x644], eax
push 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b58
mov byte [ebp - 4], 0x1b
lea edx, [ebp - 0x328]
mov dword [ebp - 0xa78], edx
mov ecx, dword [ebp - 0xa78]
call fcn.0040d1e0
lea eax, [ebp - 0x328]
mov dword [ebp - 0xbfc], eax
lea ecx, [ebp - 0x328]
call fcn.00413bb0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
mov dword [ebp - 0xa74], ecx
mov ecx, dword [ebp - 0xa74]
call fcn.0040d1e0
lea edx, [ebp - 0x3e8]
mov dword [ebp - 0xc00], edx
lea ecx, [ebp - 0x3e8]
call fcn.00413bb0
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x388]
mov dword [ebp - 0xa70], eax
mov ecx, dword [ebp - 0xa70]
call fcn.0040d1e0
lea ecx, [ebp - 0x388]
mov dword [ebp - 0xc04], ecx
lea ecx, [ebp - 0x388]
call fcn.00413bb0
mov byte [ebp - 4], 0x1e
call fcn.004108e0
mov dword [ebp - 0xa6c], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xc08], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00402d50
lea eax, [ebp - 0x2f8]
push eax
mov ecx, dword [ebp - 0xa6c]
call fcn.00416ab0
mov dword [ebp - 0xc0c], eax
mov byte [ebp - 4], 0x1f
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xc10], esp
lea edx, [ebp - 0x2f8]
push edx
call fcn.00405ed0
mov dword [ebp - 0xc14], eax
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x388]
push eax
lea ecx, [ebp - 0x3e8]
push ecx
lea edx, [ebp - 0x328]
push edx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xc18], esp
mov eax, dword [ebp - 0x644]
add eax, 0x90
push eax
call fcn.00405ed0
mov ecx, dword [ebp - 0x644]
push ecx
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x62c]
call fcn.0044b170
mov edx, dword [ebp - 0x644]
add edx, 0xd8
mov dword [ebp - 0x7dc], edx
lea eax, [ebp - 0x2f8]
mov dword [ebp - 0xa58], eax
mov ecx, dword [ebp - 0x7dc]
cmp ecx, dword [ebp - 0xa58]
je 0x4508b7
xor edx, edx
mov byte [ebp - 0x65e], dl
movzx eax, byte [ebp - 0x65e]
push eax
lea ecx, [ebp - 0x2f8]
push ecx
mov ecx, dword [ebp - 0x7dc]
call fcn.00406c40
push 0x4710d8
mov ecx, dword [ebp - 0x644]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x450927
mov eax, dword [ebp - 0x644]
add eax, 0xd8
mov dword [ebp - 0x7e0], eax
mov ecx, dword [ebp - 0x644]
mov dword [ebp - 0x6d8], ecx
mov edx, dword [ebp - 0x7e0]
mov dword [ebp - 0xa54], edx
mov eax, dword [ebp - 0x6d8]
cmp eax, dword [ebp - 0xa54]
je 0x450927
xor ecx, ecx
mov byte [ebp - 0x65f], cl
movzx edx, byte [ebp - 0x65f]
push edx
mov eax, dword [ebp - 0x7e0]
push eax
mov ecx, dword [ebp - 0x6d8]
call fcn.00406c40
mov ecx, dword [ebp - 0x644]
add ecx, 0x78
mov dword [ebp - 0x6dc], ecx
lea edx, [ebp - 0x328]
mov dword [ebp - 0xa50], edx
mov eax, dword [ebp - 0x6dc]
cmp eax, dword [ebp - 0xa50]
je 0x450972
xor ecx, ecx
mov byte [ebp - 0x660], cl
movzx edx, byte [ebp - 0x660]
push edx
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp - 0x6dc]
call fcn.00406c40
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x6e0], ecx
mov edx, dword [ebp - 0xc1c]
mov dword [ebp - 0x6e4], edx
mov eax, dword [ebp - 0x6e0]
mov dword [ebp - 0xa4c], eax
mov ecx, dword [ebp - 0xa4c]
mov dword [ebp - 0x6e4], ecx
lea edx, [ebp - 0x2f8]
push edx
mov ecx, dword [ebp - 0x6e0]
call fcn.0042ac40
mov dword [ebp - 0xa48], eax
mov eax, dword [ebp - 0x6e4]
push eax
mov ecx, dword [ebp - 0xa48]
push ecx
lea ecx, [ebp - 0xa44]
call fcn.0042cce0
lea edx, [ebp - 0xa44]
mov dword [ebp - 0xa64], edx
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0xa40], eax
mov ecx, dword [ebp - 0xc20]
mov dword [ebp - 0x6e8], ecx
mov edx, dword [ebp - 0xa40]
mov dword [ebp - 0xa3c], edx
mov eax, dword [ebp - 0xa3c]
mov dword [ebp - 0xa34], eax
mov ecx, dword [ebp - 0xa34]
mov edx, dword [ecx]
mov dword [ebp - 0xa60], edx
mov eax, dword [ebp - 0xa60]
mov dword [ebp - 0xa5c], eax
lea ecx, [ebp - 0xa5c]
mov dword [ebp - 0x6e8], ecx
mov edx, dword [ebp - 0xa64]
mov eax, dword [ebp - 0x6e8]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x450a59
mov dword [ebp - 0x6ec], 1
jmp 0x450a63
mov dword [ebp - 0x6ec], 0
mov dl, byte [ebp - 0x6ec]
mov byte [ebp - 0x661], dl
movzx eax, byte [ebp - 0x661]
test eax, eax
jne 0x450a86
mov dword [ebp - 0x6f0], 1
jmp 0x450a90
mov dword [ebp - 0x6f0], 0
mov cl, byte [ebp - 0x6f0]
mov byte [ebp - 0x662], cl
movzx edx, byte [ebp - 0x662]
test edx, edx
je 0x450b5d
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x69c], eax
cmp dword [ebp - 0x69c], 0
je 0x450b03
mov ecx, dword [ebp - 0xb84]
mov dword [ebp - 0x6f4], ecx
mov ecx, dword [ebp - 0x69c]
call fcn.0044ae00
mov edx, 1
and edx, 1
je 0x450af5
push 0xf8
mov eax, dword [ebp - 0x69c]
push eax
call fcn.00466ffc
add esp, 8
mov ecx, dword [ebp - 0x69c]
mov dword [ebp - 0x6f4], ecx
jmp 0x450b0d
mov dword [ebp - 0x6f4], 0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2f8]
call fcn.004043b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x388]
call fcn.004043b0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x328]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b5e
jmp 0x450688
push 0x472ec4
mov ecx, dword [ebp - 0x644]
add ecx, 0xd8
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x450c3a
mov eax, dword [ebp - 0x644]
mov dword [ebp - 0x698], eax
cmp dword [ebp - 0x698], 0
je 0x450bd6
mov ecx, dword [ebp - 0xc28]
mov dword [ebp - 0x6f8], ecx
mov ecx, dword [ebp - 0x698]
call fcn.0044ae00
mov edx, 1
and edx, 1
je 0x450bc8
push 0xf8
mov eax, dword [ebp - 0x698]
push eax
call fcn.00466ffc
add esp, 8
mov ecx, dword [ebp - 0x698]
mov dword [ebp - 0x6f8], ecx
jmp 0x450be0
mov dword [ebp - 0x6f8], 0
mov dword [ebp - 0x644], 0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2f8]
call fcn.004043b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x388]
call fcn.004043b0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x328]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b5e
jmp 0x450688
mov edx, dword [ebp - 0x62c]
add edx, 0x30
mov dword [ebp - 0xa68], edx
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0xdb4]
push ecx
mov ecx, dword [ebp - 0xa68]
call fcn.0044a210
mov edx, dword [eax]
mov eax, dword [ebp - 0x644]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp - 0x318]
mov dword [ebp - 0x920], ecx
cmp dword [ebp - 0x920], 9
jbe 0x450e00
lea edx, [ebp - 0x328]
mov dword [ebp - 0xc2c], edx
lea eax, [ebp - 0x6bd]
mov dword [ebp - 0x924], eax
mov ecx, dword [ebp - 0x924]
push ecx
push 9
push 1
lea edx, [ebp - 0x328]
push edx
lea ecx, [ebp - 0x478]
call fcn.0041d400
mov eax, dword [ebp - 0x650]
or eax, 0x40
mov dword [ebp - 0x650], eax
lea ecx, [ebp - 0x478]
mov dword [ebp - 0x928], ecx
push str.:windows
mov ecx, dword [ebp - 0x928]
call fcn.0041dce0
mov byte [ebp - 0x663], al
lea ecx, [ebp - 0x478]
call fcn.004043b0
movzx edx, byte [ebp - 0x663]
test edx, edx
je 0x450e00
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x92c], eax
lea ecx, [ebp - 0x2f8]
push ecx
lea edx, [ebp - 0xdbc]
push edx
mov ecx, dword [ebp - 0x92c]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x694], ecx
cmp dword [ebp - 0x694], 0
je 0x450d85
mov edx, dword [ebp - 0xb00]
mov dword [ebp - 0x6fc], edx
mov ecx, dword [ebp - 0x694]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x450d77
push 0xf8
mov ecx, dword [ebp - 0x694]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x694]
mov dword [ebp - 0x6fc], edx
jmp 0x450d8f
mov dword [ebp - 0x6fc], 0
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x930], eax
lea ecx, [ebp - 0x2f8]
push ecx
mov ecx, dword [ebp - 0x930]
call fcn.0044e9f0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2f8]
call fcn.004043b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x388]
call fcn.004043b0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x328]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b5e
jmp 0x450688
push 0x4710d8
lea ecx, [ebp - 0x388]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x450f15
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x934], eax
lea ecx, [ebp - 0x2f8]
push ecx
lea edx, [ebp - 0xc34]
push edx
mov ecx, dword [ebp - 0x934]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x690], ecx
cmp dword [ebp - 0x690], 0
je 0x450e9a
mov edx, dword [ebp - 0xb04]
mov dword [ebp - 0x700], edx
mov ecx, dword [ebp - 0x690]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x450e8c
push 0xf8
mov ecx, dword [ebp - 0x690]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x690]
mov dword [ebp - 0x700], edx
jmp 0x450ea4
mov dword [ebp - 0x700], 0
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x938], eax
lea ecx, [ebp - 0x2f8]
push ecx
mov ecx, dword [ebp - 0x938]
call fcn.0044e9f0
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2f8]
call fcn.004043b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x388]
call fcn.004043b0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x328]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b5e
jmp 0x450688
mov dword [ebp - 0xb08], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xaf4], xmm0
push 0x4710bc
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x4f0]
push ecx
call fcn.00404e70
add esp, 0xc
mov dword [ebp - 0x93c], eax
mov edx, dword [ebp - 0x93c]
mov dword [ebp - 0x940], edx
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x388]
push eax
mov ecx, dword [ebp - 0x940]
push ecx
lea edx, [ebp - 0x550]
push edx
call fcn.00404e30
add esp, 0xc
mov dword [ebp - 0x944], eax
mov eax, dword [ebp - 0x944]
mov dword [ebp - 0x6cc], eax
mov ecx, dword [ebp - 0x6cc]
mov dword [ebp - 0x708], ecx
mov edx, dword [ebp - 0x6cc]
cmp dword [edx + 0x14], 0x10
jb 0x450fae
mov dword [ebp - 0x704], 1
jmp 0x450fb8
mov dword [ebp - 0x704], 0
mov al, byte [ebp - 0x704]
mov byte [ebp - 0x664], al
movzx ecx, byte [ebp - 0x664]
test ecx, ecx
je 0x450fe9
mov edx, dword [ebp - 0x6cc]
mov eax, dword [edx]
mov dword [ebp - 0x948], eax
mov ecx, dword [ebp - 0x948]
mov dword [ebp - 0x708], ecx
mov edx, dword [ebp - 0x708]
mov dword [ebp - 0x94c], edx
mov eax, dword [ebp - 0x94c]
mov dword [ebp - 0x950], eax
lea ecx, [ebp - 0x598]
push ecx
mov edx, dword [ebp - 0x950]
push edx
call dword [0x4707c0]
add esp, 8
mov dword [ebp - 0xb0c], eax
lea ecx, [ebp - 0x550]
call fcn.004043b0
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x4f0]
call fcn.004043b0
lea eax, [ebp - 0x570]
push eax
call dword [0x470918]
add esp, 4
mov dword [ebp - 0x954], eax
mov ecx, dword [ebp - 0x954]
push ecx
push str._Y__m__d
push 0x20
lea edx, [ebp - 0x70]
push edx
call dword [0x470914]
add esp, 0x10
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0xc84]
call fcn.00464b6a
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0xc84]
push ecx
push str.uninstallId
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xc84]
call fcn.00464b5e
lea edx, [ebp - 0x3e8]
push edx
lea ecx, [ebp - 0xc9c]
call fcn.00464b6a
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0xc9c]
push eax
push str.icon
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xc9c]
call fcn.00464b5e
mov ecx, dword [ebp - 0x644]
push ecx
lea ecx, [ebp - 0xcb4]
call fcn.00464b6a
mov byte [ebp - 4], 0x24
lea edx, [ebp - 0xcb4]
push edx
push str.softName
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xcb4]
call fcn.00464b5e
mov eax, dword [ebp - 0x644]
add eax, 0x60
push eax
lea ecx, [ebp - 0xccc]
call fcn.00464b6a
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0xccc]
push ecx
push str.company
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xccc]
call fcn.00464b5e
mov edx, dword [ebp - 0xaf0]
push edx
mov eax, dword [ebp - 0xaf4]
push eax
lea ecx, [ebp - 0xce4]
call fcn.00464c24
mov byte [ebp - 4], 0x26
lea ecx, [ebp - 0xce4]
push ecx
push str.fileSize
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xce4]
call fcn.00464b5e
lea edx, [ebp - 0x70]
push edx
lea ecx, [ebp - 0xcfc]
call fcn.00464b64
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0xcfc]
push eax
push str.update
lea ecx, [ebp - 0x7fc]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0xcfc]
call fcn.00464b5e
lea ecx, [ebp - 0x7fc]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00464bee
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2f8]
call fcn.004043b0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x388]
call fcn.004043b0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x3e8]
call fcn.004043b0
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x328]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7fc]
call fcn.00464b5e
jmp 0x4512fa
push str.Finish_enumerate_softwares
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x958], eax
push 0x40cf40
mov ecx, dword [ebp - 0x958]
call dword [0x470328]
mov edx, dword [ebp - 0x638]
push edx
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x4512fa
push str.Cannot_enumerate_software
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x95c], eax
mov eax, dword [ebp - 0x634]
push eax
mov ecx, dword [ebp - 0x95c]
call dword [0x47042c]
mov dword [ebp - 0x960], eax
push 0x40cf40
mov ecx, dword [ebp - 0x960]
call dword [0x470328]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x450688
lea edx, [ebp - 0x638]
push edx
push 9
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call dword [0x470004]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x45139d
push str.Cannot_open_the_key
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x964], eax
mov eax, dword [ebp - 0x634]
push eax
mov ecx, dword [ebp - 0x964]
call dword [0x47042c]
mov dword [ebp - 0x968], eax
push 0x40cf40
mov ecx, dword [ebp - 0x968]
call dword [0x470328]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x96c], ecx
mov edx, dword [ebp - 0x96c]
mov dword [ebp - 0x970], edx
mov eax, dword [ebp - 0x970]
push eax
call fcn.00465d3c
add esp, 4
jmp 0x452383
mov dword [ebp - 0x630], 0
jmp 0x4513b8
mov ecx, dword [ebp - 0x630]
add ecx, 1
mov dword [ebp - 0x630], ecx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x452020
push 0x208
mov edx, 2
imul eax, edx, 0
lea ecx, [ebp + eax - 0x298]
push ecx
mov edx, dword [ebp - 0x630]
push edx
mov eax, dword [ebp - 0x638]
push eax
call dword [0x470010]
mov dword [ebp - 0x634], eax
mov ecx, dword [ebp - 0x634]
mov dword [ebp - 0x70c], ecx
cmp dword [ebp - 0x70c], 0
je 0x45141e
cmp dword [ebp - 0x70c], 0x103
je 0x451f82
jmp 0x451fc3
mov edx, dword [ebp - 0x638]
push edx
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x62c]
call fcn.0044c8a0
mov dword [ebp - 0x63c], eax
push 0
lea ecx, [ebp - 0x814]
call fcn.00464b58
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
mov dword [ebp - 0x974], ecx
mov ecx, dword [ebp - 0x974]
call fcn.0040d1e0
lea edx, [ebp - 0x358]
mov dword [ebp - 0xb10], edx
lea ecx, [ebp - 0x358]
call fcn.00413bb0
mov byte [ebp - 4], 0x29
lea eax, [ebp - 0x400]
mov dword [ebp - 0x978], eax
mov ecx, dword [ebp - 0x978]
call fcn.0040d1e0
lea ecx, [ebp - 0x400]
mov dword [ebp - 0xb14], ecx
lea ecx, [ebp - 0x400]
call fcn.00413bb0
mov byte [ebp - 4], 0x2a
lea edx, [ebp - 0x370]
mov dword [ebp - 0x97c], edx
mov ecx, dword [ebp - 0x97c]
call fcn.0040d1e0
lea eax, [ebp - 0x370]
mov dword [ebp - 0xb18], eax
lea ecx, [ebp - 0x370]
call fcn.00413bb0
mov byte [ebp - 4], 0x2b
call fcn.004108e0
mov dword [ebp - 0x980], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb1c], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00402d50
lea eax, [ebp - 0x2e0]
push eax
mov ecx, dword [ebp - 0x980]
call fcn.00416ab0
mov dword [ebp - 0xb20], eax
mov byte [ebp - 4], 0x2c
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb24], esp
lea edx, [ebp - 0x2e0]
push edx
call fcn.00405ed0
mov dword [ebp - 0xb28], eax
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x370]
push eax
lea ecx, [ebp - 0x400]
push ecx
lea edx, [ebp - 0x358]
push edx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb2c], esp
mov eax, dword [ebp - 0x63c]
add eax, 0x90
push eax
call fcn.00405ed0
mov ecx, dword [ebp - 0x63c]
push ecx
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x62c]
call fcn.0044b170
mov edx, dword [ebp - 0x63c]
add edx, 0xd8
mov dword [ebp - 0x710], edx
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x984], eax
mov ecx, dword [ebp - 0x710]
cmp ecx, dword [ebp - 0x984]
je 0x4515d8
xor edx, edx
mov byte [ebp - 0x665], dl
movzx eax, byte [ebp - 0x665]
push eax
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x710]
call fcn.00406c40
push 0x4710d8
mov ecx, dword [ebp - 0x63c]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x451648
mov eax, dword [ebp - 0x63c]
add eax, 0xd8
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp - 0x63c]
mov dword [ebp - 0x718], ecx
mov edx, dword [ebp - 0x714]
mov dword [ebp - 0x988], edx
mov eax, dword [ebp - 0x718]
cmp eax, dword [ebp - 0x988]
je 0x451648
xor ecx, ecx
mov byte [ebp - 0x66c], cl
movzx edx, byte [ebp - 0x66c]
push edx
mov eax, dword [ebp - 0x714]
push eax
mov ecx, dword [ebp - 0x718]
call fcn.00406c40
mov ecx, dword [ebp - 0x63c]
add ecx, 0x78
mov dword [ebp - 0x71c], ecx
lea edx, [ebp - 0x358]
mov dword [ebp - 0x98c], edx
mov eax, dword [ebp - 0x71c]
cmp eax, dword [ebp - 0x98c]
je 0x451693
xor ecx, ecx
mov byte [ebp - 0x666], cl
movzx edx, byte [ebp - 0x666]
push edx
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x71c]
call fcn.00406c40
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x720], ecx
mov edx, dword [ebp - 0xb30]
mov dword [ebp - 0x994], edx
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x990], eax
mov ecx, dword [ebp - 0x990]
mov dword [ebp - 0x994], ecx
lea edx, [ebp - 0x2e0]
push edx
mov ecx, dword [ebp - 0x720]
call fcn.0042ac40
mov dword [ebp - 0x998], eax
mov eax, dword [ebp - 0x998]
mov dword [ebp - 0x99c], eax
lea ecx, [ebp - 0x99c]
mov dword [ebp - 0x9b4], ecx
mov edx, dword [ebp - 0x62c]
add edx, 0x30
mov dword [ebp - 0x9a0], edx
mov eax, dword [ebp - 0xb34]
mov dword [ebp - 0x724], eax
mov ecx, dword [ebp - 0x9a0]
mov dword [ebp - 0x9a4], ecx
mov edx, dword [ebp - 0x9a4]
mov dword [ebp - 0x9a8], edx
mov eax, dword [ebp - 0x9a8]
mov ecx, dword [eax]
mov dword [ebp - 0x9ac], ecx
mov edx, dword [ebp - 0x9ac]
mov dword [ebp - 0x9b0], edx
lea eax, [ebp - 0x9b0]
mov dword [ebp - 0x724], eax
mov ecx, dword [ebp - 0x9b4]
mov edx, dword [ebp - 0x724]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x45176d
mov dword [ebp - 0x728], 1
jmp 0x451777
mov dword [ebp - 0x728], 0
mov cl, byte [ebp - 0x728]
mov byte [ebp - 0x667], cl
movzx edx, byte [ebp - 0x667]
test edx, edx
jne 0x45179a
mov dword [ebp - 0x72c], 1
jmp 0x4517a4
mov dword [ebp - 0x72c], 0
mov al, byte [ebp - 0x72c]
mov byte [ebp - 0x668], al
movzx ecx, byte [ebp - 0x668]
test ecx, ecx
je 0x451871
mov edx, dword [ebp - 0x63c]
mov dword [ebp - 0x68c], edx
cmp dword [ebp - 0x68c], 0
je 0x451817
mov eax, dword [ebp - 0xb38]
mov dword [ebp - 0x730], eax
mov ecx, dword [ebp - 0x68c]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x451809
push 0xf8
mov edx, dword [ebp - 0x68c]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x68c]
mov dword [ebp - 0x730], eax
jmp 0x451821
mov dword [ebp - 0x730], 0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2e0]
call fcn.004043b0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x370]
call fcn.004043b0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x400]
call fcn.004043b0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x814]
call fcn.00464b5e
jmp 0x4513a9
push 0x472ec4
mov ecx, dword [ebp - 0x63c]
add ecx, 0xd8
call fcn.0041dce0
movzx ecx, al
test ecx, ecx
je 0x45194e
mov edx, dword [ebp - 0x63c]
mov dword [ebp - 0x67c], edx
cmp dword [ebp - 0x67c], 0
je 0x4518ea
mov eax, dword [ebp - 0xb3c]
mov dword [ebp - 0x7e4], eax
mov ecx, dword [ebp - 0x67c]
call fcn.0044ae00
mov ecx, 1
and ecx, 1
je 0x4518dc
push 0xf8
mov edx, dword [ebp - 0x67c]
push edx
call fcn.00466ffc
add esp, 8
mov eax, dword [ebp - 0x67c]
mov dword [ebp - 0x7e4], eax
jmp 0x4518f4
mov dword [ebp - 0x7e4], 0
mov dword [ebp - 0x63c], 0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2e0]
call fcn.004043b0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x370]
call fcn.004043b0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x400]
call fcn.004043b0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x814]
call fcn.00464b5e
jmp 0x4513a9
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x9b8], ecx
lea edx, [ebp - 0x2e0]
push edx
lea eax, [ebp - 0xdcc]
push eax
mov ecx, dword [ebp - 0x9b8]
call fcn.0044a210
mov ecx, dword [eax]
mov edx, dword [ebp - 0x63c]
mov dword [ecx + 0x28], edx
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x9bc], eax
cmp dword [ebp - 0x9bc], 9
jbe 0x451ae0
push 9
push 1
lea ecx, [ebp - 0x4d8]
push ecx
lea ecx, [ebp - 0x358]
call fcn.00421380
mov dword [ebp - 0x9c0], eax
push str.:windows
mov ecx, dword [ebp - 0x9c0]
call fcn.0041dce0
mov byte [ebp - 0x669], al
lea ecx, [ebp - 0x4d8]
call fcn.004043b0
movzx edx, byte [ebp - 0x669]
test edx, edx
je 0x451ae0
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x9c4], eax
lea ecx, [ebp - 0x2e0]
push ecx
lea edx, [ebp - 0xdd4]
push edx
mov ecx, dword [ebp - 0x9c4]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x688], ecx
cmp dword [ebp - 0x688], 0
je 0x451a65
mov edx, dword [ebp - 0xb40]
mov dword [ebp - 0x738], edx
mov ecx, dword [ebp - 0x688]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x451a57
push 0xf8
mov ecx, dword [ebp - 0x688]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x688]
mov dword [ebp - 0x738], edx
jmp 0x451a6f
mov dword [ebp - 0x738], 0
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x9c8], eax
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x9c8]
call fcn.0044e9f0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2e0]
call fcn.004043b0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x370]
call fcn.004043b0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x400]
call fcn.004043b0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x814]
call fcn.00464b5e
jmp 0x4513a9
push 0x4710d8
lea ecx, [ebp - 0x370]
call fcn.0041dce0
movzx edx, al
test edx, edx
je 0x451bf5
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x9cc], eax
lea ecx, [ebp - 0x2e0]
push ecx
lea edx, [ebp - 0xe6c]
push edx
mov ecx, dword [ebp - 0x9cc]
call fcn.0044a210
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x684], ecx
cmp dword [ebp - 0x684], 0
je 0x451b7a
mov edx, dword [ebp - 0xb44]
mov dword [ebp - 0x73c], edx
mov ecx, dword [ebp - 0x684]
call fcn.0044ae00
mov eax, 1
and eax, 1
je 0x451b6c
push 0xf8
mov ecx, dword [ebp - 0x684]
push ecx
call fcn.00466ffc
add esp, 8
mov edx, dword [ebp - 0x684]
mov dword [ebp - 0x73c], edx
jmp 0x451b84
mov dword [ebp - 0x73c], 0
mov eax, dword [ebp - 0x62c]
add eax, 0x30
mov dword [ebp - 0x9d0], eax
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x9d0]
call fcn.0044e9f0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2e0]
call fcn.004043b0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x370]
call fcn.004043b0
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x400]
call fcn.004043b0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
call fcn.004043b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x814]
call fcn.00464b5e
jmp 0x4513a9
mov dword [ebp - 0xb48], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xafc], xmm0
push 0x4710bc
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x4c0]
push ecx
call fcn.00404e70
add esp, 0xc
mov dword [ebp - 0x9d4], eax
mov edx, dword [ebp - 0x9d4]
mov dword [ebp - 0x9d8], edx
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x370]
push eax
mov ecx, dword [ebp - 0x9d8]
call fcn.00407c10
mov dword [ebp - 0x9dc], eax
mov ecx, dword [ebp - 0x9dc]
mov dword [ebp - 0x9e0], ecx
mov edx, dword [ebp - 0x9e0]
push edx
lea ecx, [ebp - 0x430]
call fcn.00405e50
mov eax, dword [ebp - 0x650]
or eax, 0x800
mov dword [ebp - 0x650], eax
lea ecx, [ebp - 0x430]
mov dword [ebp - 0x9e4], ecx
mov edx, dword [ebp - 0x9e4]
mov dword [ebp - 0x6c8], edx
mov eax, dword [ebp - 0x6c8]
mov dword [ebp - 0x744], eax
mov ecx, dword [ebp - 0x6c8]
cmp dword [ecx + 0x14], 0x10
jb 0x451cbe
mov dword [ebp - 0x740], 1
jmp 0x451cc8
mov dword [ebp - 0x740], 0
mov dl, byte [ebp - 0x740]
mov byte [ebp - 0x66a], dl
movzx eax, byte [ebp - 0x66a]
test eax, eax
je 0x451cf9
mov ecx, dword [ebp - 0x6c8]
mov edx, dword [ecx]
mov dword [ebp - 0x9e8], edx
mov eax, dword [ebp - 0x9e8]
mov dword [ebp - 0x744], eax
mov ecx, dword [ebp - 0x744]
mov dword [ebp - 0x9ec], ecx
mov edx, dword [ebp - 0x9ec]
mov dword [ebp - 0x9f0], edx
lea eax, [ebp - 0x5f8]
push eax
mov ecx, dword [ebp - 0x9f0]
push ecx
call dword [0x4707c0]
add esp, 8
mov dword [ebp - 0xb4c], eax
lea ecx, [ebp - 0x430]
call fcn.004043b0
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0x4c0]
call fcn.004043b0
lea edx, [ebp - 0x5d0]
push edx
call dword [0x470918]
add esp, 4
mov dword [ebp - 0x9f4], eax
mov eax, dword [ebp - 0x9f4]
push eax
push str._Y__m__d
push 0x20
lea ecx, [ebp - 0x90]
push ecx
call dword [0x470914]
add esp, 0x10
lea edx, [ebp - 0x2e0]
push edx
lea ecx, [ebp - 0xd1c]
call fcn.00464b6a
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0xd1c]
push eax
push str.uninstallId
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd1c]
call fcn.00464b5e
lea ecx, [ebp - 0x400]
push ecx
lea ecx, [ebp - 0xd34]
call fcn.00464b6a
mov byte [ebp - 4], 0x30
lea edx, [ebp - 0xd34]
push edx
push str.icon
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd34]
call fcn.00464b5e
mov eax, dword [ebp - 0x63c]
push eax
lea ecx, [ebp - 0xd4c]
call fcn.00464b6a
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0xd4c]
push ecx
push str.softName
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd4c]
call fcn.00464b5e
mov edx, dword [ebp - 0x63c]
add edx, 0x60
push edx
lea ecx, [ebp - 0xd64]
call fcn.00464b6a
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0xd64]
push eax
push str.company
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd64]
call fcn.00464b5e
mov ecx, dword [ebp - 0xaf8]
push ecx
mov edx, dword [ebp - 0xafc]
push edx
lea ecx, [ebp - 0xd7c]
call fcn.00464c24
mov byte [ebp - 4], 0x33
lea eax, [ebp - 0xd7c]
push eax
push str.fileSize
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd7c]
call fcn.00464b5e
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0xd94]
call fcn.00464b64
mov byte [ebp - 4], 0x34
lea edx, [ebp - 0xd94]
push edx
push str.update
lea ecx, [ebp - 0x814]
call fcn.00464b88
mov ecx, eax
call fcn.00464b70
mov byte [ebp - 4], 0x2c
lea ecx, [ebp - 0xd94]
call fcn.00464b5e
lea eax, [ebp - 0x814]
push eax
mov ecx, dword [ebp + 8]
call fcn.00464bee
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x2e0]
call fcn.004043b0
mov byte [ebp - 4], 0x2a
lea ecx, [ebp - 0x370]
call fcn.004043b0
lea ecx, [ebp - 0x370]
call fcn.00402f70
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x400]
call fcn.00402ff0
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x358]
call fcn.00402ff0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x814]
call fcn.00464b5e
jmp 0x45201b
push str.Finish_enumerate_softwares
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x9f8], eax
push 0x40cf40
mov ecx, dword [ebp - 0x9f8]
call dword [0x470328]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x45201b
push str.Cannot_enumerate_software
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0x9fc], eax
mov edx, dword [ebp - 0x634]
push edx
mov ecx, dword [ebp - 0x9fc]
call dword [0x47042c]
mov dword [ebp - 0xa00], eax
push 0x40cf40
mov ecx, dword [ebp - 0xa00]
call dword [0x470328]
mov eax, dword [ebp - 0x638]
push eax
call dword [0x470020]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x4513a9
mov dword [ebp - 0x680], 0
lea ecx, [ebp - 0x680]
push ecx
push str.base.db
call dword [0x470ad8]
add esp, 8
mov dword [ebp - 0xa04], eax
cmp dword [ebp - 0xa04], 0
jne 0x452323
push 0x473c8c
mov edx, dword [0x470430]
push edx
call fcn.00409860
add esp, 8
mov dword [ebp - 0xa08], str.SELECT__FROM_soft_info_
mov dword [ebp - 0x64c], 0
push 0
lea eax, [ebp - 0x64c]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp - 0xa08]
push ecx
mov edx, dword [ebp - 0x680]
push edx
call dword [0x470ad0]
add esp, 0x14
mov dword [ebp - 0xa0c], eax
cmp dword [ebp - 0xa0c], 0
jne 0x4522fd
push 0x473cbc
mov eax, dword [0x470430]
push eax
call fcn.00409860
add esp, 8
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x470acc]
add esp, 4
cmp eax, 0x64
jne 0x4522fb
push 0
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x470ac4]
add esp, 8
mov dword [ebp - 0xa28], eax
push 1
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x470ac4]
add esp, 8
mov dword [ebp - 0xa2c], eax
push 2
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0xb50], eax
push 3
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0xb54], eax
push 4
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0xb58], eax
push 5
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0xb5c], eax
push 6
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x470ac4]
add esp, 8
mov dword [ebp - 0xb60], eax
push 7
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x470ac4]
add esp, 8
mov dword [ebp - 0xb64], eax
push 8
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0xa10], eax
push 9
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x470ae0]
add esp, 8
mov dword [ebp - 0x748], eax
cmp dword [ebp - 0x748], 0
je 0x4522f6
cmp dword [ebp - 0xa10], 0
je 0x4522f6
call fcn.004108e0
mov dword [ebp - 0xa14], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb68], esp
mov eax, dword [ebp - 0x748]
push eax
call fcn.00402bd0
lea ecx, [ebp - 0x4a8]
push ecx
mov ecx, dword [ebp - 0xa14]
call fcn.00416870
mov dword [ebp - 0xa18], eax
mov edx, dword [ebp - 0xa18]
mov dword [ebp - 0xa1c], edx
mov byte [ebp - 4], 0x35
mov ecx, dword [ebp - 0xa1c]
call fcn.0041e260
push eax
lea ecx, [ebp - 0x490]
call fcn.00402bd0
mov byte [ebp - 4], 0x36
call fcn.0044d430
add eax, 0x30
mov dword [ebp - 0xa20], eax
lea eax, [ebp - 0x490]
push eax
lea ecx, [ebp - 0x6c4]
push ecx
mov ecx, dword [ebp - 0xa20]
call fcn.0044ea50
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x490]
call fcn.00402ff0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4a8]
call fcn.00402ff0
call fcn.0044d430
add eax, 0x30
mov dword [ebp - 0xa24], eax
lea edx, [ebp - 0xb6c]
push edx
mov ecx, dword [ebp - 0xa24]
call fcn.0044e9c0
push eax
lea ecx, [ebp - 0x6c4]
call fcn.0044af30
movzx eax, al
test eax, eax
je 0x4522f6
lea ecx, [ebp - 0x6c4]
call fcn.0044af80
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0xa28]
mov dword [ecx + 0xf0], edx
lea ecx, [ebp - 0x6c4]
call fcn.0044af80
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0xa2c]
mov dword [eax + 0xf4], ecx
jmp 0x4520c2
jmp 0x452311
push 0x473cec
mov edx, dword [0x470430]
push edx
call fcn.00409860
add esp, 8
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x470ac8]
add esp, 4
jmp 0x452339
mov ecx, dword [ebp - 0x680]
push ecx
call dword [0x470ad4]
add esp, 4
mov dword [ebp - 0xb70], eax
mov edx, dword [ebp - 0x680]
push edx
call dword [0x470adc]
add esp, 4
push str.Finish_enumerate_softwares
mov ecx, dword [0x470344]
call dword [0x470444]
mov dword [ebp - 0xa30], eax
push 0x40cf40
mov ecx, dword [ebp - 0xa30]
call dword [0x470328]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x670]
call fcn.0044ada0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00466fbe
mov esp, ebp
pop ebp
ret 8