Function at 0x457100
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b0199
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x4e006c]
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 0x457842
mov eax, dword fs:[0x2c]
mov edx, dword [eax]
mov eax, dword [0x4e5bd8]
cmp eax, dword [edx + 4]
jle 0x457193
push 0x4e5bd8
call fcn.0046a298
add esp, 4
cmp dword [0x4e5bd8], 0xffffffff
jne 0x457193
mov ecx, 0x4e5bdc
mov dword [0x4e5bdc], 0
call fcn.00403c50
push 0x4b35e0
call fcn.0046a5f4
add esp, 4
push 0x4e5bd8
call fcn.0046a24e
add esp, 4
mov dword [ebp - 0x68], 0
mov dword [ebp - 4], 0
call fcn.00403b50
mov ecx, eax
test ecx, ecx
je 0x457862
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 - 0x68]
call fcn.00444770
mov esi, dword [ebp - 0x68]
cmp dword [0x4e5b9c], esi
jge 0x4572e6
mov eax, 0x64
sub eax, esi
cmp dword [ebx + 0x4c], eax
je 0x457213
cmp eax, 0x64
ja 0x457213
mov dword [ebx + 0x4c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x4c]
push eax
push dword [ebx + 0x24]
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]
mov byte [ebp - 4], 2
call fcn.00403b50
mov ecx, eax
test ecx, ecx
je 0x45786c
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
push 0xdf
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 3
call fcn.00418130
mov byte [ebp - 4], 4
call fcn.00403b50
mov ecx, eax
test ecx, ecx
je 0x457876
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.00417100
add esp, 8
mov byte [ebp - 0x5d], 0
mov edi, esp
mov dword [ebp - 0x64], edi
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov ecx, eax
mov dword [ebp - 0x64], eax
call fcn.00403d80
mov dl, byte [ebp - 0x5d]
lea ecx, [ebx + 0x50]
add eax, 0x10
mov dword [edi], eax
call fcn.00444090
mov eax, dword [ebp - 0x68]
add esp, 4
mov dword [0x4e5b9c], eax
or edi, 0xffffffff
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x64]
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4572c7
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 0x4572e2
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, 0x4e5bdc
call fcn.00421f80
test al, al
je 0x457394
push ecx
mov edi, esp
mov byte [ebp - 0x5d], 0
mov dword [ebp - 0x64], edi
mov esi, dword [ebp - 0x14]
lea ecx, [esi - 0x10]
call fcn.00403d80
mov dl, byte [ebp - 0x5d]
lea ecx, [ebx + 0x54]
add eax, 0x10
mov dword [edi], eax
call fcn.00444090
mov ecx, dword [0x4e5bdc]
lea edx, [esi - 0x10]
add ecx, 0xfffffff0
add esp, 4
mov dword [ebp - 0x1c], ecx
cmp edx, ecx
je 0x457394
lea eax, [ecx + 0xc]
mov dword [ebp - 0x64], eax
mov eax, dword [eax]
shr eax, 0x1f
test al, al
jne 0x457386
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x457386
mov ecx, edx
call fcn.00403d80
mov dword [ebp - 0x18], eax
or edi, 0xffffffff
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x64]
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x457378
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 [0x4e5bdc], eax
jmp 0x457397
push dword [edx + 4]
mov ecx, 0x4e5bdc
push esi
call fcn.00415a50
or edi, 0xffffffff
mov al, byte [0x4e5a81]
test al, al
je 0x4573d6
inc dword [0x4e5b98]
cmp dword [ebx + 0x4c], 0
je 0x4573d6
lea eax, [ebp - 0x5c]
mov dword [ebx + 0x4c], 0
push eax
push dword [ebx + 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x5c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
push 1
lea eax, [ebp - 0x5c]
push eax
push dword [ebx + 0x24]
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [0x4e5b98], 2
jle 0x457823
push 1
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_KillTimer]
push 0
lea ecx, [ebx + 0x50]
mov edx, 0xe9
call fcn.00443e40
add esp, 4
push 0x4c3864
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 [0x4e5a90]
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 - 0x34], xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
call fcn.004220d0
mov dword [ebp - 0x34], 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.004220d0
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 0xa
call fcn.00448e10
mov esi, eax
test esi, esi
jne 0x457604
mov al, byte [0x4e5a82]
test al, al
mov dword [ebp - 0x88], 0
mov ecx, str.complete
mov dword [ebp - 0x84], 0xf
mov esi, str.rebootRequired
mov byte [ebp - 0x98], 0
push 6
cmove esi, ecx
lea ecx, [ebp - 0x98]
push str.status
call fcn.00404f80
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x34]
call fcn.00421ea0
mov edx, esi
lea ebx, [edx + 1]
nop dword [eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x457510
sub edx, ebx
mov ecx, eax
push edx
push esi
call fcn.00404f80
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x84]
cmp edx, 0x10
jb 0x457560
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x457556
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x457880
push edx
push ecx
call fcn.0046a609
add esp, 8
push 0xb
push str.uninstalled
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], 0
call fcn.00404f80
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x2c]
call fcn.00421ea0
push 4
push 0x4c3e0c
mov ecx, eax
call fcn.00404f80
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x9c]
cmp edx, 0x10
jb 0x4575ec
mov ecx, dword [ebp - 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4575e2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x457885
push edx
push ecx
call fcn.0046a609
add esp, 8
lea eax, [ebp - 0x2c]
mov ecx, str.Complete_Uninstaller
push 0
push eax
lea edx, [ebp - 0x34]
call fcn.00450f60
jmp 0x45774f
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.004220d0
mov dword [ebp - 0x24], eax
xorps xmm0, xmm0
mov byte [ebp - 4], 0xd
movlpd qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
call fcn.004220d0
mov dword [ebp - 0x3c], eax
mov edx, esi
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x64]
call fcn.00450b10
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x80]
mov esi, dword [eax]
push 5
push str.error
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
call fcn.00404f80
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x24]
call fcn.00421ea0
mov edx, esi
lea ebx, [edx + 1]
nop
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x457690
sub edx, ebx
mov ecx, eax
push edx
push esi
call fcn.00404f80
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x6c]
cmp edx, 0x10
jb 0x4576da
mov ecx, dword [ebp - 0x80]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4576d0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45788a
push edx
push ecx
call fcn.0046a609
add esp, 8
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x70], 0
add edx, 0xfffffff0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
mov byte [ebp - 4], 0x11
mov eax, edi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45770a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 0xe
push 0
push eax
lea edx, [ebp - 0x24]
mov ecx, str.Fail_Uninstaller
call fcn.00450f60
add esp, 8
lea ecx, [ebp - 0x3c]
call fcn.00422030
push 0x40
push dword [ebp - 0x3c]
call fcn.0046a609
add esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x24]
call fcn.00422030
push 0x40
push dword [ebp - 0x24]
call fcn.0046a609
add esp, 8
lea ecx, [ebp - 0xc8]
call fcn.0045b1b0
mov byte [ebp - 4], 0x12
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x45776c
mov eax, dword [eax]
push ecx
mov edx, eax
mov ecx, 0x4e45b8
call fcn.0040d910
add esp, 4
mov edx, 0x4cdcc0
mov ecx, eax
call fcn.0040be10
mov edx, str.:.
mov ecx, eax
call fcn.0040be10
push 0x113
mov ecx, eax
call fcn.00408660
mov edx, str.:_Installer_service_has_completed
mov ecx, eax
call fcn.0040be10
push eax
call fcn.0040c180
mov byte [ebp - 4], 0xa
add esp, 4
mov edx, dword [ebp - 0xb4]
cmp edx, 8
jb 0x4577f9
mov ecx, dword [ebp - 0xc8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4577ef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45788f
push edx
push ecx
call fcn.0046a609
add esp, 8
lea ecx, [ebp - 0x2c]
call fcn.00422030
push 0x40
push dword [ebp - 0x2c]
call fcn.0046a609
add esp, 8
lea ecx, [ebp - 0x34]
call fcn.00422030
push 0x40
push dword [ebp - 0x34]
call fcn.0046a609
add esp, 8
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
mov dword [ebp - 4], 0x13
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x457842
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.0046a0e8
mov esp, ebp
pop ebp
ret 0x10
push 0x80004005
call fcn.00403cc0
push 0x80004005
call fcn.00403cc0
push 0x80004005
call fcn.00403cc0
call fcn.0048552c
call fcn.0048552c
call fcn.0048552c
call fcn.0048552c
int3