Function at 0x43fa30
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4542df
mov eax, dword fs:[0]
push eax
sub esp, 0xdb0
mov eax, dword [0x470008]
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 - 0x66c], 0
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 0x670], eax
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.0044c754
add esp, 4
mov dword [ebp - 0x6dc], eax
cmp dword [ebp - 0x6dc], 0
je 0x43fab9
mov ecx, dword [ebp - 0x6dc]
push ecx
call fcn.0044c760
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f890
lea edx, [ebp - 0x638]
push edx
push 0x109
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [0x456008]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x43fb5b
push 0x40b640
mov eax, dword [ebp - 0x634]
push eax
push str.Cannot_open_the_key
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x974], ecx
mov edx, dword [ebp - 0x974]
mov dword [ebp - 0x97c], edx
mov eax, dword [ebp - 0x97c]
push eax
call fcn.0044c75a
add esp, 4
jmp 0x44303d
mov dword [ebp - 0x6e0], 0x100
mov dword [ebp - 0x630], 0
jmp 0x43fb80
mov ecx, dword [ebp - 0x630]
add ecx, 1
mov dword [ebp - 0x630], ecx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x4407b0
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x6e0]
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 [0x456010]
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x6e0], 0x100
mov edx, dword [ebp - 0x634]
mov dword [ebp - 0x6e4], edx
cmp dword [ebp - 0x6e4], 0
je 0x43fbfa
cmp dword [ebp - 0x6e4], 0x103
je 0x440730
jmp 0x440767
mov eax, dword [ebp - 0x638]
push eax
lea ecx, [ebp - 0x298]
push ecx
mov ecx, dword [ebp - 0x62c]
call fcn.0043d890
mov dword [ebp - 0x640], eax
push 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c148
mov byte [ebp - 4], 1
movzx edx, byte [ebp - 0x6c1]
push edx
lea ecx, [ebp - 0x340]
call fcn.00407e10
lea ecx, [ebp - 0x340]
call fcn.00410190
mov byte [ebp - 4], 2
movzx eax, byte [ebp - 0x6b5]
push eax
lea ecx, [ebp - 0x3e8]
call fcn.00407e10
lea ecx, [ebp - 0x3e8]
call fcn.00410190
mov byte [ebp - 4], 3
movzx ecx, byte [ebp - 0x6b6]
push ecx
lea ecx, [ebp - 0x388]
call fcn.00407e10
lea ecx, [ebp - 0x388]
call fcn.00410190
mov byte [ebp - 4], 4
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa30], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00401b90
mov dword [ebp - 0xaa4], eax
mov byte [ebp - 4], 5
lea eax, [ebp - 0x2f8]
push eax
call fcn.0040d570
mov byte [ebp - 4], 4
mov ecx, eax
call fcn.00411e70
mov dword [ebp - 0xaa8], eax
mov byte [ebp - 4], 6
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xaac], esp
lea edx, [ebp - 0x2f8]
push edx
call fcn.00404a90
mov dword [ebp - 0xab0], eax
mov byte [ebp - 4], 7
lea eax, [ebp - 0x388]
push eax
lea ecx, [ebp - 0x3e8]
push ecx
lea edx, [ebp - 0x340]
push edx
mov eax, dword [ebp - 0x640]
add eax, 0x90
mov dword [ebp - 0x6e8], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xab4], esp
mov dword [ebp - 0x6ec], ecx
mov edx, dword [ebp - 0x6e8]
mov dword [ebp - 0x840], edx
mov eax, dword [ebp - 0x840]
mov dword [ebp - 0xab8], eax
lea ecx, [ebp - 0x6b7]
push ecx
movzx edx, byte [ebp - 0x6b8]
push edx
mov ecx, dword [ebp - 0x6ec]
call fcn.004221b0
mov byte [ebp - 4], 8
mov dword [ebp - 0xabc], 0x459bb6
mov eax, dword [ebp - 0x6e8]
push eax
mov ecx, dword [ebp - 0x6ec]
call fcn.00405630
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x640]
push ecx
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x62c]
call fcn.0043c340
mov edx, dword [ebp - 0x640]
add edx, 0xd8
mov dword [ebp - 0x6f0], edx
lea eax, [ebp - 0x2f8]
mov dword [ebp - 0x844], eax
mov ecx, dword [ebp - 0x6f0]
cmp ecx, dword [ebp - 0x844]
je 0x43fde4
xor edx, edx
mov byte [ebp - 0x668], dl
movzx eax, byte [ebp - 0x668]
push eax
lea ecx, [ebp - 0x2f8]
push ecx
mov ecx, dword [ebp - 0x6f0]
call fcn.004057a0
push 0x456db8
mov ecx, dword [ebp - 0x640]
call fcn.00418ab0
movzx edx, al
test edx, edx
je 0x43fe54
mov eax, dword [ebp - 0x640]
add eax, 0xd8
mov dword [ebp - 0x6f4], eax
mov ecx, dword [ebp - 0x640]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f4]
mov dword [ebp - 0x848], edx
mov eax, dword [ebp - 0x6f8]
cmp eax, dword [ebp - 0x848]
je 0x43fe54
xor ecx, ecx
mov byte [ebp - 0x64d], cl
movzx edx, byte [ebp - 0x64d]
push edx
mov eax, dword [ebp - 0x6f4]
push eax
mov ecx, dword [ebp - 0x6f8]
call fcn.004057a0
mov ecx, dword [ebp - 0x640]
add ecx, 0x78
mov dword [ebp - 0x6fc], ecx
lea edx, [ebp - 0x340]
mov dword [ebp - 0x84c], edx
mov eax, dword [ebp - 0x6fc]
cmp eax, dword [ebp - 0x84c]
je 0x43fe9f
xor ecx, ecx
mov byte [ebp - 0x64e], cl
movzx edx, byte [ebp - 0x64e]
push edx
lea eax, [ebp - 0x340]
push eax
mov ecx, dword [ebp - 0x6fc]
call fcn.004057a0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x850], ecx
mov edx, dword [ebp - 0x850]
mov dword [ebp - 0x700], edx
mov eax, dword [ebp - 0x700]
mov ecx, dword [eax]
mov dword [ebp - 0x854], ecx
mov edx, dword [ebp - 0x700]
push edx
mov eax, dword [ebp - 0x854]
push eax
lea ecx, [ebp - 0x858]
call fcn.00424620
lea ecx, [ebp - 0x858]
mov dword [ebp - 0x868], ecx
mov edx, dword [ebp - 0x62c]
add edx, 0x30
mov dword [ebp - 0x704], edx
mov eax, dword [ebp - 0x704]
mov dword [ebp - 0x85c], eax
mov ecx, dword [ebp - 0x85c]
mov dword [ebp - 0x860], ecx
lea edx, [ebp - 0x2f8]
push edx
mov ecx, dword [ebp - 0x704]
call fcn.00422ef0
mov dword [ebp - 0x864], eax
mov eax, dword [ebp - 0x860]
push eax
mov ecx, dword [ebp - 0x864]
push ecx
lea ecx, [ebp - 0x86c]
call fcn.00424620
mov edx, dword [ebp - 0x868]
mov eax, dword [ebp - 0x86c]
cmp eax, dword [edx]
jne 0x43ff61
mov dword [ebp - 0x708], 1
jmp 0x43ff6b
mov dword [ebp - 0x708], 0
mov cl, byte [ebp - 0x708]
mov byte [ebp - 0x64f], cl
movzx edx, byte [ebp - 0x64f]
test edx, edx
jne 0x43ff8e
mov dword [ebp - 0x70c], 1
jmp 0x43ff98
mov dword [ebp - 0x70c], 0
mov al, byte [ebp - 0x70c]
mov byte [ebp - 0x650], al
movzx ecx, byte [ebp - 0x650]
test ecx, ecx
je 0x440065
mov edx, dword [ebp - 0x640]
mov dword [ebp - 0x6a8], edx
cmp dword [ebp - 0x6a8], 0
je 0x44000b
mov eax, dword [ebp - 0xac0]
mov dword [ebp - 0x710], eax
mov ecx, dword [ebp - 0x6a8]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x43fffd
push 0xf8
mov edx, dword [ebp - 0x6a8]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x6a8]
mov dword [ebp - 0x710], eax
jmp 0x440015
mov dword [ebp - 0x710], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2f8]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x388]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3e8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c14e
jmp 0x43fb71
push str.FyStore
mov ecx, dword [ebp - 0x640]
add ecx, 0xd8
call fcn.00418ab0
movzx ecx, al
test ecx, ecx
je 0x440142
mov edx, dword [ebp - 0x640]
mov dword [ebp - 0x6ac], edx
cmp dword [ebp - 0x6ac], 0
je 0x4400de
mov eax, dword [ebp - 0xac4]
mov dword [ebp - 0x714], eax
mov ecx, dword [ebp - 0x6ac]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x4400d0
push 0xf8
mov edx, dword [ebp - 0x6ac]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x6ac]
mov dword [ebp - 0x714], eax
jmp 0x4400e8
mov dword [ebp - 0x714], 0
mov dword [ebp - 0x640], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2f8]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x388]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3e8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c14e
jmp 0x43fb71
lea ecx, [ebp - 0x2f8]
push ecx
lea edx, [ebp - 0xb24]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [ebp - 0x640]
mov dword [eax + 0x28], ecx
mov edx, dword [ebp - 0x330]
mov dword [ebp - 0x870], edx
cmp dword [ebp - 0x870], 9
jbe 0x4402e4
lea eax, [ebp - 0x340]
mov dword [ebp - 0xac8], eax
lea ecx, [ebp - 0x6b9]
mov dword [ebp - 0x874], ecx
mov edx, dword [ebp - 0x874]
push edx
push 9
push 1
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x430]
call fcn.00418140
mov ecx, dword [ebp - 0x66c]
or ecx, 1
mov dword [ebp - 0x66c], ecx
lea edx, [ebp - 0x430]
mov dword [ebp - 0x878], edx
push str.:windows
mov ecx, dword [ebp - 0x878]
call fcn.00418ab0
mov byte [ebp - 0x651], al
lea ecx, [ebp - 0x430]
call fcn.00403100
movzx eax, byte [ebp - 0x651]
test eax, eax
je 0x4402e4
lea ecx, [ebp - 0x2f8]
push ecx
lea edx, [ebp - 0xb2c]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x6b0], ecx
cmp dword [ebp - 0x6b0], 0
je 0x440275
mov edx, dword [ebp - 0xacc]
mov dword [ebp - 0x718], edx
mov ecx, dword [ebp - 0x6b0]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x440267
push 0xf8
mov ecx, dword [ebp - 0x6b0]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x6b0]
mov dword [ebp - 0x718], edx
jmp 0x44027f
mov dword [ebp - 0x718], 0
lea eax, [ebp - 0x2f8]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2f8]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x388]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3e8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c14e
jmp 0x43fb71
push 0x456db8
lea ecx, [ebp - 0x388]
call fcn.00418ab0
movzx ecx, al
test ecx, ecx
je 0x4403e1
lea edx, [ebp - 0x2f8]
push edx
lea eax, [ebp - 0xb34]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x6b4], edx
cmp dword [ebp - 0x6b4], 0
je 0x440372
mov eax, dword [ebp - 0xad0]
mov dword [ebp - 0x71c], eax
mov ecx, dword [ebp - 0x6b4]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x440364
push 0xf8
mov edx, dword [ebp - 0x6b4]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x6b4]
mov dword [ebp - 0x71c], eax
jmp 0x44037c
mov dword [ebp - 0x71c], 0
lea ecx, [ebp - 0x2f8]
push ecx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2f8]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x388]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3e8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c14e
jmp 0x43fb71
xorps xmm0, xmm0
movlpd qword [ebp - 0xa0c], xmm0
mov dword [ebp - 0xad4], 0
push 0x456d9c
lea eax, [ebp - 0x340]
push eax
lea ecx, [ebp - 0x538]
push ecx
call fcn.00403b60
add esp, 0xc
mov dword [ebp - 0x87c], eax
mov edx, dword [ebp - 0x87c]
mov dword [ebp - 0x880], edx
mov byte [ebp - 4], 9
lea eax, [ebp - 0x388]
push eax
mov ecx, dword [ebp - 0x880]
push ecx
lea edx, [ebp - 0x550]
push edx
call fcn.00403b20
add esp, 0xc
mov dword [ebp - 0x884], eax
mov eax, dword [ebp - 0x884]
mov dword [ebp - 0x6c8], eax
mov ecx, dword [ebp - 0x6c8]
mov dword [ebp - 0x724], ecx
mov edx, dword [ebp - 0x6c8]
cmp dword [edx + 0x14], 0x10
jb 0x44047a
mov dword [ebp - 0x720], 1
jmp 0x440484
mov dword [ebp - 0x720], 0
mov al, byte [ebp - 0x720]
mov byte [ebp - 0x652], al
movzx ecx, byte [ebp - 0x652]
test ecx, ecx
je 0x4404b5
mov edx, dword [ebp - 0x6c8]
mov eax, dword [edx]
mov dword [ebp - 0x9f4], eax
mov ecx, dword [ebp - 0x9f4]
mov dword [ebp - 0x724], ecx
mov edx, dword [ebp - 0x724]
mov dword [ebp - 0x9f0], edx
mov eax, dword [ebp - 0x9f0]
mov dword [ebp - 0x9ec], eax
lea ecx, [ebp - 0x598]
push ecx
mov edx, dword [ebp - 0x9ec]
push edx
call dword [0x4566c8]
add esp, 8
mov dword [ebp - 0xad8], eax
lea ecx, [ebp - 0x550]
call fcn.00403100
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x538]
call fcn.00403100
lea eax, [ebp - 0x570]
push eax
call dword [0x456808]
add esp, 4
mov dword [ebp - 0x9e8], eax
mov ecx, dword [ebp - 0x9e8]
push ecx
push str._Y__m__d
push 0x20
lea edx, [ebp - 0x90]
push edx
call dword [0x456810]
add esp, 0x10
lea eax, [ebp - 0x2f8]
push eax
lea ecx, [ebp - 0xc0c]
call fcn.0044c15a
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0xc0c]
push ecx
push str.uninstallId
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc0c]
call fcn.0044c14e
lea edx, [ebp - 0x3e8]
push edx
lea ecx, [ebp - 0xc24]
call fcn.0044c15a
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0xc24]
push eax
push str.icon
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc24]
call fcn.0044c14e
mov ecx, dword [ebp - 0x640]
push ecx
lea ecx, [ebp - 0xce4]
call fcn.0044c15a
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0xce4]
push edx
push str.softName
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xce4]
call fcn.0044c14e
mov eax, dword [ebp - 0x640]
add eax, 0x60
push eax
lea ecx, [ebp - 0xd74]
call fcn.0044c15a
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xd74]
push ecx
push str.company
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd74]
call fcn.0044c14e
mov edx, dword [ebp - 0xa08]
push edx
mov eax, dword [ebp - 0xa0c]
push eax
lea ecx, [ebp - 0xbf4]
call fcn.0044c214
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xbf4]
push ecx
push str.fileSize
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xbf4]
call fcn.0044c14e
lea edx, [ebp - 0x90]
push edx
lea ecx, [ebp - 0xdbc]
call fcn.0044c154
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xdbc]
push eax
push str.update
lea ecx, [ebp - 0x7f4]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xdbc]
call fcn.0044c14e
lea ecx, [ebp - 0x7f4]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0044c1de
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2f8]
call fcn.00403100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x388]
call fcn.00403100
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3e8]
call fcn.00403100
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x340]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x7f4]
call fcn.0044c14e
jmp 0x4407ab
push 0x40b640
push str.Finish_enumerate_softwares
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x456260]
mov edx, dword [ebp - 0x638]
push edx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x4407ab
push 0x40b640
mov eax, dword [ebp - 0x634]
push eax
push str.Cannot_enumerate_software
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x43fb71
lea edx, [ebp - 0x638]
push edx
push 9
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [0x456008]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x44083a
push 0x40b640
mov eax, dword [ebp - 0x634]
push eax
push str.Cannot_open_the_key
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x9e4], ecx
mov edx, dword [ebp - 0x9e4]
mov dword [ebp - 0x9e0], edx
mov eax, dword [ebp - 0x9e0]
push eax
call fcn.0044c75a
add esp, 4
jmp 0x44303d
mov dword [ebp - 0x630], 0
jmp 0x440855
mov ecx, dword [ebp - 0x630]
add ecx, 1
mov dword [ebp - 0x630], ecx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x44146b
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 [0x456014]
mov dword [ebp - 0x634], eax
mov ecx, dword [ebp - 0x634]
mov dword [ebp - 0x728], ecx
cmp dword [ebp - 0x728], 0
je 0x4408bb
cmp dword [ebp - 0x728], 0x103
je 0x4413eb
jmp 0x441422
mov edx, dword [ebp - 0x638]
push edx
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x62c]
call fcn.0043d890
mov dword [ebp - 0x644], eax
push 0
lea ecx, [ebp - 0x80c]
call fcn.0044c148
mov byte [ebp - 4], 0x10
movzx ecx, byte [ebp - 0x6ba]
push ecx
lea ecx, [ebp - 0x328]
call fcn.00407e10
lea ecx, [ebp - 0x328]
call fcn.00410190
mov byte [ebp - 4], 0x11
movzx edx, byte [ebp - 0x6bb]
push edx
lea ecx, [ebp - 0x3d0]
call fcn.00407e10
lea ecx, [ebp - 0x3d0]
call fcn.00410190
mov byte [ebp - 4], 0x12
movzx eax, byte [ebp - 0x6bc]
push eax
lea ecx, [ebp - 0x3a0]
call fcn.00407e10
lea ecx, [ebp - 0x3a0]
call fcn.00410190
mov byte [ebp - 4], 0x13
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xadc], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00401b90
mov dword [ebp - 0xae0], eax
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x2e0]
push eax
call fcn.0040d570
mov byte [ebp - 4], 0x13
mov ecx, eax
call fcn.00411e70
mov dword [ebp - 0xae4], eax
mov byte [ebp - 4], 0x15
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xae8], esp
lea edx, [ebp - 0x2e0]
push edx
call fcn.00404a90
mov dword [ebp - 0xaec], eax
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x3a0]
push eax
lea ecx, [ebp - 0x3d0]
push ecx
lea edx, [ebp - 0x328]
push edx
mov eax, dword [ebp - 0x644]
add eax, 0x90
mov dword [ebp - 0x72c], eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xaf0], esp
mov dword [ebp - 0x730], ecx
mov edx, dword [ebp - 0x72c]
mov dword [ebp - 0x9dc], edx
mov eax, dword [ebp - 0x9dc]
mov dword [ebp - 0xaf4], eax
lea ecx, [ebp - 0x6bd]
push ecx
movzx edx, byte [ebp - 0x6be]
push edx
mov ecx, dword [ebp - 0x730]
call fcn.004221b0
mov byte [ebp - 4], 0x17
mov dword [ebp - 0xafc], 0x459bb6
mov eax, dword [ebp - 0x72c]
push eax
mov ecx, dword [ebp - 0x730]
call fcn.00405630
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x644]
push ecx
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x62c]
call fcn.0043c340
mov edx, dword [ebp - 0x644]
add edx, 0xd8
mov dword [ebp - 0x734], edx
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x9d8], eax
mov ecx, dword [ebp - 0x734]
cmp ecx, dword [ebp - 0x9d8]
je 0x440aa5
xor edx, edx
mov byte [ebp - 0x653], dl
movzx eax, byte [ebp - 0x653]
push eax
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x734]
call fcn.004057a0
push 0x456db8
mov ecx, dword [ebp - 0x644]
call fcn.00418ab0
movzx edx, al
test edx, edx
je 0x440b15
mov eax, dword [ebp - 0x644]
add eax, 0xd8
mov dword [ebp - 0x738], eax
mov ecx, dword [ebp - 0x644]
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0x9d4], edx
mov eax, dword [ebp - 0x73c]
cmp eax, dword [ebp - 0x9d4]
je 0x440b15
xor ecx, ecx
mov byte [ebp - 0x654], cl
movzx edx, byte [ebp - 0x654]
push edx
mov eax, dword [ebp - 0x738]
push eax
mov ecx, dword [ebp - 0x73c]
call fcn.004057a0
mov ecx, dword [ebp - 0x644]
add ecx, 0x78
mov dword [ebp - 0x740], ecx
lea edx, [ebp - 0x328]
mov dword [ebp - 0x9d0], edx
mov eax, dword [ebp - 0x740]
cmp eax, dword [ebp - 0x9d0]
je 0x440b60
xor ecx, ecx
mov byte [ebp - 0x655], cl
movzx edx, byte [ebp - 0x655]
push edx
lea eax, [ebp - 0x328]
push eax
mov ecx, dword [ebp - 0x740]
call fcn.004057a0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x9cc], ecx
mov edx, dword [ebp - 0x9cc]
mov dword [ebp - 0x744], edx
mov eax, dword [ebp - 0x744]
mov ecx, dword [eax]
mov dword [ebp - 0x9c8], ecx
mov edx, dword [ebp - 0x744]
push edx
mov eax, dword [ebp - 0x9c8]
push eax
lea ecx, [ebp - 0x9c4]
call fcn.00424620
lea ecx, [ebp - 0x9c4]
mov dword [ebp - 0x9b4], ecx
mov edx, dword [ebp - 0x62c]
add edx, 0x30
mov dword [ebp - 0x748], edx
mov eax, dword [ebp - 0x748]
mov dword [ebp - 0x9c0], eax
mov ecx, dword [ebp - 0x9c0]
mov dword [ebp - 0x9bc], ecx
lea edx, [ebp - 0x2e0]
push edx
mov ecx, dword [ebp - 0x748]
call fcn.00422ef0
mov dword [ebp - 0x9b8], eax
mov eax, dword [ebp - 0x9bc]
push eax
mov ecx, dword [ebp - 0x9b8]
push ecx
lea ecx, [ebp - 0x9b0]
call fcn.00424620
mov edx, dword [ebp - 0x9b4]
mov eax, dword [ebp - 0x9b0]
cmp eax, dword [edx]
jne 0x440c22
mov dword [ebp - 0x74c], 1
jmp 0x440c2c
mov dword [ebp - 0x74c], 0
mov cl, byte [ebp - 0x74c]
mov byte [ebp - 0x656], cl
movzx edx, byte [ebp - 0x656]
test edx, edx
jne 0x440c4f
mov dword [ebp - 0x750], 1
jmp 0x440c59
mov dword [ebp - 0x750], 0
mov al, byte [ebp - 0x750]
mov byte [ebp - 0x657], al
movzx ecx, byte [ebp - 0x657]
test ecx, ecx
je 0x440d26
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x674], edx
cmp dword [ebp - 0x674], 0
je 0x440ccc
mov eax, dword [ebp - 0xb00]
mov dword [ebp - 0x754], eax
mov ecx, dword [ebp - 0x674]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x440cbe
push 0xf8
mov edx, dword [ebp - 0x674]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x674]
mov dword [ebp - 0x754], eax
jmp 0x440cd6
mov dword [ebp - 0x754], 0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2e0]
call fcn.00403100
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3a0]
call fcn.00403100
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3d0]
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x328]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80c]
call fcn.0044c14e
jmp 0x440846
push str.FyStore
mov ecx, dword [ebp - 0x644]
add ecx, 0xd8
call fcn.00418ab0
movzx ecx, al
test ecx, ecx
je 0x440e03
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x678], edx
cmp dword [ebp - 0x678], 0
je 0x440d9f
mov eax, dword [ebp - 0xb08]
mov dword [ebp - 0x758], eax
mov ecx, dword [ebp - 0x678]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x440d91
push 0xf8
mov edx, dword [ebp - 0x678]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x678]
mov dword [ebp - 0x758], eax
jmp 0x440da9
mov dword [ebp - 0x758], 0
mov dword [ebp - 0x644], 0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2e0]
call fcn.00403100
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3a0]
call fcn.00403100
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3d0]
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x328]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80c]
call fcn.0044c14e
jmp 0x440846
lea ecx, [ebp - 0x2e0]
push ecx
lea edx, [ebp - 0xb3c]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [ebp - 0x644]
mov dword [eax + 0x28], ecx
mov edx, dword [ebp - 0x318]
mov dword [ebp - 0x9ac], edx
cmp dword [ebp - 0x9ac], 9
jbe 0x440fa5
lea eax, [ebp - 0x328]
mov dword [ebp - 0xb0c], eax
lea ecx, [ebp - 0x6bf]
mov dword [ebp - 0x9a8], ecx
mov edx, dword [ebp - 0x9a8]
push edx
push 9
push 1
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x460]
call fcn.00418140
mov ecx, dword [ebp - 0x66c]
or ecx, 8
mov dword [ebp - 0x66c], ecx
lea edx, [ebp - 0x460]
mov dword [ebp - 0x9a4], edx
push str.:windows
mov ecx, dword [ebp - 0x9a4]
call fcn.00418ab0
mov byte [ebp - 0x658], al
lea ecx, [ebp - 0x460]
call fcn.00403100
movzx eax, byte [ebp - 0x658]
test eax, eax
je 0x440fa5
lea ecx, [ebp - 0x2e0]
push ecx
lea edx, [ebp - 0xb44]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x67c], ecx
cmp dword [ebp - 0x67c], 0
je 0x440f36
mov edx, dword [ebp - 0xb10]
mov dword [ebp - 0x75c], edx
mov ecx, dword [ebp - 0x67c]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x440f28
push 0xf8
mov ecx, dword [ebp - 0x67c]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x67c]
mov dword [ebp - 0x75c], edx
jmp 0x440f40
mov dword [ebp - 0x75c], 0
lea eax, [ebp - 0x2e0]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2e0]
call fcn.00403100
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3a0]
call fcn.00403100
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3d0]
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x328]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80c]
call fcn.0044c14e
jmp 0x440846
push 0x456db8
lea ecx, [ebp - 0x3a0]
call fcn.00418ab0
movzx ecx, al
test ecx, ecx
je 0x4410a2
lea edx, [ebp - 0x2e0]
push edx
lea eax, [ebp - 0xb4c]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov ecx, dword [eax]
mov edx, dword [ecx + 0x28]
mov dword [ebp - 0x680], edx
cmp dword [ebp - 0x680], 0
je 0x441033
mov eax, dword [ebp - 0xb14]
mov dword [ebp - 0x760], eax
mov ecx, dword [ebp - 0x680]
call fcn.0043bfd0
mov ecx, 1
and ecx, 1
je 0x441025
push 0xf8
mov edx, dword [ebp - 0x680]
push edx
call fcn.0044cc4c
add esp, 8
mov eax, dword [ebp - 0x680]
mov dword [ebp - 0x760], eax
jmp 0x44103d
mov dword [ebp - 0x760], 0
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2e0]
call fcn.00403100
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3a0]
call fcn.00403100
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3d0]
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x328]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80c]
call fcn.0044c14e
jmp 0x440846
xorps xmm0, xmm0
movlpd qword [ebp - 0xa14], xmm0
mov dword [ebp - 0xb18], 0
push 0x456d9c
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x508]
push ecx
call fcn.00403b60
add esp, 0xc
mov dword [ebp - 0x9a0], eax
mov edx, dword [ebp - 0x9a0]
mov dword [ebp - 0x99c], edx
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x3a0]
push eax
mov ecx, dword [ebp - 0x99c]
push ecx
lea edx, [ebp - 0x520]
push edx
call fcn.00403b20
add esp, 0xc
mov dword [ebp - 0x998], eax
mov eax, dword [ebp - 0x998]
mov dword [ebp - 0x6cc], eax
mov ecx, dword [ebp - 0x6cc]
mov dword [ebp - 0x768], ecx
mov edx, dword [ebp - 0x6cc]
cmp dword [edx + 0x14], 0x10
jb 0x44113b
mov dword [ebp - 0x764], 1
jmp 0x441145
mov dword [ebp - 0x764], 0
mov al, byte [ebp - 0x764]
mov byte [ebp - 0x659], al
movzx ecx, byte [ebp - 0x659]
test ecx, ecx
je 0x441176
mov edx, dword [ebp - 0x6cc]
mov eax, dword [edx]
mov dword [ebp - 0x990], eax
mov ecx, dword [ebp - 0x990]
mov dword [ebp - 0x768], ecx
mov edx, dword [ebp - 0x768]
mov dword [ebp - 0x98c], edx
mov eax, dword [ebp - 0x98c]
mov dword [ebp - 0x988], eax
lea ecx, [ebp - 0x628]
push ecx
mov edx, dword [ebp - 0x988]
push edx
call dword [0x4566c8]
add esp, 8
mov dword [ebp - 0xb1c], eax
lea ecx, [ebp - 0x520]
call fcn.00403100
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x508]
call fcn.00403100
lea eax, [ebp - 0x600]
push eax
call dword [0x456808]
add esp, 4
mov dword [ebp - 0x984], eax
mov ecx, dword [ebp - 0x984]
push ecx
push str._Y__m__d
push 0x20
lea edx, [ebp - 0x30]
push edx
call dword [0x456810]
add esp, 0x10
lea eax, [ebp - 0x2e0]
push eax
lea ecx, [ebp - 0xc3c]
call fcn.0044c15a
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0xc3c]
push ecx
push str.uninstallId
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xc3c]
call fcn.0044c14e
lea edx, [ebp - 0x3d0]
push edx
lea ecx, [ebp - 0xc54]
call fcn.0044c15a
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0xc54]
push eax
push str.icon
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xc54]
call fcn.0044c14e
mov ecx, dword [ebp - 0x644]
push ecx
lea ecx, [ebp - 0xc6c]
call fcn.0044c15a
mov byte [ebp - 4], 0x1b
lea edx, [ebp - 0xc6c]
push edx
push str.softName
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xc6c]
call fcn.0044c14e
mov eax, dword [ebp - 0x644]
add eax, 0x60
push eax
lea ecx, [ebp - 0xc9c]
call fcn.0044c15a
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xc9c]
push ecx
push str.company
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xc9c]
call fcn.0044c14e
mov edx, dword [ebp - 0xa10]
push edx
mov eax, dword [ebp - 0xa14]
push eax
lea ecx, [ebp - 0xcb4]
call fcn.0044c214
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0xcb4]
push ecx
push str.fileSize
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xcb4]
call fcn.0044c14e
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0xccc]
call fcn.0044c154
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xccc]
push eax
push str.update
lea ecx, [ebp - 0x80c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0xccc]
call fcn.0044c14e
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0044c1de
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x2e0]
call fcn.00403100
mov byte [ebp - 4], 0x12
lea ecx, [ebp - 0x3a0]
call fcn.00403100
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3d0]
call fcn.00403100
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x328]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x80c]
call fcn.0044c14e
jmp 0x441466
push 0x40b640
push str.Finish_enumerate_softwares
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x456260]
mov edx, dword [ebp - 0x638]
push edx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x441466
push 0x40b640
mov eax, dword [ebp - 0x634]
push eax
push str.Cannot_enumerate_software
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x440846
lea edx, [ebp - 0x638]
push edx
push 0x109
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call dword [0x456008]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x4414f8
push 0x40b640
mov eax, dword [ebp - 0x634]
push eax
push str.Cannot_open_the_key
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x980], ecx
mov edx, dword [ebp - 0x980]
mov dword [ebp - 0x978], edx
mov eax, dword [ebp - 0x978]
push eax
call fcn.0044c75a
add esp, 4
jmp 0x44303d
mov dword [ebp - 0x630], 0
jmp 0x441513
mov ecx, dword [ebp - 0x630]
add ecx, 1
mov dword [ebp - 0x630], ecx
cmp dword [ebp - 0x630], 0xfffffffe
je 0x4420cc
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 [0x456014]
mov dword [ebp - 0x634], eax
mov ecx, dword [ebp - 0x634]
mov dword [ebp - 0x76c], ecx
cmp dword [ebp - 0x76c], 0
je 0x441579
cmp dword [ebp - 0x76c], 0x103
je 0x44204c
jmp 0x442083
mov edx, dword [ebp - 0x638]
push edx
lea eax, [ebp - 0x298]
push eax
mov ecx, dword [ebp - 0x62c]
call fcn.0043d890
mov dword [ebp - 0x648], eax
push 0
lea ecx, [ebp - 0x824]
call fcn.0044c148
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x968], ecx
mov ecx, dword [ebp - 0x968]
call fcn.0040b6e0
lea ecx, [ebp - 0x310]
call fcn.00410190
mov byte [ebp - 4], 0x20
lea edx, [ebp - 0x418]
mov dword [ebp - 0x964], edx
mov ecx, dword [ebp - 0x964]
call fcn.0040b6e0
lea ecx, [ebp - 0x418]
call fcn.00410190
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x3b8]
mov dword [ebp - 0x960], eax
mov ecx, dword [ebp - 0x960]
call fcn.0040b6e0
lea ecx, [ebp - 0x3b8]
call fcn.00410190
mov byte [ebp - 4], 0x22
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb04], esp
lea edx, [ebp - 0x298]
push edx
call fcn.00401b90
mov dword [ebp - 0xa74], eax
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x2c8]
push eax
call fcn.0040d570
mov byte [ebp - 4], 0x22
mov ecx, eax
call fcn.00411e70
mov dword [ebp - 0xa78], eax
mov byte [ebp - 4], 0x24
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa7c], esp
lea edx, [ebp - 0x2c8]
push edx
call fcn.00404a90
mov dword [ebp - 0xa80], eax
mov byte [ebp - 4], 0x25
lea eax, [ebp - 0x3b8]
push eax
lea ecx, [ebp - 0x418]
push ecx
lea edx, [ebp - 0x310]
push edx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa84], esp
mov eax, dword [ebp - 0x648]
add eax, 0x90
push eax
call fcn.00404a90
mov ecx, dword [ebp - 0x648]
push ecx
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x62c]
call fcn.0043c340
mov edx, dword [ebp - 0x648]
add edx, 0xd8
mov dword [ebp - 0x770], edx
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x95c], eax
mov ecx, dword [ebp - 0x770]
cmp ecx, dword [ebp - 0x95c]
je 0x441713
xor edx, edx
mov byte [ebp - 0x65a], dl
movzx eax, byte [ebp - 0x65a]
push eax
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, dword [ebp - 0x770]
call fcn.004057a0
push 0x456db8
mov ecx, dword [ebp - 0x648]
call fcn.00418ab0
movzx edx, al
test edx, edx
je 0x441783
mov eax, dword [ebp - 0x648]
add eax, 0xd8
mov dword [ebp - 0x774], eax
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x778], ecx
mov edx, dword [ebp - 0x774]
mov dword [ebp - 0x958], edx
mov eax, dword [ebp - 0x778]
cmp eax, dword [ebp - 0x958]
je 0x441783
xor ecx, ecx
mov byte [ebp - 0x65b], cl
movzx edx, byte [ebp - 0x65b]
push edx
mov eax, dword [ebp - 0x774]
push eax
mov ecx, dword [ebp - 0x778]
call fcn.004057a0
mov ecx, dword [ebp - 0x648]
add ecx, 0x78
mov dword [ebp - 0x77c], ecx
lea edx, [ebp - 0x310]
mov dword [ebp - 0x954], edx
mov eax, dword [ebp - 0x77c]
cmp eax, dword [ebp - 0x954]
je 0x4417ce
xor ecx, ecx
mov byte [ebp - 0x65c], cl
movzx edx, byte [ebp - 0x65c]
push edx
lea eax, [ebp - 0x310]
push eax
mov ecx, dword [ebp - 0x77c]
call fcn.004057a0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x950], ecx
mov edx, dword [ebp - 0x950]
mov dword [ebp - 0x94c], edx
mov eax, dword [ebp - 0x94c]
mov ecx, dword [eax]
mov dword [ebp - 0x994], ecx
mov edx, dword [ebp - 0x994]
mov dword [ebp - 0x888], edx
lea eax, [ebp - 0x888]
mov dword [ebp - 0x898], eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x780], ecx
mov edx, dword [ebp - 0x780]
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x88c]
mov dword [ebp - 0x890], eax
lea ecx, [ebp - 0x2c8]
push ecx
mov ecx, dword [ebp - 0x780]
call fcn.00422ef0
mov dword [ebp - 0x894], eax
mov edx, dword [ebp - 0x890]
push edx
mov eax, dword [ebp - 0x894]
push eax
lea ecx, [ebp - 0x89c]
call fcn.00424620
mov ecx, dword [ebp - 0x898]
mov edx, dword [ebp - 0x89c]
cmp edx, dword [ecx]
jne 0x441883
mov dword [ebp - 0x784], 1
jmp 0x44188d
mov dword [ebp - 0x784], 0
mov al, byte [ebp - 0x784]
mov byte [ebp - 0x65d], al
movzx ecx, byte [ebp - 0x65d]
test ecx, ecx
jne 0x4418b0
mov dword [ebp - 0x788], 1
jmp 0x4418ba
mov dword [ebp - 0x788], 0
mov dl, byte [ebp - 0x788]
mov byte [ebp - 0x65e], dl
movzx eax, byte [ebp - 0x65e]
test eax, eax
je 0x441987
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x684], ecx
cmp dword [ebp - 0x684], 0
je 0x44192d
mov edx, dword [ebp - 0xa88]
mov dword [ebp - 0x78c], edx
mov ecx, dword [ebp - 0x684]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x44191f
push 0xf8
mov ecx, dword [ebp - 0x684]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x684]
mov dword [ebp - 0x78c], edx
jmp 0x441937
mov dword [ebp - 0x78c], 0
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2c8]
call fcn.00403100
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x3b8]
call fcn.00403100
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x418]
call fcn.00403100
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.0044c14e
jmp 0x441504
push str.FyStore
mov ecx, dword [ebp - 0x648]
add ecx, 0xd8
call fcn.00418ab0
movzx eax, al
test eax, eax
je 0x441a64
mov ecx, dword [ebp - 0x648]
mov dword [ebp - 0x688], ecx
cmp dword [ebp - 0x688], 0
je 0x441a00
mov edx, dword [ebp - 0xa8c]
mov dword [ebp - 0x790], edx
mov ecx, dword [ebp - 0x688]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x4419f2
push 0xf8
mov ecx, dword [ebp - 0x688]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x688]
mov dword [ebp - 0x790], edx
jmp 0x441a0a
mov dword [ebp - 0x790], 0
mov dword [ebp - 0x648], 0
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2c8]
call fcn.00403100
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x3b8]
call fcn.00403100
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x418]
call fcn.00403100
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.0044c14e
jmp 0x441504
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0xb54]
push ecx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov edx, dword [eax]
mov eax, dword [ebp - 0x648]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x8a0], ecx
cmp dword [ebp - 0x8a0], 9
jbe 0x441c06
lea edx, [ebp - 0x310]
mov dword [ebp - 0xa90], edx
lea eax, [ebp - 0x6c0]
mov dword [ebp - 0x8a4], eax
mov ecx, dword [ebp - 0x8a4]
push ecx
push 9
push 1
lea edx, [ebp - 0x310]
push edx
lea ecx, [ebp - 0x448]
call fcn.00418140
mov eax, dword [ebp - 0x66c]
or eax, 0x40
mov dword [ebp - 0x66c], eax
lea ecx, [ebp - 0x448]
mov dword [ebp - 0x8a8], ecx
push str.:windows
mov ecx, dword [ebp - 0x8a8]
call fcn.00418ab0
mov byte [ebp - 0x65f], al
lea ecx, [ebp - 0x448]
call fcn.00403100
movzx edx, byte [ebp - 0x65f]
test edx, edx
je 0x441c06
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0xb5c]
push ecx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov edx, dword [eax]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x68c], eax
cmp dword [ebp - 0x68c], 0
je 0x441b97
mov ecx, dword [ebp - 0xa94]
mov dword [ebp - 0x794], ecx
mov ecx, dword [ebp - 0x68c]
call fcn.0043bfd0
mov edx, 1
and edx, 1
je 0x441b89
push 0xf8
mov eax, dword [ebp - 0x68c]
push eax
call fcn.0044cc4c
add esp, 8
mov ecx, dword [ebp - 0x68c]
mov dword [ebp - 0x794], ecx
jmp 0x441ba1
mov dword [ebp - 0x794], 0
lea edx, [ebp - 0x2c8]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2c8]
call fcn.00403100
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x3b8]
call fcn.00403100
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x418]
call fcn.00403100
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.0044c14e
jmp 0x441504
push 0x456db8
lea ecx, [ebp - 0x3b8]
call fcn.00418ab0
movzx eax, al
test eax, eax
je 0x441d03
lea ecx, [ebp - 0x2c8]
push ecx
lea edx, [ebp - 0xb64]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x6a4], ecx
cmp dword [ebp - 0x6a4], 0
je 0x441c94
mov edx, dword [ebp - 0xa98]
mov dword [ebp - 0x798], edx
mov ecx, dword [ebp - 0x6a4]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x441c86
push 0xf8
mov ecx, dword [ebp - 0x6a4]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x6a4]
mov dword [ebp - 0x798], edx
jmp 0x441c9e
mov dword [ebp - 0x798], 0
lea eax, [ebp - 0x2c8]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2c8]
call fcn.00403100
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x3b8]
call fcn.00403100
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x418]
call fcn.00403100
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.0044c14e
jmp 0x441504
mov dword [ebp - 0xa9c], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0xa04], xmm0
push 0x456d9c
lea edx, [ebp - 0x310]
push edx
lea eax, [ebp - 0x568]
push eax
call fcn.00403b60
add esp, 0xc
mov dword [ebp - 0x8ac], eax
mov ecx, dword [ebp - 0x8ac]
mov dword [ebp - 0x8b0], ecx
mov byte [ebp - 4], 0x26
lea edx, [ebp - 0x3b8]
push edx
mov eax, dword [ebp - 0x8b0]
push eax
lea ecx, [ebp - 0x4f0]
push ecx
call fcn.00403b20
add esp, 0xc
mov dword [ebp - 0x8b4], eax
mov edx, dword [ebp - 0x8b4]
mov dword [ebp - 0x6d0], edx
mov eax, dword [ebp - 0x6d0]
mov dword [ebp - 0x7a0], eax
mov ecx, dword [ebp - 0x6d0]
cmp dword [ecx + 0x14], 0x10
jb 0x441d9c
mov dword [ebp - 0x79c], 1
jmp 0x441da6
mov dword [ebp - 0x79c], 0
mov dl, byte [ebp - 0x79c]
mov byte [ebp - 0x660], dl
movzx eax, byte [ebp - 0x660]
test eax, eax
je 0x441dd7
mov ecx, dword [ebp - 0x6d0]
mov edx, dword [ecx]
mov dword [ebp - 0x8b8], edx
mov eax, dword [ebp - 0x8b8]
mov dword [ebp - 0x7a0], eax
mov ecx, dword [ebp - 0x7a0]
mov dword [ebp - 0x8bc], ecx
mov edx, dword [ebp - 0x8bc]
mov dword [ebp - 0x8c0], edx
lea eax, [ebp - 0x5f8]
push eax
mov ecx, dword [ebp - 0x8c0]
push ecx
call dword [0x4566c8]
add esp, 8
mov dword [ebp - 0xaa0], eax
lea ecx, [ebp - 0x4f0]
call fcn.00403100
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x568]
call fcn.00403100
lea edx, [ebp - 0x5d0]
push edx
call dword [0x456808]
add esp, 4
mov dword [ebp - 0x8c4], eax
mov eax, dword [ebp - 0x8c4]
push eax
push str._Y__m__d
push 0x20
lea ecx, [ebp - 0x70]
push ecx
call dword [0x456810]
add esp, 0x10
lea edx, [ebp - 0x2c8]
push edx
lea ecx, [ebp - 0xcfc]
call fcn.0044c15a
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0xcfc]
push eax
push str.uninstallId
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xcfc]
call fcn.0044c14e
lea ecx, [ebp - 0x418]
push ecx
lea ecx, [ebp - 0xd14]
call fcn.0044c15a
mov byte [ebp - 4], 0x28
lea edx, [ebp - 0xd14]
push edx
push str.icon
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xd14]
call fcn.0044c14e
mov eax, dword [ebp - 0x648]
push eax
lea ecx, [ebp - 0xd2c]
call fcn.0044c15a
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0xd2c]
push ecx
push str.softName
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xd2c]
call fcn.0044c14e
mov edx, dword [ebp - 0x648]
add edx, 0x60
push edx
lea ecx, [ebp - 0xd44]
call fcn.0044c15a
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0xd44]
push eax
push str.company
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xd44]
call fcn.0044c14e
mov ecx, dword [ebp - 0xa00]
push ecx
mov edx, dword [ebp - 0xa04]
push edx
lea ecx, [ebp - 0xd5c]
call fcn.0044c214
mov byte [ebp - 4], 0x2b
lea eax, [ebp - 0xd5c]
push eax
push str.fileSize
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xd5c]
call fcn.0044c14e
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xc84]
call fcn.0044c154
mov byte [ebp - 4], 0x2c
lea edx, [ebp - 0xc84]
push edx
push str.update
lea ecx, [ebp - 0x824]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xc84]
call fcn.0044c14e
lea eax, [ebp - 0x824]
push eax
mov ecx, dword [ebp + 8]
call fcn.0044c1de
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x2c8]
call fcn.00403100
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x3b8]
call fcn.00403100
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x418]
call fcn.00403100
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x310]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x824]
call fcn.0044c14e
jmp 0x4420c7
push 0x40b640
push str.Finish_enumerate_softwares
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x456260]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x4420c7
push 0x40b640
mov edx, dword [ebp - 0x634]
push edx
push str.Cannot_enumerate_software
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov eax, dword [ebp - 0x638]
push eax
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x441504
lea ecx, [ebp - 0x638]
push ecx
push 9
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000001
call dword [0x456008]
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x442156
push 0x40b640
mov edx, dword [ebp - 0x634]
push edx
push str.Cannot_open_the_key
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x670]
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8c8]
mov dword [ebp - 0x8cc], ecx
mov edx, dword [ebp - 0x8cc]
push edx
call fcn.0044c75a
add esp, 4
jmp 0x44303d
mov dword [ebp - 0x630], 0
jmp 0x442171
mov eax, dword [ebp - 0x630]
add eax, 1
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0xfffffffe
je 0x442cf4
push 0x208
mov ecx, 2
imul edx, ecx, 0
lea eax, [ebp + edx - 0x298]
push eax
mov ecx, dword [ebp - 0x630]
push ecx
mov edx, dword [ebp - 0x638]
push edx
call dword [0x456014]
mov dword [ebp - 0x634], eax
mov eax, dword [ebp - 0x634]
mov dword [ebp - 0x7a4], eax
cmp dword [ebp - 0x7a4], 0
je 0x4421d7
cmp dword [ebp - 0x7a4], 0x103
je 0x442c74
jmp 0x442cab
mov ecx, dword [ebp - 0x638]
push ecx
lea edx, [ebp - 0x298]
push edx
mov ecx, dword [ebp - 0x62c]
call fcn.0043d890
mov dword [ebp - 0x63c], eax
push 0
lea ecx, [ebp - 0x83c]
call fcn.0044c148
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x358]
mov dword [ebp - 0x8d0], eax
mov ecx, dword [ebp - 0x8d0]
call fcn.0040b6e0
lea ecx, [ebp - 0x358]
call fcn.00410190
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
mov dword [ebp - 0x8d4], ecx
mov ecx, dword [ebp - 0x8d4]
call fcn.0040b6e0
lea ecx, [ebp - 0x400]
call fcn.00410190
mov byte [ebp - 4], 0x2f
lea edx, [ebp - 0x370]
mov dword [ebp - 0x8d8], edx
mov ecx, dword [ebp - 0x8d8]
call fcn.0040b6e0
lea ecx, [ebp - 0x370]
call fcn.00410190
mov byte [ebp - 4], 0x30
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa48], esp
lea eax, [ebp - 0x298]
push eax
call fcn.00401b90
mov dword [ebp - 0xa18], eax
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x2b0]
push ecx
call fcn.0040d570
mov byte [ebp - 4], 0x30
mov ecx, eax
call fcn.00411e70
mov dword [ebp - 0xa1c], eax
mov byte [ebp - 4], 0x32
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa20], esp
lea edx, [ebp - 0x2b0]
push edx
call fcn.00404a90
mov dword [ebp - 0xa24], eax
mov byte [ebp - 4], 0x33
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 - 0xa28], esp
mov eax, dword [ebp - 0x63c]
add eax, 0x90
push eax
call fcn.00404a90
mov ecx, dword [ebp - 0x63c]
push ecx
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x62c]
call fcn.0043c340
mov edx, dword [ebp - 0x63c]
add edx, 0xd8
mov dword [ebp - 0x7a8], edx
lea eax, [ebp - 0x2b0]
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x7a8]
cmp ecx, dword [ebp - 0x8dc]
je 0x442371
xor edx, edx
mov byte [ebp - 0x661], dl
movzx eax, byte [ebp - 0x661]
push eax
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, dword [ebp - 0x7a8]
call fcn.004057a0
push 0x456db8
mov ecx, dword [ebp - 0x63c]
call fcn.00418ab0
movzx edx, al
test edx, edx
je 0x4423e1
mov eax, dword [ebp - 0x63c]
add eax, 0xd8
mov dword [ebp - 0x7ac], eax
mov ecx, dword [ebp - 0x63c]
mov dword [ebp - 0x7b0], ecx
mov edx, dword [ebp - 0x7ac]
mov dword [ebp - 0x8e0], edx
mov eax, dword [ebp - 0x7b0]
cmp eax, dword [ebp - 0x8e0]
je 0x4423e1
xor ecx, ecx
mov byte [ebp - 0x662], cl
movzx edx, byte [ebp - 0x662]
push edx
mov eax, dword [ebp - 0x7ac]
push eax
mov ecx, dword [ebp - 0x7b0]
call fcn.004057a0
mov ecx, dword [ebp - 0x63c]
add ecx, 0x78
mov dword [ebp - 0x7b4], ecx
lea edx, [ebp - 0x358]
mov dword [ebp - 0x8e4], edx
mov eax, dword [ebp - 0x7b4]
cmp eax, dword [ebp - 0x8e4]
je 0x44242c
xor ecx, ecx
mov byte [ebp - 0x663], cl
movzx edx, byte [ebp - 0x663]
push edx
lea eax, [ebp - 0x358]
push eax
mov ecx, dword [ebp - 0x7b4]
call fcn.004057a0
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x8e8], ecx
mov edx, dword [ebp - 0x8e8]
mov dword [ebp - 0x8ec], edx
mov eax, dword [ebp - 0x8ec]
mov ecx, dword [eax]
mov dword [ebp - 0x8f0], ecx
mov edx, dword [ebp - 0x8f0]
mov dword [ebp - 0x8f4], edx
lea eax, [ebp - 0x8f4]
mov dword [ebp - 0x900], eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
mov dword [ebp - 0x7b8], ecx
mov edx, dword [ebp - 0x7b8]
mov dword [ebp - 0x8f8], edx
mov eax, dword [ebp - 0x8f8]
mov dword [ebp - 0xa2c], eax
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, dword [ebp - 0x7b8]
call fcn.00422ef0
mov dword [ebp - 0x8fc], eax
mov edx, dword [ebp - 0x8fc]
mov dword [ebp - 0x904], edx
mov eax, dword [ebp - 0x900]
mov ecx, dword [ebp - 0x904]
cmp ecx, dword [eax]
jne 0x4424d4
mov dword [ebp - 0x7bc], 1
jmp 0x4424de
mov dword [ebp - 0x7bc], 0
mov dl, byte [ebp - 0x7bc]
mov byte [ebp - 0x664], dl
movzx eax, byte [ebp - 0x664]
test eax, eax
jne 0x442501
mov dword [ebp - 0x7c0], 1
jmp 0x44250b
mov dword [ebp - 0x7c0], 0
mov cl, byte [ebp - 0x7c0]
mov byte [ebp - 0x665], cl
movzx edx, byte [ebp - 0x665]
test edx, edx
je 0x4425d8
mov eax, dword [ebp - 0x63c]
mov dword [ebp - 0x690], eax
cmp dword [ebp - 0x690], 0
je 0x44257e
mov ecx, dword [ebp - 0xaf8]
mov dword [ebp - 0x7c4], ecx
mov ecx, dword [ebp - 0x690]
call fcn.0043bfd0
mov edx, 1
and edx, 1
je 0x442570
push 0xf8
mov eax, dword [ebp - 0x690]
push eax
call fcn.0044cc4c
add esp, 8
mov ecx, dword [ebp - 0x690]
mov dword [ebp - 0x7c4], ecx
jmp 0x442588
mov dword [ebp - 0x7c4], 0
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x2b0]
call fcn.00403100
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x370]
call fcn.00403100
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
call fcn.00403100
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x358]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x83c]
call fcn.0044c14e
jmp 0x442162
push str.FyStore
mov ecx, dword [ebp - 0x63c]
add ecx, 0xd8
call fcn.00418ab0
movzx edx, al
test edx, edx
je 0x4426b5
mov eax, dword [ebp - 0x63c]
mov dword [ebp - 0x694], eax
cmp dword [ebp - 0x694], 0
je 0x442651
mov ecx, dword [ebp - 0xa34]
mov dword [ebp - 0x7c8], ecx
mov ecx, dword [ebp - 0x694]
call fcn.0043bfd0
mov edx, 1
and edx, 1
je 0x442643
push 0xf8
mov eax, dword [ebp - 0x694]
push eax
call fcn.0044cc4c
add esp, 8
mov ecx, dword [ebp - 0x694]
mov dword [ebp - 0x7c8], ecx
jmp 0x44265b
mov dword [ebp - 0x7c8], 0
mov dword [ebp - 0x63c], 0
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x2b0]
call fcn.00403100
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x370]
call fcn.00403100
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
call fcn.00403100
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x358]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x83c]
call fcn.0044c14e
jmp 0x442162
lea edx, [ebp - 0x2b0]
push edx
lea eax, [ebp - 0xb6c]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov ecx, dword [eax]
mov edx, dword [ebp - 0x63c]
mov dword [ecx + 0x28], edx
mov eax, dword [ebp - 0x348]
mov dword [ebp - 0x908], eax
cmp dword [ebp - 0x908], 9
jbe 0x442823
push 9
push 1
lea ecx, [ebp - 0x4d8]
push ecx
lea ecx, [ebp - 0x358]
call fcn.0043a390
mov dword [ebp - 0x90c], eax
push str.:windows
mov ecx, dword [ebp - 0x90c]
call fcn.00418ab0
mov byte [ebp - 0x666], al
lea ecx, [ebp - 0x4d8]
call fcn.00403100
movzx edx, byte [ebp - 0x666]
test edx, edx
je 0x442823
lea eax, [ebp - 0x2b0]
push eax
lea ecx, [ebp - 0xb74]
push ecx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov edx, dword [eax]
mov eax, dword [edx + 0x28]
mov dword [ebp - 0x698], eax
cmp dword [ebp - 0x698], 0
je 0x4427b4
mov ecx, dword [ebp - 0xa38]
mov dword [ebp - 0x7cc], ecx
mov ecx, dword [ebp - 0x698]
call fcn.0043bfd0
mov edx, 1
and edx, 1
je 0x4427a6
push 0xf8
mov eax, dword [ebp - 0x698]
push eax
call fcn.0044cc4c
add esp, 8
mov ecx, dword [ebp - 0x698]
mov dword [ebp - 0x7cc], ecx
jmp 0x4427be
mov dword [ebp - 0x7cc], 0
lea edx, [ebp - 0x2b0]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x2b0]
call fcn.00403100
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x370]
call fcn.00403100
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
call fcn.00403100
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x358]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x83c]
call fcn.0044c14e
jmp 0x442162
push 0x456db8
lea ecx, [ebp - 0x370]
call fcn.00418ab0
movzx eax, al
test eax, eax
je 0x442920
lea ecx, [ebp - 0x2b0]
push ecx
lea edx, [ebp - 0xb7c]
push edx
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043b460
mov eax, dword [eax]
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x69c], ecx
cmp dword [ebp - 0x69c], 0
je 0x4428b1
mov edx, dword [ebp - 0xa3c]
mov dword [ebp - 0x7d0], edx
mov ecx, dword [ebp - 0x69c]
call fcn.0043bfd0
mov eax, 1
and eax, 1
je 0x4428a3
push 0xf8
mov ecx, dword [ebp - 0x69c]
push ecx
call fcn.0044cc4c
add esp, 8
mov edx, dword [ebp - 0x69c]
mov dword [ebp - 0x7d0], edx
jmp 0x4428bb
mov dword [ebp - 0x7d0], 0
lea eax, [ebp - 0x2b0]
push eax
mov ecx, dword [ebp - 0x62c]
add ecx, 0x30
call fcn.0043f970
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x2b0]
call fcn.00403100
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x370]
call fcn.00403100
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
call fcn.00403100
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x358]
call fcn.00403100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x83c]
call fcn.0044c14e
jmp 0x442162
mov dword [ebp - 0xa40], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x9fc], xmm0
push 0x456d9c
lea edx, [ebp - 0x358]
push edx
lea eax, [ebp - 0x4a8]
push eax
call fcn.00403b60
add esp, 0xc
mov dword [ebp - 0x910], eax
mov ecx, dword [ebp - 0x910]
mov dword [ebp - 0x914], ecx
mov byte [ebp - 4], 0x34
lea edx, [ebp - 0x370]
push edx
mov eax, dword [ebp - 0x914]
push eax
lea ecx, [ebp - 0x4c0]
push ecx
call fcn.00403b20
add esp, 0xc
mov dword [ebp - 0x918], eax
mov edx, dword [ebp - 0x918]
mov dword [ebp - 0x6d4], edx
mov eax, dword [ebp - 0x6d4]
mov dword [ebp - 0x7d8], eax
mov ecx, dword [ebp - 0x6d4]
cmp dword [ecx + 0x14], 0x10
jb 0x4429b9
mov dword [ebp - 0x7d4], 1
jmp 0x4429c3
mov dword [ebp - 0x7d4], 0
mov dl, byte [ebp - 0x7d4]
mov byte [ebp - 0x667], dl
movzx eax, byte [ebp - 0x667]
test eax, eax
je 0x4429f4
mov ecx, dword [ebp - 0x6d4]
mov edx, dword [ecx]
mov dword [ebp - 0x91c], edx
mov eax, dword [ebp - 0x91c]
mov dword [ebp - 0x7d8], eax
mov ecx, dword [ebp - 0x7d8]
mov dword [ebp - 0x920], ecx
mov edx, dword [ebp - 0x920]
mov dword [ebp - 0x924], edx
lea eax, [ebp - 0x5c8]
push eax
mov ecx, dword [ebp - 0x924]
push ecx
call dword [0x4566c8]
add esp, 8
mov dword [ebp - 0xa44], eax
lea ecx, [ebp - 0x4c0]
call fcn.00403100
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x4a8]
call fcn.00403100
lea edx, [ebp - 0x5a0]
push edx
call dword [0x456808]
add esp, 4
mov dword [ebp - 0x928], eax
mov eax, dword [ebp - 0x928]
push eax
push str._Y__m__d
push 0x20
lea ecx, [ebp - 0x50]
push ecx
call dword [0x456810]
add esp, 0x10
lea edx, [ebp - 0x2b0]
push edx
lea ecx, [ebp - 0xd8c]
call fcn.0044c15a
mov byte [ebp - 4], 0x35
lea eax, [ebp - 0xd8c]
push eax
push str.uninstallId
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xd8c]
call fcn.0044c14e
lea ecx, [ebp - 0x400]
push ecx
lea ecx, [ebp - 0xda4]
call fcn.0044c15a
mov byte [ebp - 4], 0x36
lea edx, [ebp - 0xda4]
push edx
push str.icon
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xda4]
call fcn.0044c14e
mov eax, dword [ebp - 0x63c]
push eax
lea ecx, [ebp - 0xb94]
call fcn.0044c15a
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0xb94]
push ecx
push str.softName
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xb94]
call fcn.0044c14e
mov edx, dword [ebp - 0x63c]
add edx, 0x60
push edx
lea ecx, [ebp - 0xbac]
call fcn.0044c15a
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0xbac]
push eax
push str.company
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xbac]
call fcn.0044c14e
mov ecx, dword [ebp - 0x9f8]
push ecx
mov edx, dword [ebp - 0x9fc]
push edx
lea ecx, [ebp - 0xbc4]
call fcn.0044c214
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0xbc4]
push eax
push str.fileSize
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xbc4]
call fcn.0044c14e
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0xbdc]
call fcn.0044c154
mov byte [ebp - 4], 0x3a
lea edx, [ebp - 0xbdc]
push edx
push str.update
lea ecx, [ebp - 0x83c]
call fcn.0044c178
mov ecx, eax
call fcn.0044c160
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0xbdc]
call fcn.0044c14e
lea eax, [ebp - 0x83c]
push eax
mov ecx, dword [ebp + 8]
call fcn.0044c1de
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x2b0]
call fcn.00403100
mov byte [ebp - 4], 0x2f
lea ecx, [ebp - 0x370]
call fcn.00403100
lea ecx, [ebp - 0x370]
call fcn.00401d90
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x400]
call fcn.00401e10
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x358]
call fcn.00401e10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x83c]
call fcn.0044c14e
jmp 0x442cef
push 0x40b640
push str.Finish_enumerate_softwares
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x456260]
mov ecx, dword [ebp - 0x638]
push ecx
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x442cef
push 0x40b640
mov edx, dword [ebp - 0x634]
push edx
push str.Cannot_enumerate_software
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x4562d8]
mov ecx, eax
call dword [0x456260]
mov eax, dword [ebp - 0x638]
push eax
call dword [0x456028]
mov dword [ebp - 0x630], 0xfffffffd
jmp 0x442162
mov dword [ebp - 0x6a0], 0
lea ecx, [ebp - 0x6a0]
push ecx
push str.base.db
call dword [0x4569b4]
add esp, 8
mov dword [ebp - 0x92c], eax
cmp dword [ebp - 0x92c], 0
jne 0x442fe7
push 0x45982c
mov edx, dword [0x4562cc]
push edx
call fcn.004081d0
add esp, 8
mov dword [ebp - 0x930], str.SELECT__FROM_soft_info_
mov dword [ebp - 0x64c], 0
push 0
lea eax, [ebp - 0x64c]
push eax
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x930]
push ecx
mov edx, dword [ebp - 0x6a0]
push edx
call dword [0x4569b8]
add esp, 0x14
mov dword [ebp - 0x934], eax
cmp dword [ebp - 0x934], 0
jne 0x442fc1
push 0x45985c
mov eax, dword [0x4562cc]
push eax
call fcn.004081d0
add esp, 8
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x4569bc]
add esp, 4
cmp eax, 0x64
jne 0x442fbf
push 0
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x4569c4]
add esp, 8
mov dword [ebp - 0x944], eax
push 1
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x4569c4]
add esp, 8
mov dword [ebp - 0x948], eax
push 2
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0xa70], eax
push 3
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0xa4c], eax
push 4
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0xa50], eax
push 5
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0xa54], eax
push 6
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x4569c4]
add esp, 8
mov dword [ebp - 0xa58], eax
push 7
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x4569c4]
add esp, 8
mov dword [ebp - 0xa5c], eax
push 8
mov ecx, dword [ebp - 0x64c]
push ecx
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0x938], eax
push 9
mov edx, dword [ebp - 0x64c]
push edx
call dword [0x4569ac]
add esp, 8
mov dword [ebp - 0x7dc], eax
cmp dword [ebp - 0x7dc], 0
je 0x442fba
cmp dword [ebp - 0x938], 0
je 0x442fba
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xa60], esp
mov eax, dword [ebp - 0x7dc]
push eax
call fcn.00401a50
mov dword [ebp - 0xa64], eax
mov byte [ebp - 4], 0x3b
lea ecx, [ebp - 0x490]
push ecx
call fcn.0040d570
mov byte [ebp - 4], 0
mov ecx, eax
call fcn.00411c50
mov dword [ebp - 0x93c], eax
mov edx, dword [ebp - 0x93c]
mov dword [ebp - 0x940], edx
mov byte [ebp - 4], 0x3c
mov ecx, dword [ebp - 0x940]
call fcn.00419060
push eax
lea ecx, [ebp - 0x478]
call fcn.00401a50
mov byte [ebp - 4], 0x3d
lea eax, [ebp - 0x478]
push eax
lea ecx, [ebp - 0x6d8]
push ecx
call fcn.0043e390
add eax, 0x30
mov ecx, eax
call fcn.0043f9d0
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x478]
call fcn.00401e10
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x490]
call fcn.00401e10
lea edx, [ebp - 0xa68]
push edx
call fcn.0043e390
add eax, 0x30
mov ecx, eax
call fcn.0043f940
push eax
lea ecx, [ebp - 0x6d8]
call fcn.0043c100
movzx eax, al
test eax, eax
je 0x442fba
lea ecx, [ebp - 0x6d8]
call fcn.0043c150
mov ecx, dword [eax + 0x18]
mov edx, dword [ebp - 0x944]
mov dword [ecx + 0xf0], edx
lea ecx, [ebp - 0x6d8]
call fcn.0043c150
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x948]
mov dword [eax + 0xf4], ecx
jmp 0x442d96
jmp 0x442fd5
push 0x45988c
mov edx, dword [0x4562cc]
push edx
call fcn.004081d0
add esp, 8
mov eax, dword [ebp - 0x64c]
push eax
call dword [0x4569b0]
add esp, 4
jmp 0x442ffd
mov ecx, dword [ebp - 0x6a0]
push ecx
call dword [0x4569a8]
add esp, 4
mov dword [ebp - 0xa6c], eax
mov edx, dword [ebp - 0x6a0]
push edx
call dword [0x4569c0]
add esp, 4
push 0x40b640
push str.Finish_enumerate_softwares
mov ecx, dword [0x456274]
call dword [0x4562b4]
mov ecx, eax
call dword [0x456260]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x670]
call fcn.0043bf70
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044cc5a
mov esp, ebp
pop ebp
ret 8