Function at 0x437660
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
cmp byte [0xefc714], 0
mov edx, 0xd2
push ebx
mov ebx, dword [0xefd4f4]
push esi
lea eax, [edx + 0x24]
mov dword [esp + 0xc], ebx
push edi
mov ecx, dword [ebx]
cmovne edx, eax
call fcn.005b9d43
and dword [esp + 0x18], 0
lea esi, [esp + 0x18]
and dword [esp + 0x1c], 0
lea ecx, [esp + 0x28]
mov edx, dword [ebx + 8]
sub esp, 0x10
mov dword [esp + 0x30], eax
mov edi, esp
mov eax, dword [0xefc0e4]
mov dword [esp + 0x34], eax
push dword [ebx]
mov edx, dword [edx + 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.005b6511
mov esi, eax
lea edi, [esp + 0x2c]
mov eax, dword [0xefd4f8]
add esp, 0x14
add eax, 3
mov dword [esp + 0x14], eax
movsd dword es:[edi], dword [esi]
push 0x50
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebx]
call fcn.006f40bd
pop ecx
mov edi, eax
mov ecx, edi
call fcn.0046ba5d
and dword [edi + 0x48], 0
lea ecx, [esp + 0x38]
and dword [edi + 0x4c], 0
mov dword [edi], 0xe82e04
mov dword [edi + 4], str.progress
mov dword [ebx + 0x2c], edi
call fcn.0046c7db
mov eax, ecx
mov dword [esp + 0x38], esi
push eax
mov ecx, edi
mov dword [esp + 0x44], 0x50000000
mov dword [esp + 0x40], 0xe83054
call fcn.0046c34c
mov ecx, edi
call fcn.0046c707
cmp dword [edi + 0x38], 0
je 0x437755
mov eax, dword [esp + 0x14]
test eax, eax
je 0x437755
push eax
push 0
push 0x406
push dword [edi + 0x38]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [esp + 0x10]
sub esp, 0x10
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
add esi, ebx
mov ecx, dword [ecx + 0x2c]
add edi, dword [esp + 0x28]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
sub edi, esi
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
mov eax, esp
mov dword [eax], esi
mov esi, dword [esp + 0x24]
sub esi, ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
call edx
call fcn.00436f9e
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4377ab
mov eax, dword [ecx]
push 1
call dword [eax]
xor edi, edi
mov dword [ebx + 0x10], edi
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x4377bd
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x14], edi
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x4377cd
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x18], edi
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je 0x4377dd
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x1c], edi
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4377ed
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x20], edi
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x4377fd
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 0x24], edi
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x43780d
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [ebx + 8], edi
mov ecx, dword [ebx + 0x34]
push edi
call fcn.0046c612
mov esi, dword [0xe733c4]
mov ecx, str.Installation_in_progress...
call fcn.00460e8f
push esi
mov ecx, eax
call fcn.00438fad
pop ecx
cmp dword [ebx], edi
je 0x437840
push edi
push edi
push dword [ebx]
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
push edi
push edi
push fcn.004373eb
push edi
push edi
mov byte [0xefd48f], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
mov dword [ebx + 0x3c], eax
pop ebx
mov esp, ebp
pop ebp
ret