Function at 0x478b70
Capabilities:
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x4e6190
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
mov eax, dword [0x50e74c]
xor eax, esp
mov dword [esp + 0x138], eax
push esi
push edi
mov eax, dword [0x50e74c]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0xc]
push eax
call fcn.004838d0
push ecx
lea ecx, [esi + 4]
call fcn.004793c0
mov eax, dword [0x70e010]
test al, 1
jne 0x478bf7
or eax, 1
mov dword [0x70e010], eax
mov dword [esp + 0x150], 0
call fcn.00488270
push 0x4ec510
call fcn.004c59e4
add esp, 4
mov dword [esp + 0x150], 0xffffffff
cmp byte [0x70e10d], 0
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
je 0x478c15
lea edi, [esi + 4]
mov ecx, edi
call fcn.0047da00
jmp 0x478cf9
push 5
push dword [esi + 8]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esi + 8]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [esi + 8]
call dword [sym.imp.USER32.dll_SetFocus]
push 0
push 0x400
push 0x400
xorps xmm0, xmm0
mov dword [esp + 0x128], 0
push 0
lea eax, [esp + 0x12c]
movq qword [esp + 0x140], xmm0
push eax
movdqu xmmword [esp + 0x134], xmm0
call dword [sym.imp.USER32.dll_PeekMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x128]
push eax
call edi
test eax, eax
je 0x478cf6
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x478cf6
mov eax, dword [esp + 0x120]
cmp eax, 0x201
je 0x478cb2
cmp eax, 0x203
je 0x478cb2
cmp eax, 0x100
je 0x478cb2
cmp eax, 0x104
jne 0x478cc6
lea eax, [esp + 0x11c]
push eax
lea ecx, [esi + 4]
call fcn.0047c550
test al, al
je 0x478ce2
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x11c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x128]
push eax
call edi
test eax, eax
jne 0x478c82
lea edi, [esi + 4]
mov al, byte [esi + 0x154]
test al, al
jne 0x478d22
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4791ca
push dword [esi + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4791ca
mov al, byte [esi + 0x148]
sub esp, 0x18
mov byte [esi + 0x177], al
mov ecx, edi
mov eax, esp
mov dword [esp + 0x34], esp
push eax
call fcn.00478970
mov dword [esp + 0x168], 1
lea edi, [esi + 0x164]
mov dword [esp + 0x38], edi
mov dword [esp + 0x168], 0xffffffff
mov ecx, edi
call fcn.004789f0
mov al, byte [esi + 0x128]
xorps xmm0, xmm0
mov byte [esi + 0x174], al
mov al, byte [esi + 0x129]
mov byte [esi + 0x175], al
mov al, byte [esi + 0x12a]
mov byte [esi + 0x176], al
mov al, byte [esi + 0x12b]
mov byte [esi + 0x178], al
mov al, byte [esi + 0x12c]
movq qword [esp + 0x138], xmm0
mov dword [esp + 0x140], 0
mov byte [esi + 0x179], al
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x150], 2
lea eax, [esp + 0x138]
push eax
lea ecx, [esi + 4]
call fcn.0047d950
lea eax, [esp + 0x138]
mov ecx, edi
push eax
call fcn.00489610
push 0x30
lea eax, [esp + 0xd4]
push 0
push eax
call fcn.004cb9a0
add esp, 0xc
lea ecx, [esp + 0xd0]
call fcn.00479540
mov byte [esp + 0x150], 3
mov al, byte [esi + 0x148]
mov edi, dword [esp + 0x13c]
test al, al
jne 0x478e9e
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, edi
je 0x478e5f
lea ebx, [ebx]
add ecx, dword [eax + 0x9c]
add eax, 0xa4
cmp eax, edi
jne 0x478e50
sub esp, 8
mov dword [esp + 0xf8], ecx
lea ecx, [esp + 0xd8]
call fcn.00479440
push 5
push dword [esp + 0xd8]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_SetFocus]
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x478eb4
push dword [esi + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [esi + 0x164]
call fcn.00489720
push 0
push 0x64
push 0
push 0
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0xb4]
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0xbc], 0
push 0
push eax
movdqu xmmword [esp + 0xc8], xmm0
movq qword [esp + 0xd8], xmm0
call esi
test eax, eax
je 0x478f90
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x478f29
mov eax, dword [eax + 8]
test eax, eax
je 0x478f29
cmp byte [eax + 8], 0
jne 0x478f3d
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x478f89
mov eax, dword [eax + 8]
test eax, eax
je 0x478f89
cmp byte [eax + 8], 0
je 0x478f89
push dword [esp + 0xd4]
call edi
test eax, eax
jne 0x478f59
push 5
push dword [esp + 0xd8]
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0xb4]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0xc0]
push eax
call esi
test eax, eax
jne 0x478f11
mov edi, dword [esp + 0x13c]
mov eax, dword [0x70e010]
test al, 1
jne 0x478fc3
or eax, 1
mov dword [0x70e010], eax
mov byte [esp + 0x150], 4
call fcn.00488270
push 0x4ec510
call fcn.004c59e4
add esp, 4
mov byte [esp + 0x150], 3
cmp byte [0x70e10d], 0
je 0x478ff4
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x479158
push dword [esp + 0xd4]
mov eax, dword [sym.imp.USER32.dll_DestroyWindow]
call eax
jmp 0x479158
push 0x90
lea eax, [esp + 0x28]
push 0
push eax
call fcn.004cb9a0
add esp, 0xc
lea ecx, [esp + 0x24]
call fcn.00476ac0
mov byte [esp + 0x150], 5
mov dword [esp + 0x24], vtable.RC::RCPackagesMsgBox_class_RC::RCPackagesMsgBoxFinish_.0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov byte [esp + 0x150], 6
sub esp, 8
lea ecx, [esp + 0x2c]
call fcn.004794c0
push 5
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push dword [esp + 0x28]
call dword [sym.imp.USER32.dll_SetFocus]
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x479095
push dword [esp + 0xd4]
mov eax, dword [sym.imp.USER32.dll_DestroyWindow]
call eax
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0x108], 0
push 0
lea eax, [esp + 0x10c]
movq qword [esp + 0x120], xmm0
push eax
movdqu xmmword [esp + 0x114], xmm0
call esi
test eax, eax
je 0x479147
lea esp, [esp]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
je 0x4790eb
push eax
push ecx
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x479117
cmp dword [esp + 0x104], 0x104
jne 0x479117
cmp dword [esp + 0x108], 0x46
jne 0x479117
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x100]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x10c]
push eax
call esi
test eax, eax
jne 0x4790d0
mov byte [esp + 0x150], 3
lea ecx, [esp + 0x24]
call fcn.004798e0
mov byte [esp + 0x150], 2
lea ecx, [esp + 0xd0]
call fcn.004795f0
mov dword [esp + 0x150], 0xffffffff
mov eax, dword [esp + 0x138]
test eax, eax
je 0x4791ca
mov esi, eax
cmp eax, edi
je 0x4791a0
mov ecx, esi
call fcn.00472d10
add esi, 0xa4
cmp esi, edi
jne 0x479188
mov eax, dword [esp + 0x138]
push eax
call fcn.004c515a
add esp, 4
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov al, 1
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.004c515f
add esp, 0x148
ret