Function at 0x46d7c9
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push 0x398
mov eax, 0x51ddbc
call fcn.004d8af2
mov dword [ebp - 0x140], edx
mov ebx, ecx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x19c], ebx
mov eax, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x35c], ebx
and dword [ebp - 0x134], 0
mov dword [ebp - 0x164], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x160], edi
mov dword [ebp - 0x154], eax
mov dword [ebp - 4], 3
mov eax, dword [0x57d3ec]
cmp byte [eax + 1], 0
je 0x46d872
push 0x1a68
push 0x80004004
push ecx
mov ecx, esp
push str.User_abort
call fcn.00406fea
mov ecx, ebx
call fcn.00406620
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.00407189
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffff0
call fcn.00407189
lea ecx, [ebp + 0x24]
call fcn.004aa3bc
mov eax, ebx
jmp 0x46fca3
lea eax, [ebp - 0x184]
xor ebx, ebx
push 0x1c
mov dword [ebp - 0x184], ebx
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
call fcn.004d8429
pop ecx
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x184], eax
lea eax, [edi + 0xb0]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x184]
call fcn.004b6f35
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x148], ebx
call fcn.004b77ff
mov byte [ebp - 4], 5
cmp dword [edi + 0xac], ebx
je 0x46d9c0
push 0x546a08
lea ecx, [ebp - 0x138]
call fcn.00409f12
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x358]
push eax
lea ecx, [ebp - 0x184]
call fcn.00409a0d
mov esi, dword [ebp - 0x350]
cmp byte [esi + 0xd], bl
jne 0x46d92f
lea edx, [esi + 0x10]
lea ecx, [ebp - 0x138]
call fcn.004090c0
test al, al
jns 0x46d997
cmp dword [ebp - 0x180], 0x9249249
je 0x46fca9
push ecx
lea eax, [ebp - 0x138]
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x15c]
push eax
push ecx
push dword [ebp - 0x184]
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x1c0]
call fcn.004bf742
lea ecx, [ebp - 0x1c0]
mov esi, dword [eax + 4]
mov dword [eax + 4], ebx
call fcn.004b7822
push esi
push dword [ebp - 0x354]
lea ecx, [ebp - 0x184]
push dword [ebp - 0x358]
call fcn.00409917
mov esi, eax
lea ecx, [esi + 0x14]
lea eax, [edi + 0xa8]
cmp ecx, eax
je 0x46d9ae
mov eax, dword [eax]
push eax
push dword [eax]
call fcn.004bf5e7
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x138]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x180], 0
jne 0x46d9f6
lea ecx, [ebp - 0x1f4]
mov dword [ebp - 0x1fc], ebx
mov dword [ebp - 0x1f8], ebx
call fcn.0040687a
mov esi, 0x20000
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
jmp 0x46dc8b
lea ecx, [ebp - 0x1e0]
call fcn.004a9508
lea edx, [ebp - 0x1e0]
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2a8]
call fcn.00444765
mov byte [ebp - 4], 8
cmp dword [ebp - 0x2a8], 0
jge 0x46daaa
cmp dword [ebp - 0x2a4], 0
mov eax, 0xf9c
mov edi, dword [ebp - 0x2a0]
cmovne eax, dword [ebp - 0x2a4]
push eax
push dword [ebp - 0x2a8]
push ecx
mov esi, esp
lea ecx, [edi - 0x10]
mov dword [ebp - 0x19c], esi
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x374]
mov dword [esi], eax
call fcn.00406620
lea eax, [ebp - 0x374]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x1fc]
call fcn.0040121b
mov ecx, dword [ebp - 0x36c]
mov esi, 0x20000
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
jmp 0x46dc80
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x2a0]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x184]
mov esi, dword [eax]
mov dword [ebp - 0x15c], esi
cmp esi, eax
je 0x46dc58
mov ecx, dword [esi + 0x10]
sub ecx, 0x10
call fcn.004070e7
mov ebx, eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x138], eax
push 0xa
pop eax
mov byte [ebp - 4], al
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
cmp edi, eax
je 0x46dbc8
mov ecx, dword [edi + 8]
sub ecx, 0x10
call fcn.004070e7
mov dword [ebp - 0x1bc], eax
add eax, 0x10
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x380]
push eax
lea ecx, [ebp - 0x1e0]
call fcn.00409a0d
mov eax, dword [ebp - 0x378]
mov dword [ebp - 0x130], eax
cmp byte [eax + 0xd], 0
jne 0x46db5e
lea edx, [eax + 0x10]
lea ecx, [ebp - 0x138]
call fcn.004090c0
test al, al
js 0x46db5e
mov ecx, dword [ebp - 0x130]
jmp 0x46db6a
mov ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x130], ecx
mov edx, dword [ebp - 0x1bc]
mov dword [ebp - 0x1bc], edx
cmp ecx, dword [ebp - 0x1e0]
je 0x46dcf0
push ecx
mov ecx, edx
mov dword [ebp - 0x19c], esp
call fcn.004070e7
mov ecx, dword [ebp - 0x130]
mov edx, esp
add eax, 0x10
lea ecx, [ecx + 0x14]
mov dword [edx], eax
call fcn.00432793
pop ecx
test al, al
jne 0x46dc23
push 0xa
pop eax
mov byte [ebp - 4], al
mov ecx, dword [ebp - 0x1bc]
call fcn.00407189
mov eax, dword [edi]
mov edi, eax
cmp eax, dword [esi + 0x14]
jne 0x46dafb
push 0xfbb
lea eax, [ebp - 0x138]
mov edx, 0x549020
push 1
push eax
lea ecx, [ebp - 0x1ac]
call fcn.004093b4
mov ecx, esp
mov byte [ebp - 4], 0xd
push str._version_required_
mov edx, eax
call fcn.00409442
pop ecx
lea ecx, [ebp - 0x1fc]
call fcn.00406620
mov ecx, dword [ebp - 0x1ac]
mov esi, 0x20000
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
lea ecx, [ecx - 0x10]
jmp 0x46dd51
mov ecx, dword [ebp - 0x1bc]
call fcn.00407189
mov ecx, ebx
mov byte [ebp - 4], 7
call fcn.00407189
lea ecx, [ebp - 0x15c]
call fcn.004094c2
mov esi, dword [ebp - 0x15c]
cmp esi, dword [ebp - 0x184]
jne 0x46dad2
xor ebx, ebx
lea ecx, [ebp - 0x1f4]
mov dword [ebp - 0x1fc], ebx
mov dword [ebp - 0x1f8], ebx
call fcn.0040687a
mov eax, 0x20000
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ebp - 0x1e0]
call fcn.004ad221
mov byte [ebp - 4], 0xe
cmp dword [ebp - 0x1fc], 0
je 0x46dd6f
mov ecx, dword [ebp - 0x158]
lea eax, [ebp - 0x1fc]
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x1f4]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x184]
call fcn.004adb22
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp + 0x24]
call fcn.004aa3bc
mov eax, dword [ebp - 0x158]
jmp 0x46fca3
push 0xfae
lea eax, [ebp - 0x138]
mov edx, 0x549020
push 1
push eax
lea ecx, [ebp - 0x1a0]
call fcn.004093b4
mov ecx, esp
mov byte [ebp - 4], 0xc
push 0x549008
mov edx, eax
call fcn.00409442
pop ecx
lea ecx, [ebp - 0x1fc]
call fcn.00406620
mov ecx, dword [ebp - 0x1a0]
mov esi, 0x20000
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1bc]
call fcn.00407189
mov ecx, ebx
call fcn.00407189
lea ecx, [ebp - 0x1e0]
call fcn.004ad221
xor ebx, ebx
jmp 0x46dc8b
mov ecx, dword [ebp - 0x1f4]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x184]
call fcn.004adb22
mov dword [ebp - 0x138], ebx
mov edi, dword [ebp - 0x174]
push ecx
mov byte [ebp - 4], 0xf
mov esi, esp
mov bl, byte [edi + 8]
mov dword [ebp - 0x148], esi
mov ecx, dword [edi + 0x44]
sub ecx, 0x10
call fcn.004070e7
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0x138]
push ebx
add eax, 0x10
push ecx
lea ecx, [ebp - 0x340]
mov dword [esi], eax
call fcn.0046acbc
add esp, 0xc
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x340], 0
je 0x46de01
mov esi, dword [ebp - 0x158]
lea eax, [ebp - 0x340]
push eax
mov ecx, esi
call fcn.0040121b
mov ecx, dword [ebp - 0x338]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x46fc6e
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x338]
lea ecx, [eax - 0x10]
call fcn.00407189
push str.pre_install
lea ecx, [ebp - 0x1c4]
call fcn.00406fea
mov byte [ebp - 4], 0x11
mov al, byte [edi + 8]
mov bl, byte [edi + 0x2a]
push ecx
mov dword [ebp - 0x1ac], eax
mov esi, esp
mov al, byte [edi + 0x29]
mov dword [ebp - 0x148], esi
mov ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x1a0], eax
lea ecx, [ecx - 0x10]
call fcn.004070e7
push dword [ebp - 0x1ac]
mov edi, dword [ebp - 0x140]
lea ecx, [ebp - 0x29c]
push dword [ebp - 0x1a0]
add eax, 0x10
xor dl, dl
push ebx
push dword [ebp + 0x10]
mov ebx, dword [ebp - 0x160]
push ebx
push edi
mov dword [esi], eax
call fcn.0046a80e
add esp, 0x1c
lea eax, [ebp - 0x29c]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x2b4]
call fcn.0040121b
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x2b4], 0
jge 0x46df35
cmp dword [ebp - 0x2b0], 0
mov eax, 0x1a8e
cmovne eax, dword [ebp - 0x2b0]
push eax
push dword [ebp - 0x2b4]
push ecx
mov esi, esp
mov dword [ebp - 0x148], esi
mov edi, dword [ebp - 0x2ac]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x248]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x248]
mov esi, dword [ebp - 0x158]
mov ecx, esi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x294]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c4]
jmp 0x46ddf4
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x2ac]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x29c], 0
je 0x46df66
mov esi, dword [ebp - 0x158]
lea eax, [ebp - 0x29c]
push eax
mov ecx, esi
call fcn.0040121b
jmp 0x46df1c
mov ecx, dword [ebp - 0x294]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x1c4]
add ecx, 0xfffffff0
call fcn.00407189
push ecx
mov ecx, esp
push 0x54478c
call fcn.00406fea
lea edx, [ebx + 0xd4]
lea ecx, [ebp - 0x190]
call fcn.004b3176
pop ecx
push 0
push ecx
mov byte [ebp - 4], 0x15
mov esi, esp
mov dword [ebp - 0x1ac], esi
mov ecx, dword [ebx + 0xf4]
sub ecx, 0x10
mov dword [ebp - 0x148], esp
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push dword [ebp - 0x174]
mov byte [ebp - 4], 0x16
push ecx
mov esi, esp
mov dword [ebp - 0x1ac], esp
mov dword [ebp - 0x1a0], esi
mov ecx, dword [ebp - 0x190]
add ecx, 0xfffffff0
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
push ebx
push ecx
mov byte [ebp - 4], 0x17
mov esi, esp
mov dword [ebp - 0x1a0], esi
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x248]
mov dword [esi], eax
mov edx, edi
mov byte [ebp - 4], 0x15
call fcn.0046a038
add esp, 0x18
mov byte [ebp - 4], 0x18
cmp dword [ebp - 0x248], 0
je 0x46e065
mov esi, dword [ebp - 0x158]
lea eax, [ebp - 0x248]
push eax
mov ecx, esi
call fcn.0040121b
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x190]
jmp 0x46ddf4
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x190]
lea ecx, [ecx - 0x10]
call fcn.00407189
push dword [ebp - 0x174]
mov edx, edi
lea ecx, [ebp - 0x290]
push ebx
call fcn.0046b173
pop ecx
pop ecx
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x2c0]
call fcn.0040121b
mov byte [ebp - 4], 0x1a
cmp dword [ebp - 0x2c0], 0
jge 0x46e138
cmp dword [ebp - 0x2bc], 0
mov eax, 0x1aa4
cmovne eax, dword [ebp - 0x2bc]
push eax
push dword [ebp - 0x2c0]
push ecx
mov esi, esp
mov dword [ebp - 0x148], esi
mov edi, dword [ebp - 0x2b8]
lea ecx, [edi - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x1b8]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0x1b8]
mov esi, dword [ebp - 0x158]
mov ecx, esi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x1b0]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x288]
jmp 0x46ddf4
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x2b8]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp dword [ebp - 0x290], 0
je 0x46e169
mov esi, dword [ebp - 0x158]
lea eax, [ebp - 0x290]
push eax
mov ecx, esi
call fcn.0040121b
jmp 0x46e12d
mov ecx, dword [ebp - 0x288]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x141], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov edx, 0x54a988
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x18c]
call fcn.004093b4
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x23c]
mov edx, eax
mov dword [esp], 0x552df4
call fcn.00409442
pop ecx
push eax
mov byte [ebp - 4], 0x1e
call fcn.0044f24f
lea ecx, [eax + 0x48]
call fcn.00405d6e
mov ecx, dword [ebp - 0x23c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x18c]
lea ecx, [ecx - 0x10]
call fcn.00407189
call fcn.0044f24f
mov ecx, dword [ebp + 0x10]
imul esi, ecx, 0xa8
push ecx
mov ecx, esp
push str.Installing
add esi, dword [eax + 0x1ac]
call fcn.00406fea
mov ecx, esi
call fcn.0044eeac
lea ecx, [ebp - 0x141]
mov byte [ebp - 4], 0xf
call fcn.0044f694
push ebx
lea ecx, [ebp - 0x26c]
call fcn.0045b3dd
pop ecx
mov byte [ebp - 4], 0x1f
cmp dword [ebp - 0x26c], 0
jge 0x46e2a3
cmp dword [ebp - 0x268], 0
mov eax, 0x1ab4
cmovne eax, dword [ebp - 0x268]
push eax
push dword [ebp - 0x26c]
lea eax, [ebp - 0x264]
push ecx
mov ecx, esp
push eax
call fcn.00407166
lea ecx, [ebp - 0x1b8]
call fcn.00406620
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x1b8]
mov esi, dword [ebp - 0x158]
mov ecx, esi
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x1b0]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x264]
jmp 0x46ddf4
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x264]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebx + 0x110]
mov ecx, ebx
mov eax, dword [eax + 0x48]
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x18c], eax
lea eax, [ebp - 0x1f0]
push eax
call fcn.00438809
push fcn.00434b34
push fcn.004acf13
push 2
push 8
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x21
push eax
call fcn.004d8656
lea edx, [ebp - 0x284]
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x328]
call fcn.004451d1
mov byte [ebp - 4], 0x23
cmp dword [ebp - 0x328], 0
mov esi, dword [ebp - 0x320]
jge 0x46e384
push 1
lea ecx, [ebp - 0x13a]
call fcn.0044f66e
mov byte [ebp - 4], 0x24
call fcn.0044f24f
mov edi, dword [edi]
mov ebx, eax
push ecx
mov ecx, esp
mov dword [ebp - 0x148], esp
push esi
push dword [ebp - 0x324]
push dword [ebp - 0x328]
push str.0x_08x___d___ws
push ecx
call fcn.004011e0
add esp, 0x10
mov byte [ebp - 4], 0x25
mov ecx, esp
push str.Delete_shortcuts__before_
call fcn.00406fea
push edi
mov ecx, ebx
mov byte [ebp - 4], 0x24
call fcn.0044ed57
lea ecx, [ebp - 0x13a]
mov byte [ebp - 4], 0x23
call fcn.0044f694
mov eax, dword [ebp - 0x174]
cmp byte [eax + 0x24], 0
jne 0x46e39a
cmp byte [eax + 0x25], 0
je 0x46e494
lea eax, [ebp - 0x328]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040121b
mov byte [ebp - 4], 0x26
cmp dword [ebp - 0x260], 0
jge 0x46e486
cmp dword [ebp - 0x25c], 0
mov eax, 0x1ad3
cmovne eax, dword [ebp - 0x25c]
push eax
push dword [ebp - 0x260]
lea eax, [ebp - 0x258]
push ecx
mov ecx, esp
push eax
call fcn.00407166
lea ecx, [ebp - 0x1b8]
call fcn.00406620
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0x1b8]
mov ebx, dword [ebp - 0x158]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0x134], 0x20001
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
push fcn.00434b34
push 2
push 8
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x21
push eax
call fcn.004d86ca
lea ecx, [ebp - 0x1f0]
call fcn.004ad684
cmp dword [ebp - 0x138], 0
je 0x46e470
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx - 0x10]
jmp 0x46d85e
mov ecx, dword [ebp - 0x258]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x22
call fcn.00407189
mov esi, dword [ebp - 0x174]
lea edi, [ebp - 0x284]
mov ebx, dword [ebp - 0x18c]
xor ecx, ecx
mov dword [ebp - 0x15c], ecx
mov al, byte [esi + 0x24]
mov byte [ebp + ecx - 0x16c], al
test ebx, ebx
je 0x46e4f4
cmp byte [esi + 0x25], 0
je 0x46e4f4
push ecx
push ecx
mov ecx, esp
push edi
call fcn.004adcee
lea ecx, [ebp - 0x1f0]
call fcn.0046a226
pop ecx
pop ecx
mov ecx, dword [ebp - 0x15c]
xor al, 1
mov byte [ebp + ecx - 0x16c], al
inc ecx
add edi, 8
mov dword [ebp - 0x15c], ecx
cmp ecx, 2
jl 0x46e4ba
lea ecx, [ebp - 0x214]
call fcn.004acf13
mov byte [ebp - 4], 0x28
xor ebx, ebx
push 0x20
mov dword [ebp - 0x1e8], ebx
mov dword [ebp - 0x1e4], ebx
call fcn.004d8429
pop ecx
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x1e8], eax
lea ecx, [ebp - 0x20c]
mov byte [ebp - 4], 0x29
call fcn.004a94bf
lea eax, [ebp - 0x214]
mov byte [ebp - 4], 0x2a
push eax
lea edx, [ebp - 0x1e8]
lea ecx, [ebp - 0x20c]
call fcn.00435f8c
pop ecx
lea ecx, [ebp - 0x1c8]
call fcn.0040687a
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 0x1d8], 0x80004005
mov dword [ebp - 0x1d4], ebx
call fcn.0040687a
mov ebx, dword [ebp - 0x160]
mov edi, dword [ebp - 0x140]
mov eax, dword [ebx + 0xc8]
cmp dword [ebx + 0xe0], 0
sete cl
cmp dword [eax - 0xc], 0
sete al
cmp al, cl
jne 0x46e648
push 0x1af0
push 0x80004005
push ecx
mov ecx, esp
call fcn.0040687a
lea ecx, [ebp - 0x1b8]
call fcn.00406620
mov byte [ebp - 4], 0x2d
lea eax, [ebp - 0x1b8]
mov ebx, dword [ebp - 0x158]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0x134], 0x20001
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1d0]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1c8]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x20c]
call fcn.004ad74c
lea ecx, [ebp - 0x1e8]
call fcn.004ad731
lea ecx, [ebp - 0x214]
call fcn.004add79
jmp 0x46e437
lea ecx, [ebp - 0x1a4]
call fcn.0040687a
lea ecx, [ebx + 0xc8]
mov byte [ebp - 4], 0x2e
mov eax, dword [ecx]
push ecx
cmp dword [eax - 0xc], 0
jne 0x46e69c
mov ecx, esp
push 0x54478c
call fcn.00406fea
lea edx, [ebx + 0xdc]
lea ecx, [ebp - 0x17c]
call fcn.004b3176
pop ecx
push eax
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x2f
call fcn.00405d6e
mov ecx, dword [ebp - 0x17c]
jmp 0x46e6e9
mov edx, str.run__
lea ecx, [ebp - 0x1a8]
call fcn.004093b4
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x17c]
mov edx, eax
mov dword [esp], 0x54aa0c
call fcn.00409442
pop ecx
push eax
lea ecx, [ebp - 0x1a4]
mov byte [ebp - 4], 0x31
call fcn.00405d6e
mov ecx, dword [ebp - 0x17c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1a8]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x200]
call fcn.0040687a
sub esp, 0x28
mov byte [ebp - 4], 0x32
lea eax, [ebp + 0x24]
mov dword [ebp - 0x148], esp
mov ecx, esp
push eax
call fcn.004aa387
push 1
push ecx
mov byte [ebp - 4], 0x33
lea eax, [ebx + 0xf4]
mov ecx, esp
mov dword [ebp - 0x1a8], esp
push eax
call fcn.00407166
lea eax, [ebp - 0x16c]
mov byte [ebp - 4], 0x34
push eax
push esi
lea eax, [ebp - 0x1c8]
push eax
push ecx
lea eax, [ebp - 0x1a4]
mov dword [ebp - 0x17c], esp
mov ecx, esp
push eax
call fcn.00407166
push ebx
push edi
push ecx
lea eax, [ebp + 8]
mov byte [ebp - 4], 0x35
mov ecx, esp
push eax
call fcn.00407166
lea edx, [ebp - 0x200]
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x234]
call fcn.00469ef9
add esp, 0x4c
mov ecx, dword [ebp - 0x164]
mov byte [ebp - 4], 0x36
mov eax, dword [ebx + 0x110]
add eax, 0x14
push eax
call fcn.00405d6e
push ebx
mov edx, edi
lea ecx, [ebp - 0x38c]
call fcn.0045b7f7
pop ecx
push eax
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 4], 0x37
call fcn.004032ed
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x384]
add ecx, 0xfffffff0
call fcn.00407189
cmp byte [esi + 0x10], 0
jne 0x46e858
cmp dword [ebp - 0x234], 0
jge 0x46e858
push 1
lea ecx, [ebp - 0x14d]
call fcn.0044f66e
mov byte [ebp - 4], 0x38
call fcn.0044f24f
mov ecx, dword [ebp - 0x140]
mov edi, eax
push ecx
mov dword [ebp - 0x148], esp
mov esi, dword [ecx]
mov ecx, esp
push dword [ebp - 0x22c]
push dword [ebp - 0x230]
push dword [ebp - 0x234]
push str.0x_08x___d___ws
push ecx
call fcn.004011e0
add esp, 0x10
mov byte [ebp - 4], 0x39
mov ecx, esp
push str.Install_error
call fcn.00406fea
push esi
mov ecx, edi
mov byte [ebp - 4], 0x38
call fcn.0044ed57
lea ecx, [ebp - 0x14d]
mov byte [ebp - 4], 0x36
call fcn.0044f694
mov edi, dword [ebp - 0x140]
cmp dword [ebp - 0x1d8], 0
lea eax, [ebp - 0x284]
mov dword [ebp - 0x190], eax
setge byte [ebp - 0x1bc]
xor ebx, ebx
mov dword [ebp - 0x15c], ebx
mov bl, byte [ebp + ebx - 0x16c]
push eax
lea eax, [ebp - 0x1f0]
push eax
push ecx
mov esi, esp
mov dword [ebp - 0x148], esi
mov ecx, dword [edi]
sub ecx, 0x10
call fcn.004070e7
push ebx
push dword [ebp - 0x1bc]
mov ebx, dword [ebp - 0x15c]
lea ecx, [ebp - 0x1b8]
add eax, 0x10
mov edx, ebx
mov dword [esi], eax
call fcn.0046a31c
add esp, 0x14
cmp dword [ebp - 0x1b8], 0
jge 0x46e946
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x14d], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x3b
call fcn.0044f24f
mov ecx, dword [ebp - 0x140]
mov edi, eax
push ecx
mov dword [ebp - 0x148], esp
mov esi, dword [ecx]
mov ecx, esp
push dword [ebp - 0x1b0]
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
push str.0x_08x___d___ws
push ecx
call fcn.004011e0
add esp, 0x10
mov byte [ebp - 4], 0x3c
mov ecx, esp
push str.Delete_shortcuts
call fcn.00406fea
push esi
mov ecx, edi
mov byte [ebp - 4], 0x3b
call fcn.0044ed57
lea ecx, [ebp - 0x14d]
call fcn.0044f694
mov edi, dword [ebp - 0x140]
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0x1b0]
add ecx, 0xfffffff0
call fcn.00407189
mov eax, dword [ebp - 0x190]
inc ebx
add eax, 8
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x190], eax
cmp ebx, 2
jl 0x46e87a
mov eax, dword [ebp - 0x174]
cmp byte [eax + 8], 0
je 0x46eafc
cmp byte [ebp - 0x1bc], 0
je 0x46e99d
cmp dword [ebp - 0x234], 0
jl 0x46e99d
mov bl, 1
jmp 0x46e99f
xor bl, bl
lea ecx, [ebp - 0x188]
call fcn.0040687a
lea edx, [ebp - 0x188]
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0x398]
call fcn.0046c865
mov ecx, dword [ebp - 0x390]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov esi, dword [ebp - 0x188]
push str.WinSta0
push esi
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46eaf0
mov edx, str.Service_
mov ecx, esi
call fcn.0042981b
test al, al
je 0x46ea1f
push str.Service_0x0_3e7_
push esi
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46ea1f
push str.Service_xyz
lea ecx, [ebp - 0x188]
call fcn.00406fbf
mov esi, dword [ebp - 0x188]
push 1
lea ecx, [ebp - 0x175]
call fcn.0044f66e
mov byte [ebp - 4], 0x3e
call fcn.0044f24f
mov edi, eax
mov ecx, str.failure
push ecx
test bl, bl
mov dword [ebp - 0x148], esp
mov eax, str.success
cmove eax, ecx
mov ecx, esp
push eax
mov dword [ebp - 0x164], eax
call fcn.00406fea
push ecx
lea eax, [ebp - 0x188]
mov byte [ebp - 4], 0x3f
mov ecx, esp
mov edx, str.Silent.WindowStation
push eax
call fcn.004093b4
pop ecx
push 0
mov ecx, edi
mov byte [ebp - 4], 0x3e
call fcn.0044ed57
lea ecx, [ebp - 0x175]
call fcn.0044f694
push 1
lea ecx, [ebp - 0x139]
call fcn.0044f66e
mov byte [ebp - 4], 0x40
call fcn.0044f24f
push ecx
mov ebx, eax
mov dword [ebp - 0x148], esp
mov eax, dword [ebp - 0x140]
mov ecx, esp
push dword [ebp - 0x164]
mov edi, dword [eax]
call fcn.00406fea
push ecx
lea eax, [ebp - 0x188]
mov byte [ebp - 4], 0x41
mov ecx, esp
mov edx, str.Silent.WindowStation_
push eax
call fcn.004093b4
pop ecx
push edi
mov ecx, ebx
mov byte [ebp - 4], 0x40
call fcn.0044ed57
lea ecx, [ebp - 0x139]
call fcn.0044f694
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x36
call fcn.00407189
lea ecx, [ebp - 0x2e8]
call fcn.004acf13
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x42
call fcn.004acf13
mov byte [ebp - 4], 0x43
and dword [ebp - 0x274], 0
and dword [ebp - 0x270], 0
push 0x20
call fcn.004d8429
pop ecx
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x274], eax
lea ecx, [ebp - 0x314]
mov byte [ebp - 4], 0x44
call fcn.004a94bf
lea eax, [ebp - 0x31c]
mov byte [ebp - 4], 0x45
push eax
lea edx, [ebp - 0x274]
lea ecx, [ebp - 0x314]
call fcn.00435f8c
lea eax, [ebp - 0x31c]
push eax
lea edx, [ebp - 0x214]
lea ecx, [ebp - 0x2e8]
call fcn.00435feb
mov ecx, dword [ebp - 0x154]
lea eax, [ebp - 0x314]
push eax
lea edx, [ebp - 0x20c]
call fcn.00436029
add esp, 0xc
lea ecx, [ebp - 0x314]
call fcn.004ad74c
lea ecx, [ebp - 0x274]
call fcn.004ad731
lea ecx, [ebp - 0x31c]
mov byte [ebp - 4], 0x42
call fcn.004add79
lea ecx, [ebp - 0x2e0]
call fcn.004acf13
mov ebx, dword [ebp - 0x160]
lea eax, [ebp - 0x2e0]
push eax
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0x46
lea edx, [ebx + 8]
call fcn.00436081
cmp dword [ebp - 0x2dc], 0
pop ecx
je 0x46ec05
mov eax, dword [ebx + 0x110]
mov byte [eax + 0x60], 1
cmp byte [ebx + 0x28], 0
je 0x46ec62
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x139], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x47
call fcn.0044f24f
mov ecx, dword [ebx + 0x110]
mov edi, eax
mov eax, dword [ebp - 0x140]
mov cl, byte [ecx + 0x60]
mov esi, dword [eax]
push ecx
push ecx
mov ecx, esp
push str.Uninstall_entry
call fcn.00406fea
push 0xa
pop eax
push eax
push esi
mov ecx, edi
call fcn.0044ebc5
lea ecx, [ebp - 0x139]
call fcn.0044f694
lea ecx, [ebp - 0x2e0]
call fcn.004add79
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0x36
call fcn.004add79
cmp dword [ebp - 0x234], 0
jge 0x46ecca
mov ebx, dword [ebp - 0x158]
lea eax, [ebp - 0x234]
push eax
mov ecx, ebx
call fcn.0040121b
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x134], 0x20001
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x200]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1a4]
jmp 0x46e5fe
mov ecx, dword [ebp - 0x22c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x200]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x1a4]
add ecx, 0xfffffff0
call fcn.00407189
cmp byte [ebp - 0x16c], 0
jne 0x46ee73
lea ecx, [ebp - 0x21c]
call fcn.004adabc
mov byte [ebp - 4], 0x48
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x18c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x46ee36
lea eax, [ebx + 0x80]
mov dword [ebp - 0x164], eax
mov ecx, dword [esi + 8]
sub ecx, 0x10
call fcn.004070e7
mov dword [ebp - 0x154], eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x1a8], ebx
lea ecx, [ebp - 0x204]
call fcn.0040687a
lea eax, [ebp - 0x204]
mov byte [ebp - 4], 0x4a
push eax
push ecx
mov edi, esp
mov dword [ebp - 0x148], esp
mov dword [ebp - 0x17c], edi
lea eax, [ebx - 0x10]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x17c], eax
call fcn.004070e7
add eax, 0x10
mov dword [edi], eax
mov ebx, dword [ebp - 0x160]
push dword [ebp - 0x164]
mov byte [ebp - 4], 0x4b
mov ecx, dword [ebx + 0x110]
add ecx, 4
push ecx
mov edi, esp
mov dword [ebp - 0x154], edi
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x368]
mov dword [edi], eax
mov edx, ebx
mov byte [ebp - 4], 0x4a
call fcn.0043eb58
add esp, 0x10
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x21c]
cmp dword [ebp - 0x368], 0
lea eax, [ebp - 0x204]
jge 0x46edef
lea eax, [ebp - 0x1a8]
push eax
push dword [ebp - 0x21c]
call fcn.004b65a3
mov ecx, dword [ebp - 0x360]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x204]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x48
mov ecx, dword [ebp - 0x17c]
call fcn.00407189
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ebp - 0x18c]
jne 0x46ed33
lea edx, [ebp - 0x21c]
lea ecx, [ebp - 0x3a4]
call fcn.004659f9
mov ecx, dword [ebp - 0x39c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x2c
mov edx, dword [ebp - 0x21c]
call fcn.004b6f07
push 0xc
push dword [ebp - 0x21c]
call fcn.004d840d
pop ecx
pop ecx
mov eax, dword [ebp - 0x174]
mov edi, dword [ebp - 0x1c8]
cmp byte [eax + 0x10], 0
je 0x46f015
push ecx
mov dword [ebp - 0x148], esp
lea eax, [edi - 0x10]
mov ebx, esp
push ecx
mov esi, esp
mov ecx, eax
mov dword [ebp - 0x154], esi
mov dword [ebp - 0x154], eax
call fcn.004070e7
add eax, 0x10
mov ecx, ebx
mov dword [esi], eax
call fcn.00429cff
mov byte [ebp - 4], 0x4d
mov eax, dword [ebp + 0x14]
add eax, 0xfffffff0
mov dword [ebp - 0x164], esi
mov ecx, eax
mov dword [ebp - 0x164], eax
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x254]
mov dword [esi], eax
mov byte [ebp - 4], 0x2c
call fcn.0042a53e
pop ecx
pop ecx
mov byte [ebp - 4], 0x4e
cmp dword [ebp - 0x254], 0
jge 0x46f003
cmp dword [ebp - 0x250], 0
mov eax, 0x1b75
cmovne eax, dword [ebp - 0x250]
push eax
push dword [ebp - 0x254]
push ecx
mov esi, esp
mov dword [ebp - 0x148], esi
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.004070e7
add eax, 0x10
lea ecx, [ebp - 0x34c]
mov dword [esi], eax
call fcn.00406620
mov byte [ebp - 4], 0x4f
lea eax, [ebp - 0x34c]
mov ebx, dword [ebp - 0x158]
mov ecx, ebx
push eax
call fcn.0040121b
mov ecx, dword [ebp - 0x344]
mov dword [ebp - 0x134], 0x20001
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x1d0]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x154]
call fcn.00407189
lea ecx, [ebp - 0x20c]
call fcn.004ad74c
lea ecx, [ebp - 0x1e8]
call fcn.004ad731
lea ecx, [ebp - 0x214]
call fcn.004add79
push fcn.00434b34
push 2
push 8
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x21
push eax
call fcn.004d86ca
lea ecx, [ebp - 0x1f0]
call fcn.004ad684
cmp dword [ebp - 0x138], 0
je 0x46efed
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x164]
jmp 0x46d85e
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x24c]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov esi, dword [ebp - 0x160]
mov edx, dword [esi + 0x110]
lea ecx, [edx + 0x50]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
je 0x46f03c
add edx, 0x48
call fcn.00405d14
test al, al
jne 0x46f03c
inc al
jmp 0x46f03e
xor al, al
cmp dword [ebp - 0x1d8], 0
jge 0x46f0ed
test al, al
jne 0x46f0ed
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x139], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x87
call fcn.0044f24f
mov ecx, dword [esi + 0x110]
add ecx, 0x50
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x140]
push ecx
mov esi, esp
mov dword [ebp - 0x148], esp
mov ebx, dword [eax]
mov dword [ebp - 0x194], esi
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x160]
mov edx, str.Version_check_post_failure
mov byte [ebp - 4], 0x88
push ecx
mov ecx, esp
mov eax, dword [eax + 0x110]
add eax, 0x58
push eax
call fcn.004093b4
pop ecx
mov ecx, dword [ebp - 0x154]
push ebx
mov byte [ebp - 4], 0x87
call fcn.0044ed57
lea ecx, [ebp - 0x139]
mov byte [ebp - 4], 0x2c
call fcn.0044f694
jmp 0x46fbd6
mov eax, dword [esi + 0x110]
lea edx, [eax + 0x50]
lea ecx, [eax + 0x58]
call fcn.00405d14
mov ecx, dword [esi + 0x110]
mov byte [ebp - 0x141], al
mov dl, byte [ecx + 0x61]
mov byte [ebp - 0x13a], dl
test al, al
je 0x46f169
push str.Version_check_match
lea ecx, [ebp - 0x330]
call fcn.00406fea
mov ecx, dword [ebp - 0x140]
mov edx, eax
push ecx
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x304]
mov dword [ebp - 0x134], 0x20002
call fcn.0040a037
pop ecx
mov ecx, eax
mov eax, 0x20006
mov dword [ebp - 4], 0x51
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
jmp 0x46f403
add ecx, 0x48
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jne 0x46f193
lea ecx, [ebp - 0x30c]
call fcn.0040687a
mov dword [ebp - 0x15c], eax
mov dword [ebp - 4], 0x52
mov esi, 0x20008
jmp 0x46f1b7
push ecx
mov edx, 0x54a8a0
lea ecx, [ebp - 0x300]
call fcn.004093b4
pop ecx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 4], 0x53
mov esi, 0x20010
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x134], esi
mov eax, dword [eax + 0x110]
push dword [eax + 0x18]
lea ecx, [eax + 0x5c]
lea eax, [ebp - 0x2f0]
mov dword [ebp - 0x154], ecx
push 0x544b30
push eax
call fcn.004011e0
add esp, 0xc
mov ebx, eax
mov eax, dword [ebp - 0x160]
lea ecx, [ebp - 0x308]
or esi, 0x20
mov dword [ebp - 4], 0x54
mov dword [ebp - 0x134], esi
mov dword [ebp - 0x130], esi
mov esi, dword [eax + 0x110]
push str.Version_check_error_mismatch
add esi, 0x58
call fcn.00406fea
mov dword [ebp - 4], 0x55
mov edx, str.known
mov ecx, dword [ebp - 0x130]
or ecx, 0x40
cmp byte [ebp - 0x13a], 0
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], ecx
mov ecx, str.unknown
cmove ecx, edx
mov edx, eax
push ecx
lea ecx, [ebp - 0x2ec]
call fcn.00409442
mov dword [ebp - 4], 0x56
mov edx, eax
mov ecx, dword [ebp - 0x130]
or ecx, 0x80
mov dword [esp], 0x5446d0
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], ecx
lea ecx, [ebp - 0x2f4]
call fcn.00409442
mov dword [ebp - 4], 0x57
mov edx, eax
mov ecx, dword [ebp - 0x130]
or ecx, 0x100
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], ecx
mov ecx, dword [ebp - 0x140]
push ecx
lea ecx, [ebp - 0x2d8]
call fcn.0040a037
mov dword [ebp - 4], 0x58
mov edx, eax
mov ecx, dword [ebp - 0x130]
or ecx, 0x200
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], ecx
lea ecx, [ebp - 0x2d4]
push 0x5446d0
call fcn.00409442
mov dword [ebp - 4], 0x59
mov edx, eax
mov ecx, dword [ebp - 0x130]
or ecx, 0x400
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x134], ecx
lea ecx, [ebp - 0x2d0]
push esi
call fcn.0040a037
mov dword [ebp - 4], 0x5a
mov esi, dword [ebp - 0x130]
or esi, 0x800
lea ecx, [ebp - 0x2cc]
push 0x54a8a0
mov edx, eax
mov dword [ebp - 0x134], esi
call fcn.00409442
mov dword [ebp - 4], 0x5b
lea ecx, [ebp - 0x2c8]
or esi, 0x1000
mov edx, eax
push ebx
mov dword [ebp - 0x134], esi
call fcn.0040a037
mov dword [ebp - 4], 0x5c
lea ecx, [ebp - 0x32c]
or esi, 0x2000
mov edx, eax
push 0x54a8a0
mov dword [ebp - 0x134], esi
call fcn.00409442
mov dword [ebp - 4], 0x5d
lea ecx, [ebp - 0x2c4]
push dword [ebp - 0x154]
or esi, 0x4000
mov edx, eax
mov dword [ebp - 0x134], esi
call fcn.0040a037
mov dword [ebp - 4], 0x5e
lea ecx, [ebp - 0x334]
push dword [ebp - 0x15c]
or esi, 0x8000
mov edx, eax
mov dword [ebp - 0x134], esi
call fcn.0040a037
add esp, 0x24
mov ecx, eax
or esi, 0x10000
mov dword [ebp - 4], 0x5f
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x134], esi
mov esi, dword [ebp - 0x160]
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
mov ebx, eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x154], eax
mov dword [ebp - 4], 0x60
mov eax, dword [ebp - 0x130]
test eax, 0x10000
je 0x46f451
mov ecx, dword [ebp - 0x334]
and eax, 0xfffeffff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x8000
je 0x46f47d
mov ecx, dword [ebp - 0x2c4]
and eax, 0xffff7fff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x4000
je 0x46f4a9
mov ecx, dword [ebp - 0x32c]
and eax, 0xffffbfff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x2000
je 0x46f4d5
mov ecx, dword [ebp - 0x2c8]
and eax, 0xffffdfff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x1000
je 0x46f501
mov ecx, dword [ebp - 0x2cc]
and eax, 0xffffefff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x800
je 0x46f52d
mov ecx, dword [ebp - 0x2d0]
and eax, 0xfffff7ff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x400
je 0x46f559
mov ecx, dword [ebp - 0x2d4]
and eax, 0xfffffbff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x200
je 0x46f585
mov ecx, dword [ebp - 0x2d8]
and eax, 0xfffffdff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test eax, 0x100
je 0x46f5b1
mov ecx, dword [ebp - 0x2f4]
and eax, 0xfffffeff
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, al
jns 0x46f5da
mov ecx, dword [ebp - 0x2ec]
and eax, 0xffffff7f
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 0x40
je 0x46f601
mov ecx, dword [ebp - 0x308]
and eax, 0xffffffbf
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 0x20
je 0x46f628
mov ecx, dword [ebp - 0x2f0]
and eax, 0xffffffdf
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 0x10
je 0x46f64f
mov ecx, dword [ebp - 0x300]
and eax, 0xffffffef
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 8
je 0x46f676
mov ecx, dword [ebp - 0x30c]
and eax, 0xfffffff7
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 4
je 0x46f69d
mov ecx, dword [ebp - 0x304]
and eax, 0xfffffffb
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [ebp - 0x130]
test al, 2
je 0x46f6be
mov ecx, dword [ebp - 0x330]
and eax, 0xfffffffd
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], eax
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x168]
call fcn.0040687a
mov byte [ebp - 4], 0x71
cmp byte [ebp - 0x141], 0
jne 0x46f92f
mov eax, dword [ebp - 0x140]
push str.OpenOffice
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46f91a
mov eax, dword [ebp - 0x140]
push str.WinRar
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46f91a
mov eax, dword [ebp - 0x140]
push str.Google_Talk
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46f91a
mov eax, dword [ebp - 0x140]
push str.Yahoo_
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46f91a
mov eax, dword [ebp - 0x140]
push str.Reader
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
je 0x46f91a
mov eax, dword [ebp - 0x140]
push str.Essentials
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
jne 0x46f7f8
mov esi, dword [esi + 0x110]
lea ecx, [ebp - 0x12c]
add esi, 4
call fcn.0042b0ee
lea ecx, [ebp - 0x170]
push ecx
mov ecx, eax
call fcn.0042adaa
push 0x54a8a0
mov edx, eax
mov byte [ebp - 4], 0x72
lea ecx, [ebp - 0x220]
call fcn.00409442
push esi
mov edx, eax
mov byte [ebp - 4], 0x73
lea ecx, [ebp - 0x1cc]
call fcn.0040a037
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x74
call fcn.00405d6e
mov ecx, dword [ebp - 0x1cc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x220]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x46f839
mov eax, dword [ebp - 0x140]
push str..NET
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
jne 0x46f850
lea ecx, [ebp - 0x12c]
call fcn.0042b0ee
lea ecx, [ebp - 0x170]
push ecx
mov ecx, eax
call fcn.0042adaa
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x75
call fcn.00405d6e
mov byte [ebp - 4], 0x71
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx - 0x10]
call fcn.00407189
jmp 0x46f92f
mov eax, dword [ebp - 0x140]
push str.Java
push dword [eax]
call fcn.004e3849
pop ecx
pop ecx
test eax, eax
jne 0x46f92f
lea ecx, [ebp - 0x12c]
call fcn.0042b0ee
lea ecx, [ebp - 0x170]
push ecx
mov ecx, eax
call fcn.0042adaa
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x76
call fcn.00405d6e
mov byte [ebp - 4], 0x71
mov ecx, dword [ebp - 0x170]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov eax, dword [esi + 0x110]
cmp dword [eax + 0x18], 0x643
jne 0x46f92f
push str._ProgramFiles_Javajre6
lea ecx, [ebp - 0x1cc]
call fcn.00406fea
push str.__locked:
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x77
call fcn.004af0b4
push ecx
lea eax, [ebp - 0x1cc]
mov ecx, esp
push eax
lea esi, [ebp - 0x168]
call fcn.00407166
mov edx, esi
lea ecx, [ebp - 0x34c]
call fcn.0046c635
pop ecx
mov ecx, dword [ebp - 0x344]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov byte [ebp - 4], 0x71
mov ecx, dword [ebp - 0x1cc]
jmp 0x46f843
mov eax, dword [esi + 0x110]
lea ecx, [ebp - 0x168]
add eax, 4
push eax
call fcn.00405d6e
mov esi, dword [ebp - 0x168]
cmp dword [esi - 0xc], 0
je 0x46f977
lea eax, [ebp - 0x168]
mov edx, 0x54a8a0
push eax
lea ecx, [ebp - 0x198]
call fcn.004093b4
pop ecx
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0x78
call fcn.00405d6e
mov ecx, dword [ebp - 0x198]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov esi, dword [ebp - 0x168]
mov eax, dword [0x57d3ec]
add eax, 0x54
mov byte [ebp - 0x139], 1
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 4], 0x79
call fcn.0044f24f
mov dword [ebp - 0x220], eax
mov eax, dword [ebp - 0x140]
mov eax, dword [eax]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax + 0x110]
add ecx, 0x50
push ecx
mov dword [ebp - 0x198], esp
mov dword [ebp - 0x148], esp
mov ecx, dword [ecx]
sub ecx, 0x10
call fcn.004070e7
mov ecx, esp
add eax, 0x10
mov dword [ecx], eax
push ecx
lea eax, [ebp - 0x168]
mov byte [ebp - 4], 0x7a
mov ecx, esp
lea edx, [ebp - 0x154]
push eax
call fcn.0040a037
pop ecx
push dword [ebp - 0x170]
mov ecx, dword [ebp - 0x220]
mov byte [ebp - 4], 0x79
call fcn.0044ed57
lea ecx, [ebp - 0x139]
mov byte [ebp - 4], 0x71
call fcn.0044f694
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax + 0x110]
mov dword [ebp - 0x170], ecx
lea eax, [ecx + 0x58]
mov dword [ebp - 0x198], eax
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
je 0x46fbc3
cmp dword [ebp - 0x1d8], 0
jl 0x46fbc3
mov eax, dword [ebp - 0x174]
cmp byte [eax + 0x2a], 0
jne 0x46fbc3
push str.Version_check_mismatch
lea ecx, [ebp - 0x194]
call fcn.00406fea
mov byte [ebp - 4], 0x7b
mov edx, str.known
cmp byte [ebp - 0x13a], 0
mov ecx, str.unknown
cmove ecx, edx
mov edx, eax
push ecx
lea ecx, [ebp - 0x228]
call fcn.00409442
mov byte [ebp - 4], 0x7c
lea ecx, [ebp - 0x224]
mov edx, eax
mov dword [esp], 0x5446d0
call fcn.00409442
mov byte [ebp - 4], 0x7d
lea ecx, [ebp - 0x2f8]
push dword [ebp - 0x198]
mov edx, eax
call fcn.0040a037
push 0x54ac98
mov edx, eax
mov byte [ebp - 4], 0x7e
lea ecx, [ebp - 0x2fc]
call fcn.00409442
mov byte [ebp - 4], 0x7f
mov edx, eax
mov ecx, dword [ebp - 0x170]
add ecx, 0x50
push ecx
lea ecx, [ebp - 0x238]
call fcn.0040a037
add esp, 0x10
mov ecx, dword [ebp - 0x2fc]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x2f8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x224]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x228]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp - 0x194]
lea ecx, [ecx - 0x10]
call fcn.00407189
cmp byte [ebp - 0x13a], 0
push 0x14
pop eax
push 0xa
pop ecx
cmovne eax, ecx
lea ecx, [ebp - 0x176]
push 1
mov dword [ebp - 0x194], eax
call fcn.0044f66e
mov byte [ebp - 4], 0x86
call fcn.0044f24f
mov dword [ebp - 0x224], eax
mov eax, dword [ebp - 0x140]
mov eax, dword [eax]
mov dword [ebp - 0x228], eax
mov al, byte [ebp - 0x141]
xor al, 1
movzx ecx, al
push ecx
push ecx
lea eax, [ebp - 0x238]
mov ecx, esp
push eax
call fcn.00407166
push dword [ebp - 0x194]
mov ecx, dword [ebp - 0x224]
push dword [ebp - 0x228]
call fcn.0044ebc5
lea ecx, [ebp - 0x176]
call fcn.0044f694
mov ecx, dword [ebp - 0x238]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [esi - 0x10]
call fcn.00407189
mov ecx, ebx
mov byte [ebp - 4], 0x2c
call fcn.00407189
mov ebx, dword [ebp - 0x130]
mov esi, dword [ebp - 0x158]
or ebx, 1
cmp dword [ebp - 0x1d8], 0
jge 0x46fbfe
lea eax, [ebp - 0x1d8]
mov ecx, esi
push eax
call fcn.0040121b
jmp 0x46fc0d
and dword [esi], 0
lea ecx, [esi + 8]
and dword [esi + 4], 0
call fcn.0040687a
mov ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x134], ebx
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [edi - 0x10]
call fcn.00407189
lea ecx, [ebp - 0x20c]
call fcn.004ad74c
lea ecx, [ebp - 0x1e8]
call fcn.004ad731
lea ecx, [ebp - 0x214]
call fcn.004add79
push fcn.00434b34
push 2
push 8
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x21
push eax
call fcn.004d86ca
lea ecx, [ebp - 0x1f0]
call fcn.004ad684
cmp dword [ebp - 0x138], 0
je 0x46fc83
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.00407189
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.00407189
lea ecx, [ebp + 0x24]
call fcn.004aa3bc
mov eax, esi
call fcn.004d8aa1
ret
call fcn.00409e63
int3