Function at 0x478420
Capabilities:
Hide graphical window

Disassembly:
push 0xffffffffffffffff
push 0x4e5dd0
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.00483190
push ecx
lea ecx, [esi + 4]
call fcn.00478c70
mov eax, dword [0x70e000]
test al, 1
jne 0x4784a7
or eax, 1
mov dword [0x70e000], eax
mov dword [esp + 0x150], 0
call fcn.00487ee0
push 0x4ec240
call fcn.004c5734
add esp, 4
mov dword [esp + 0x150], 0xffffffff
cmp byte [0x70e0fd], 0
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
je 0x4784c5
lea edi, [esi + 4]
mov ecx, edi
call fcn.0047d2b0
jmp 0x4785a9
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 0x4785a6
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4785a6
mov eax, dword [esp + 0x120]
cmp eax, 0x201
je 0x478562
cmp eax, 0x203
je 0x478562
cmp eax, 0x100
je 0x478562
cmp eax, 0x104
jne 0x478576
lea eax, [esp + 0x11c]
push eax
lea ecx, [esi + 4]
call fcn.0047be00
test al, al
je 0x478592
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 0x478532
lea edi, [esi + 4]
mov al, byte [esi + 0x154]
test al, al
jne 0x4785d2
push dword [esi + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x478a7a
push dword [esi + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x478a7a
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.00478220
mov dword [esp + 0x168], 1
lea edi, [esi + 0x164]
mov dword [esp + 0x38], edi
mov dword [esp + 0x168], 0xffffffff
mov ecx, edi
call fcn.004782a0
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.0047d200
lea eax, [esp + 0x138]
mov ecx, edi
push eax
call fcn.00489280
push 0x30
lea eax, [esp + 0xd4]
push 0
push eax
call fcn.004cb700
add esp, 0xc
lea ecx, [esp + 0xd0]
call fcn.00478df0
mov byte [esp + 0x150], 3
mov al, byte [esi + 0x148]
mov edi, dword [esp + 0x13c]
test al, al
jne 0x47874e
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, edi
je 0x47870f
lea ebx, [ebx]
add ecx, dword [eax + 0x9c]
add eax, 0xa4
cmp eax, edi
jne 0x478700
sub esp, 8
mov dword [esp + 0xf8], ecx
lea ecx, [esp + 0xd8]
call fcn.00478cf0
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 0x478764
push dword [esi + 8]
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [esi + 0x164]
call fcn.00489390
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 0x478840
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x4787d9
mov eax, dword [eax + 8]
test eax, eax
je 0x4787d9
cmp byte [eax + 8], 0
jne 0x4787ed
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x478839
mov eax, dword [eax + 8]
test eax, eax
je 0x478839
cmp byte [eax + 8], 0
je 0x478839
push dword [esp + 0xd4]
call edi
test eax, eax
jne 0x478809
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 0x4787c1
mov edi, dword [esp + 0x13c]
mov eax, dword [0x70e000]
test al, 1
jne 0x478873
or eax, 1
mov dword [0x70e000], eax
mov byte [esp + 0x150], 4
call fcn.00487ee0
push 0x4ec240
call fcn.004c5734
add esp, 4
mov byte [esp + 0x150], 3
cmp byte [0x70e0fd], 0
je 0x4788a4
push dword [esp + 0xd4]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x478a08
push dword [esp + 0xd4]
mov eax, dword [sym.imp.USER32.dll_DestroyWindow]
call eax
jmp 0x478a08
push 0x90
lea eax, [esp + 0x28]
push 0
push eax
call fcn.004cb700
add esp, 0xc
lea ecx, [esp + 0x24]
call fcn.00476370
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.00478d70
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 0x478945
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 0x4789f7
lea esp, [esp]
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
je 0x47899b
push eax
push ecx
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x4789c7
cmp dword [esp + 0x104], 0x104
jne 0x4789c7
cmp dword [esp + 0x108], 0x46
jne 0x4789c7
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 0x478980
mov byte [esp + 0x150], 3
lea ecx, [esp + 0x24]
call fcn.00479190
mov byte [esp + 0x150], 2
lea ecx, [esp + 0xd0]
call fcn.00478ea0
mov dword [esp + 0x150], 0xffffffff
mov eax, dword [esp + 0x138]
test eax, eax
je 0x478a7a
mov esi, eax
cmp eax, edi
je 0x478a50
mov ecx, esi
call fcn.004725b0
add esi, 0xa4
cmp esi, edi
jne 0x478a38
mov eax, dword [esp + 0x138]
push eax
call fcn.004c4eaa
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.004c4eaf
add esp, 0x148
ret