Function at 0x4584f0
Capabilities:
Create thread
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5251fc
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x595cb8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x458532
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 0
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x458559
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x34], eax
lea ecx, [eax + 0x10]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 4], 1
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x458c1a
cmp dword [edi + 0x18], 0
je 0x458c1a
push 0xb
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
cmp dword [0x59c774], 3
jne 0x458694
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x28]
push str.bg_not_need_show
lea ecx, [ebp - 0x20]
call fcn.0041f870
push str.showInstaller
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.0041f910
mov byte [ebp - 4], 3
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x4585d5
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 4
push eax
lea edx, [ebp + 8]
lea ecx, [ebp - 0x30]
call fcn.00420f70
add esp, 4
mov byte [ebp - 4], 5
cmp dword [edi + 0xc], 0
je 0x458610
push 0
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [edi + 8]
push eax
call fcn.004210a0
mov byte [ebp - 4], 4
or ebx, 0xffffffff
mov edx, dword [ebp - 0x30]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x458631
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
mov eax, ebx
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45864f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 2
mov eax, ebx
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45866d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x458c1d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x458c1d
mov ebx, dword [ebp + 8]
mov ecx, ebx
push 0x571b9c
mov byte [ebp - 0xd], 1
call fcn.00438d70
cmp eax, 0x59c858
je 0x4586d6
push 0x571b9c
mov ecx, ebx
call fcn.00438d70
cmp byte [eax + 8], 5
jne 0x4586d6
push 0x571b9c
mov ecx, ebx
call fcn.00438d70
mov ecx, eax
call fcn.004388a0
mov byte [ebp - 0xd], al
push str.rgba
mov ecx, ebx
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x3c], 0
call fcn.00438d70
cmp eax, 0x59c858
je 0x4588ef
push str.rgba
mov ecx, ebx
call fcn.00438d70
mov al, byte [eax + 8]
test al, al
je 0x458713
cmp al, 7
jne 0x4588ef
mov al, byte [ebx + 8]
test al, al
je 0x458735
cmp al, 7
je 0x458735
push 0x42b
push 0x56ef58
push str.type___nullValue__type___objectValue
call fcn.00508598
add esp, 0xc
cmp byte [ebx + 8], 0
jne 0x458742
mov eax, 0x59c858
jmp 0x458778
mov edi, dword [ebx]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 0x24], str.rgba
push eax
mov ecx, edi
mov dword [ebp - 0x20], 0
call fcn.004390f0
mov eax, dword [eax]
cmp eax, dword [edi]
jne 0x45876e
mov eax, 0x59c858
jmp 0x458771
add eax, 0x18
mov byte [ebp - 4], 1
mov edi, dword [ebp - 0x18]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00438230
push 0x571bd8
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
call fcn.00438d70
cmp eax, 0x59c858
je 0x4588e3
push ecx
push 0x571bd8
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov al, byte [eax + 8]
cmp al, 1
je 0x4587c2
cmp al, 2
je 0x4587c2
cmp al, 5
je 0x4587c2
cmp al, 3
jne 0x4588e3
push ecx
push 0x571bd8
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov ecx, eax
call fcn.00438670
push 0x571c1c
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0xf], al
call fcn.00438d70
cmp eax, 0x59c858
je 0x4588e3
push ecx
push 0x571c1c
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov al, byte [eax + 8]
cmp al, 1
je 0x458817
cmp al, 2
je 0x458817
cmp al, 5
je 0x458817
cmp al, 3
jne 0x4588e3
push ecx
push 0x571c1c
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov ecx, eax
call fcn.00438670
push 0x571c20
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0xe], al
call fcn.00438d70
cmp eax, 0x59c858
je 0x4588e3
push ecx
push 0x571c20
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov al, byte [eax + 8]
cmp al, 1
je 0x458868
cmp al, 2
je 0x458868
cmp al, 5
je 0x458868
cmp al, 3
jne 0x4588e3
push ecx
push 0x571c20
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov ecx, eax
call fcn.00438670
push 0x571c0c
lea ecx, [ebp - 0x2c]
mov byte [ebp + 0xb], al
call fcn.00438d70
cmp eax, 0x59c858
je 0x4588e3
push ecx
push 0x571c0c
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov al, byte [eax + 8]
cmp al, 1
je 0x4588b5
cmp al, 2
je 0x4588b5
cmp al, 5
je 0x4588b5
cmp al, 3
jne 0x4588e3
push ecx
push 0x571c0c
lea ecx, [ebp - 0x2c]
call fcn.00438bb0
mov ecx, eax
call fcn.00438670
mov byte [ebp - 0x3d], al
mov al, byte [ebp + 0xb]
mov byte [ebp - 0x3e], al
mov al, byte [ebp - 0xe]
mov byte [ebp - 0x3f], al
mov al, byte [ebp - 0xf]
mov byte [ebp - 0x40], al
mov byte [ebp - 0x3c], 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.00438390
call fcn.0040f350
mov ecx, eax
test ecx, ecx
jne 0x458904
push 0x80004005
call fcn.0041f2a0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
push str.bgImagePath
mov ecx, ebx
mov byte [ebp - 4], 9
call fcn.00438d70
cmp eax, 0x59c858
je 0x458993
push str.bgImagePath
mov ecx, ebx
call fcn.00438d70
cmp byte [eax + 8], 4
jne 0x458993
push str.bgImagePath
mov ecx, ebx
call fcn.00438d70
mov esi, eax
cmp byte [esi + 8], 4
je 0x458963
push 0x2a9
push 0x56ef58
push str.type___stringValue
call fcn.00508598
add esp, 0xc
mov edx, dword [esi]
test edx, edx
jne 0x45896d
xor ecx, ecx
jmp 0x45897b
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x458972
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x1c]
call fcn.0042cb10
lea edx, [ebp - 0x14]
lea ecx, [ebp - 0x1c]
call fcn.0042c0f0
mov esi, dword [ebp - 0x1c]
cmp byte [ebp - 0x3c], 0
jne 0x458a55
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], 0
jne 0x458a55
push str.dragHeight
mov ecx, ebx
call fcn.00438d70
cmp eax, 0x59c858
je 0x458a55
push str.dragHeight
mov ecx, ebx
call fcn.00438d70
mov al, byte [eax + 8]
cmp al, 1
je 0x4589e0
cmp al, 2
je 0x4589e0
cmp al, 5
je 0x4589e0
cmp al, 3
jne 0x458a55
push str.dragWidth
mov ecx, ebx
call fcn.00438d70
cmp eax, 0x59c858
je 0x458a55
push str.dragWidth
mov ecx, ebx
call fcn.00438d70
mov al, byte [eax + 8]
cmp al, 1
je 0x458a12
cmp al, 2
je 0x458a12
cmp al, 5
je 0x458a12
cmp al, 3
jne 0x458a55
push str.dragHeight
mov ecx, ebx
call fcn.00438d70
mov ecx, eax
call fcn.00438670
push str.dragWidth
mov ecx, ebx
mov dword [ebp + 8], eax
call fcn.00438d70
mov ecx, eax
call fcn.00438670
mov dword [ebp - 0x30], eax
test eax, eax
jle 0x458a55
mov eax, dword [ebp + 8]
test eax, eax
jle 0x458a55
mov ecx, dword [edi + 0x10]
push eax
push dword [ebp - 0x30]
mov edx, dword [ecx]
call dword [edx + 0x14]
push 0x571c24
mov ecx, ebx
mov dword [ebp + 8], 0
call fcn.00438d70
cmp eax, 0x59c858
je 0x458aa4
push 0x571c24
mov ecx, ebx
call fcn.00438d70
mov al, byte [eax + 8]
cmp al, 1
je 0x458a8e
cmp al, 2
je 0x458a8e
cmp al, 5
je 0x458a8e
cmp al, 3
jne 0x458aa4
push 0x571c24
mov ecx, ebx
call fcn.00438d70
mov ecx, eax
call fcn.00438670
mov dword [ebp + 8], eax
push 0x571c2c
mov ecx, ebx
call fcn.00438d70
cmp eax, 0x59c858
je 0x458aed
push 0x571c2c
mov ecx, ebx
call fcn.00438d70
mov al, byte [eax + 8]
cmp al, 1
je 0x458ad6
cmp al, 2
je 0x458ad6
cmp al, 5
je 0x458ad6
cmp al, 3
jne 0x458aed
push 0x571c2c
mov ecx, ebx
call fcn.00438d70
mov ecx, eax
call fcn.00438670
mov ebx, eax
jmp 0x458aef
xor ebx, ebx
mov edx, dword [ebp + 8]
test edx, edx
jne 0x458b07
test ebx, ebx
jne 0x458b07
cmp byte [ebp - 0x3c], bl
jne 0x458b07
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], ebx
je 0x458b1c
mov ecx, dword [edi + 0x10]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 0x40]
push edx
mov eax, dword [ecx]
mov edx, dword [ebp + 8]
push ebx
push edx
call dword [eax + 0x20]
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov ebx, eax
test ebx, ebx
jle 0x458b8d
push 0xc
mov dword [ebp + 8], 0
call fcn.004f457c
mov edi, eax
mov al, byte [ebp - 0xd]
mov dword [ebp - 0x30], edi
mov byte [edi + 8], al
lea eax, [ebp + 8]
push eax
push 0
push edi
push 0x44f350
mov dword [edi + 4], ebx
mov ebx, dword [ebp - 0x18]
push 0
push 0
mov dword [edi], ebx
call fcn.004fc2dd
add esp, 0x1c
test eax, eax
jne 0x458b84
push 0xc
push edi
call fcn.004f4e4c
mov byte [ebp - 4], 1
add esp, 8
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
or ebx, 0xffffffff
jmp 0x458677
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x458bfb
push 5
push dword [edi + 0x18]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
call edi
mov ebx, dword [ebp - 0x18]
push 5
push dword [ebx + 0x14]
call edi
mov ecx, dword [ebx + 0x10]
push 1
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x28]
mov al, byte [ebp - 0xd]
push 0
test al, al
je 0x458bc9
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
jmp 0x458bfb
push 0xff
push 0x402
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_PostMessageW]
push 2
push 0xff
push 0
push dword [ebx + 0x14]
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
push 0
push 0
push dword [ebx + 0x18]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov byte [ebp - 4], 1
or eax, 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x458c1a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or ebx, 0xffffffff
mov edx, dword [ebp - 0x34]
mov eax, ebx
mov byte [ebp - 4], 0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x458c38
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x458c54
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4