Function at 0x4023e0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x168
mov eax, dword [0x47538c]
test eax, eax
nop
push ebx
push esi
push edi
mov esi, edx
push ebp
mov edi, ecx
jne 0x4023fc
xor edi, edi
jmp 0x402455
test esi, esi
je 0x40241f
call fcn.00455eb0
cdq
idiv esi
inc edx
lea eax, [esp + 0x74]
push edx
push edi
push str._s_d
push eax
call fcn.00455e30
add esp, 0x10
jmp 0x402440
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [esp + 0x74]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edx, [esp + 0x74]
push str..AVI
mov ecx, str.Video_
call fcn.00443380
mov edi, eax
mov ebx, dword [esp + 0x17c]
test bl, 0x20
jne 0x40248b
test bl, 1
jne 0x402472
mov ecx, 1
call fcn.00402f50
jmp 0x40248b
push 0
mov eax, dword [0x4c8020]
push 0
mov ecx, dword [0x4753f4]
push eax
mov ebp, dword [sym.imp.USER32.dll_PostThreadMessageA]
push ecx
call ebp
test edi, edi
je 0x402632
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
lea edi, [esp + 0x74]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.USER32.dll_ShowCursor]
push 0
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call ebp
test bl, 1
mov dword [0x47e9a8], eax
jne 0x4024ec
mov eax, dword [0x47538c]
cmp eax, 2
je 0x4024ec
mov ecx, str.Matte
mov edx, dword [0x4753f8]
call fcn.0041e540
jmp 0x402518
mov dword [esp + 0x10], 0x64
mov dword [esp + 0x60], 0
lea eax, [esp + 0x10]
mov ecx, dword [0x475400]
push eax
push 0x1000400
push 0
mov eax, dword [ecx]
push 0
push 0
push ecx
call dword [eax + 0x14]
mov ecx, dword [0x47e9a8]
call fcn.00402a80
test eax, eax
je 0x40262a
push 0
mov eax, dword [0x47e9a8]
push eax
push 0
push 0
push 0x1e0
push 0x280
mov ecx, dword [str.AVI_Window]
push 0
mov ebp, dword [sym.imp.USER32.dll_CreateWindowExA]
push 0
push connect
push str.DigitalVideo
push ecx
push 8
call ebp
mov dword [0x47e9b8], eax
test eax, eax
je 0x40262a
lea ecx, [esp + 0x74]
mov edx, ebx
call fcn.00402650
test eax, eax
jne 0x402606
push 1
mov eax, dword [0x47e9b8]
push eax
mov ebp, dword [sym.imp.USER32.dll_ShowWindow]
call ebp
mov ecx, dword [0x47e9b8]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [esp + 0x10]
push 0
push 0
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push ecx
call esi
test eax, eax
je 0x402606
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x10]
mov edx, ebx
call fcn.00402b30
test al, al
je 0x4025d9
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x4025f5
lea eax, [esp + 0x10]
push eax
call edi
mov eax, dword [esp + 0x10]
mov ecx, dword [0x47e9b8]
cmp ecx, eax
jne 0x4025f5
lea eax, [esp + 0x10]
push eax
call ebp
lea eax, [esp + 0x10]
push 0
push 0
push 0
push eax
call esi
test eax, eax
jne 0x4025c0
call fcn.004029b0
mov ecx, ebx
call fcn.00402c40
mov eax, dword [0x47e9b8]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
xor eax, eax
jmp 0x40263e
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
mov ecx, ebx
call fcn.00402c40
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x168
ret 4