Function at 0x40709c
Capabilities:
Create thread
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x465495
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x487590]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov ebp, ecx
mov dword [esp + 0x1c], ebp
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0xc
call edi
push eax
push 0xb
call edi
push ecx
mov ecx, esp
mov esi, 0x80
mov edx, eax
mov dword [ecx], esi
call fcn.00403a73
pop ecx
pop ecx
push eax
push 1
push esi
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
lea ebx, [ebp + 4]
push dword [ebx]
call esi
push 0x32
call edi
push eax
push 0x31
call edi
push ecx
mov ecx, esp
mov edi, 0x80
mov edx, eax
mov dword [ecx], edi
call fcn.00403a73
pop ecx
pop ecx
push eax
push 0
push edi
push dword [ebx]
call esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call fcn.004039fc
lea ecx, [ebp + 0x20]
push ecx
mov ecx, eax
call fcn.00403937
sub esp, 0xc
mov ecx, ebx
call fcn.00403908
mov ecx, dword [ebp + 0x24]
push 0x12c
push str.height
lea eax, [esp + 0x30]
push eax
call fcn.0041c623
mov ecx, eax
call fcn.0041c565
mov ecx, dword [ebp + 0x24]
push 0x190
mov esi, eax
push str.width
lea eax, [esp + 0x34]
push eax
call fcn.0041c623
mov ecx, eax
call fcn.0041c565
push 2
push esi
push eax
xor esi, esi
push esi
push esi
push esi
push dword [ebx]
call dword [sym.imp.USER32.dll_SetWindowPos]
call fcn.00402f0e
mov ecx, eax
call fcn.0040c2b8
mov edi, eax
mov edx, 0x47a784
mov ecx, edi
call fcn.0041d7ab
push esi
or edx, 0xffffffff
mov ecx, edi
call fcn.0041d44a
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0040384f
push 0xfffffffffffffffe
pop edx
mov ecx, edi
mov dword [esp + 0x58], esi
call fcn.0041d09c
push ecx
lea edx, [esp + 0x28]
lea ecx, [esp + 0x24]
call fcn.00402caa
pop ecx
mov byte [esp + 0x58], 1
push dword [esp + 0x20]
push dword [ebx]
call dword [sym.imp.USER32.dll_SetWindowTextW]
call fcn.00402ea8
mov ecx, dword [ebp + 0x24]
mov esi, eax
push str.Container
lea eax, [esp + 0x34]
push eax
call fcn.0041c5e5
push eax
push dword [ebx]
mov ecx, esi
call fcn.00412c83
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp + 0x2c], eax
test ecx, ecx
jne 0x40722a
push 0x80004005
call fcn.00401697
push ecx
mov ecx, ebx
call fcn.0040368a
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
push ecx
mov eax, esp
mov byte [esp + 0x5c], 2
push ecx
mov dword [eax], 0x47b2b0
mov eax, esp
lea ecx, [esp + 0x44]
mov dword [eax], 0x47b2c0
call fcn.00404d2f
mov esi, dword [esp + 0x3c]
push esi
call dword [sym.imp.KERNEL32.dll_LockResource]
push dword [esp + 0x40]
push dword [0x489e08]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [esp + 0x18], eax
test esi, esi
je 0x407298
push esi
call ebp
mov eax, dword [esp + 0x18]
xor esi, esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
jmp 0x40729a
xor esi, esi
mov dword [esp + 0x34], eax
mov eax, esi
mov ecx, esi
and eax, 0x7fffffff
mov dword [esp + 0x38], eax
fild qword [esp + 0x34]
and ecx, 0x80000000
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], esi
fild qword [esp + 0x34]
fchs
faddp st(1)
fstp qword [esp + 0x44]
fld qword [esp + 0x44]
fstp qword [esp + 0x44]
movsd xmm0, qword [esp + 0x44]
mulsd xmm0, qword [0x480920]
divsd xmm0, qword [0x480960]
movsd qword [esp + 0x44], xmm0
fld qword [esp + 0x44]
call fcn.00464e76
mov dword [esp + 0x28], eax
test edi, edi
je 0x407311
mov edx, eax
mov ecx, edi
call fcn.0041d5e6
mov edx, str.global_install_progress_elapse
call fcn.0041d996
push esi
push esi
push dword [ebx]
call fcn.00407499
push eax
push esi
push esi
call fcn.00438c21
mov esi, eax
add esp, 0x18
mov dword [esp + 0x34], esi
push 0
mov byte [esp + 0x5c], 3
push dword [esp + 0x2c]
push 0x2ef8
push dword [ebx]
call dword [sym.imp.USER32.dll_SetTimer]
push str.Body
lea ecx, [esp + 0x18]
call fcn.0040178b
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x14]
mov byte [esp + 0x58], 4
mov ecx, dword [ecx + 0x2c]
push eax
call fcn.00416ec2
mov byte [esp + 0x58], 3
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
mov edi, eax
call fcn.00401551
test edi, edi
je 0x4073d3
push str.InstallCarousel
lea ecx, [esp + 0x1c]
call fcn.0040178b
push 0
push 0x488d5c
push 0x4889f8
push 0
lea eax, [esp + 0x28]
push eax
mov ecx, edi
mov byte [esp + 0x6c], 5
call fcn.00416f28
push eax
call fcn.0043a37b
mov byte [esp + 0x6c], 3
mov ecx, dword [esp + 0x2c]
add esp, 0x14
add ecx, 0xfffffff0
mov edi, eax
call fcn.00401551
test edi, edi
je 0x4073d3
lea ecx, [edi + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x1c]
call fcn.0040749f
push 0
push 0x42
push 0x2b0f
push dword [ebx]
call dword [sym.imp.USER32.dll_SetTimer]
test esi, esi
je 0x4073f8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x3c], 0
je 0x407405
push dword [esp + 0x3c]
call ebp
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.00401551
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff0
call fcn.00401551
xor eax, eax
inc eax
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 0x10