Function at 0x459ff0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b3989
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x4e406c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp dword [ebp + 0xc], 1
jne 0x45a6a6
mov eax, dword fs:[0x2c]
mov edx, dword [eax]
mov eax, dword [0x4e9b08]
cmp eax, dword [edx + 4]
jle 0x45a083
push 0x4e9b08
call fcn.0046d4dd
add esp, 4
cmp dword [0x4e9b08], 0xffffffff
jne 0x45a083
mov ecx, 0x4e9b0c
mov dword [0x4e9b0c], 0
call fcn.00403d20
push 0x4b6e90
call fcn.0046d839
add esp, 4
push 0x4e9b08
call fcn.0046d493
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 4], 0
call fcn.00403c20
mov ecx, eax
test ecx, ecx
je 0x45a6c6
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x14]
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x58]
call fcn.00443720
mov esi, dword [ebp - 0x58]
cmp dword [0x4e9acc], esi
jge 0x45a1d6
mov eax, 0x64
sub eax, esi
cmp dword [ebx + 0x4c], eax
je 0x45a103
cmp eax, 0x64
jg 0x45a103
mov dword [ebx + 0x4c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x3c]
push eax
push dword [ebx + 0x24]
movups xmmword [ebp - 0x3c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push 1
lea eax, [ebp - 0x3c]
push eax
push dword [ebx + 0x24]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [ebp - 4], 2
call fcn.00403c20
mov ecx, eax
test ecx, ecx
je 0x45a6d0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0x5dc
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.00412fc0
mov byte [ebp - 4], 4
call fcn.00403c20
mov ecx, eax
test ecx, ecx
je 0x45a6da
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push esi
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
push esi
push eax
call fcn.0040f890
add esp, 8
mov byte [ebp - 0x4d], 0
mov edi, esp
mov dword [ebp - 0x54], edi
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x54], eax
call fcn.00403e50
mov dl, byte [ebp - 0x4d]
lea ecx, [ebx + 0x50]
add eax, 0x10
mov dword [edi], eax
call fcn.00443030
mov eax, dword [ebp - 0x58]
add esp, 4
mov dword [0x4e9acc], eax
or edi, 0xffffffff
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x54]
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a1b7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov byte [ebp - 4], 7
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x45a1d2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
lea edx, [ebp - 0x14]
mov ecx, 0x4e9b0c
call fcn.0041cc90
test al, al
je 0x45a284
push ecx
mov edi, esp
mov byte [ebp - 0x4d], 0
mov dword [ebp - 0x54], edi
mov esi, dword [ebp - 0x14]
lea ecx, [esi - 0x10]
call fcn.00403e50
mov dl, byte [ebp - 0x4d]
lea ecx, [ebx + 0x54]
add eax, 0x10
mov dword [edi], eax
call fcn.00443030
mov ecx, dword [0x4e9b0c]
lea edx, [esi - 0x10]
add ecx, 0xfffffff0
add esp, 4
mov dword [ebp - 0x1c], ecx
cmp edx, ecx
je 0x45a284
lea eax, [ecx + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [eax]
shr eax, 0x1f
test al, al
jne 0x45a276
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x45a276
mov ecx, edx
call fcn.00403e50
mov dword [ebp - 0x18], eax
or edi, 0xffffffff
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x54]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45a268
mov esi, dword [ebp - 0x1c]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
add eax, 0x10
mov byte [ebp - 4], 1
mov dword [0x4e9b0c], eax
jmp 0x45a287
push dword [edx + 4]
mov ecx, 0x4e9b0c
push esi
call fcn.0040c860
or edi, 0xffffffff
mov al, byte [0x4e99ad]
test al, al
je 0x45a2c6
inc dword [0x4e9ac8]
cmp dword [ebx + 0x4c], 0
je 0x45a2c6
lea eax, [ebp - 0x4c]
mov dword [ebx + 0x4c], 0
push eax
push dword [ebx + 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x4c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push 1
lea eax, [ebp - 0x4c]
push eax
push dword [ebx + 0x24]
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [0x4e9ac8], 2
jle 0x45a687
push 1
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
lea ecx, [ebx + 0x50]
mov edx, 0x5e4
call fcn.00442bf0
add esp, 4
push 0x4c685c
push dword [ebx + 0x54]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetParent]
push 0
push 0
push dword [0x4e99bc]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push dword [ebx + 0x24]
call esi
push 5
push dword [ebx + 0x5c]
call esi
push 1
push dword [ebx + 0x8c]
call dword [sym.imp.USER32.dll_EnableWindow]
push 5
push dword [ebx + 0x8c]
call esi
push dword [ebx + 0x8c]
call dword [sym.imp.USER32.dll_SetFocus]
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.0043bad0
mov dword [ebp - 0x24], eax
xorps xmm0, xmm0
mov byte [ebp - 4], 9
movlpd qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.0043bad0
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0xa
call fcn.004480f0
test eax, eax
jne 0x45a4d7
mov al, byte [0x4e99ae]
test al, al
mov dword [ebp - 0x78], 0
mov ecx, str.complete
mov dword [ebp - 0x74], 0xf
mov esi, str.rebootRequired
mov byte [ebp - 0x88], 0
push 6
cmove esi, ecx
lea ecx, [ebp - 0x88]
push str.status
call fcn.00404ec0
lea eax, [ebp - 0x88]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x24]
call fcn.00436b30
mov edx, esi
lea ebx, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x45a3f4
sub edx, ebx
mov ecx, eax
push edx
push esi
call fcn.00404ec0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x74]
cmp edx, 0x10
jb 0x45a441
mov ecx, dword [ebp - 0x88]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45a437
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a6e4
push edx
push ecx
call fcn.0046d84e
add esp, 8
push 0xb
push str.uninstalled
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
call fcn.00404ec0
lea eax, [ebp - 0xa0]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x2c]
call fcn.00436b30
push 4
push 0x4c72b4
mov ecx, eax
call fcn.00404ec0
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x8c]
cmp edx, 0x10
jb 0x45a4cd
mov ecx, dword [ebp - 0xa0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45a4c3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a6e9
push edx
push ecx
call fcn.0046d84e
add esp, 8
mov ecx, str.Complete_Uninstaller
jmp 0x45a5a3
mov edx, eax
lea ecx, [ebp - 0x54]
call fcn.0044f700
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x70]
mov esi, dword [eax]
push 5
push str.error
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
call fcn.00404ec0
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x24]
call fcn.00436b30
mov edx, esi
lea ebx, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x45a520
sub edx, ebx
mov ecx, eax
push edx
push esi
call fcn.00404ec0
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x45a56a
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45a560
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a6ee
push edx
push ecx
call fcn.0046d84e
add esp, 8
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x60], 0
add edx, 0xfffffff0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov byte [ebp - 4], 0xf
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a59a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0xa
mov ecx, str.Fail_Uninstaller
push 0
lea eax, [ebp - 0x2c]
push 0
push eax
lea edx, [ebp - 0x24]
call fcn.0044fc50
add esp, 0xc
lea ecx, [ebp - 0xb8]
call fcn.0045e3b0
mov byte [ebp - 4], 0x10
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x45a5d0
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4e84e8
call fcn.00410760
add esp, 4
mov edx, 0x4d1208
mov ecx, eax
call fcn.0040f940
mov edx, 0x4c7114
mov ecx, eax
call fcn.0040f940
push 0x111
mov ecx, eax
call fcn.0040df40
mov edx, str.:_Installer_service_has_completed
mov ecx, eax
call fcn.0040f940
push eax
call fcn.0040fcb0
mov byte [ebp - 4], 0xa
add esp, 4
mov edx, dword [ebp - 0xa4]
cmp edx, 8
jb 0x45a65d
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x45a653
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45a6f3
push edx
push ecx
call fcn.0046d84e
add esp, 8
lea ecx, [ebp - 0x2c]
call fcn.00436970
push 0x40
push dword [ebp - 0x2c]
call fcn.0046d84e
add esp, 8
lea ecx, [ebp - 0x24]
call fcn.00436970
push 0x40
push dword [ebp - 0x24]
call fcn.0046d84e
add esp, 8
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x11
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x45a6a6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046d32d
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.00403d90
push 0x80004005
call fcn.00403d90
push 0x80004005
call fcn.00403d90
call fcn.0048879c
call fcn.0048879c
call fcn.0048879c
call fcn.0048879c
int3