Function at 0x4384d0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
push edi
push 0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, eax
mov ebp, dword [esp + 0x9c]
mov edi, dword [esp + 0xa0]
cmp ebp, 0x111
ja 0x43874b
cmp ebp, 0x111
je 0x4386f8
cmp ebp, 0xf
ja 0x43863f
je 0x438595
mov eax, ebp
sub eax, 2
je 0x438585
sub eax, 5
je 0x43855c
dec eax
jne case.0x438776.277
mov dword [esp + 0x14], 0xc
mov eax, dword [esi + 4]
push 2
push eax
call fcn.00403bc0
lea ecx, [esp + 0x14]
push ecx
push 0xc
push eax
call fcn.00405ed0
mov dword [esi + 0x14], 0
jmp case.0x438776.277
mov edx, dword [esi + 0x44]
mov eax, dword [edx + 0x14]
test eax, eax
je case.0x438776.277
mov eax, dword [esi + 0x1c]
test eax, eax
je case.0x438776.277
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x438776.277
push 0
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp case.0x438776.277
lea eax, [esp + 0x54]
push eax
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
lea ecx, [esp + 0x5c]
lea edx, [esp + 0x2c]
push ecx
push edx
mov dword [esp + 0x1c], 0xb
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [esi + 4]
lea eax, [esp + 0x10]
push eax
push 0
push 0x22
push ecx
call fcn.00403c00
cmp dword [esp + 0x10], 1
je 0x43860e
lea edx, [esp + 0x44]
push edx
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
add ebp, eax
add edx, eax
mov eax, dword [esp + 0x38]
add edi, ecx
add eax, ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x20]
test eax, eax
je 0x438624
mov ecx, dword [esi]
lea eax, [esp + 0x14]
push eax
push 0xb
push ecx
call fcn.00402b75
lea edx, [esp + 0x54]
push edx
push ebx
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
cmp ebp, 0x10
je 0x4386e2
cmp ebp, 0x14
je 0x4386e9
cmp ebp, 0x102
jne case.0x438776.277
test esi, esi
je case.0x438776.277
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4386b3
mov edx, dword [esi + 0x28]
mov ecx, edi
and ecx, 0xff
mov dword [esi + 0x14], 0
shl ecx, 8
add edx, ecx
mov eax, edx
mov dword [esi + 0x28], edx
mov dword [esp + 0x20], eax
mov eax, dword [esi]
lea edx, [esp + 0x14]
push edx
push 0xa
push eax
call fcn.00402b75
jmp case.0x438776.277
push edi
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x4386cd
mov dword [esi + 0x14], 1
mov dword [esi + 0x28], edi
jmp case.0x438776.277
mov ecx, edi
mov dword [esi + 0x14], 0
and ecx, 0xff
mov dword [esp + 0x20], ecx
jmp 0x43869f
push ebx
call dword [sym.imp.USER32.dll_DestroyWindow]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov eax, dword [esi + 0x34]
test eax, eax
je case.0x438776.277
mov ecx, edi
shr ecx, 0x10
jne case.0x438776.277
cmp di, 9
ja case.0x438776.277
push 0
push edi
push 0x7ec1
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [esi + 0x34]
test eax, eax
je 0x438735
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [esi + 0x34], 0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
cmp ebp, 0x311
ja 0x4389e9
je 0x438993
lea eax, [ebp - 0x112]
cmp eax, 0xf4
ja case.0x438776.277
xor edx, edx
mov dl, byte [eax + 0x438ab4]
jmp dword [edx*4 + 0x438aa4]
mov eax, dword [esi + 0x34]
test eax, eax
je case.0x438776.277
mov eax, edi
shr eax, 0x10
cmp eax, 0xffff
jne case.0x438776.277
mov eax, dword [esp + 0xa4]
test eax, eax
jne case.0x438776.277
push 0
push 0xffffffffffffffff
push 0x7ec1
push ebx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov edx, dword [esi + 4]
lea ecx, [esp + 0x10]
push ecx
push 0
push 0x22
push edx
call fcn.00403c00
cmp dword [esp + 0x10], 1
jne 0x4387fa
mov eax, dword [esp + 0xa4]
push 0
push eax
push edi
push ebp
push ebx
push esi
call fcn.00438e90
add esp, 0x18
jmp case.0x438776.277
mov ecx, dword [esp + 0xa4]
push 1
push ecx
push edi
push ebp
push ebx
push esi
call fcn.00438e90
add esp, 0x18
jmp case.0x438776.277
mov eax, edi
and eax, 0xfff0
sub eax, 0xf020
je 0x438917
sub eax, 0x40
je 0x4388dd
sub eax, 0xc0
je 0x43886a
cmp edi, 0x1000
jne case.0x438776.277
mov edx, dword [esi + 4]
mov eax, dword [0x447518]
push edx
push sym.DEMO32.EXE_PlayerAbout
push ebx
push 0x39
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov eax, dword [0x447504]
test eax, eax
je 0x438889
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x438889
mov ecx, dword [0x447504]
push 9
push ecx
jmp 0x43888c
push 9
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x4388ce
mov edx, dword [esi + 4]
push 5
push edx
call fcn.00403a50
mov ecx, dword [esi + 4]
mov edi, eax
lea eax, [esp + 0x10]
push eax
push 0
push 0x36
push ecx
call fcn.00403c00
mov edx, dword [esp + 0x10]
and edx, 1
push edx
push 0xd
push edi
call fcn.00402f17
push edi
call fcn.00402f56
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov eax, dword [0x4474b0]
test eax, eax
je 0x438908
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x438908
mov eax, dword [0x4474bc]
mov ecx, dword [0x4474b0]
push 0
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov eax, dword [0x447504]
test eax, eax
je 0x438936
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x438936
mov edx, dword [0x447504]
push 6
push edx
jmp 0x438939
push 6
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esi + 4]
push 5
push eax
mov dword [esi + 0x24], 0
call fcn.00403a50
mov edi, eax
test edi, edi
je 0x43896f
push edi
call fcn.00402ed9
cmp eax, 0xa
jne 0x43896f
push edi
mov dword [esi + 0x24], 1
call fcn.00402fa2
mov ecx, dword [esi + 4]
push 0x10
push ecx
call fcn.00403a50
test eax, eax
je 0x438984
push eax
call fcn.0040f390
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
cmp edi, ebx
jne 0x4389a6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x84
ret 0x10
mov edx, dword [esi + 0x44]
mov dword [esi + 0x1c], 1
mov eax, dword [edx + 0x14]
test eax, eax
je case.0x438776.277
mov eax, dword [0x447504]
mov esi, dword [sym.imp.USER32.dll_InvalidateRect]
test eax, eax
je 0x4389dd
push 0
push 0
push eax
call esi
mov eax, dword [0x447504]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0
push ebx
call esi
jmp case.0x438776.277
cmp ebp, 0x3b9
je 0x438a2b
cmp ebp, 0x7ec1
jne case.0x438776.277
cmp edi, 0xffffffff
jne 0x438a14
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
or eax, edi
push eax
push ecx
push edx
call fcn.004326c0
jmp case.0x438776.277
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
mov eax, edi
and eax, 0xffff
push eax
push ecx
push edx
call fcn.004326c0
jmp case.0x438776.277
mov eax, dword [esi + 4]
push 0x10
push eax
call fcn.00403a50
test eax, eax
je 0x438a4d
cmp edi, 1
jne 0x438a4d
mov ecx, dword [esp + 0xa4]
push ecx
push eax
call fcn.0040f2f0
mov edx, dword [esi + 4]
push 0x11
push edx
call fcn.00403a50
test eax, eax
je case.0x438776.277
cmp edi, 1
jne case.0x438776.277
mov ecx, dword [esp + 0xa4]
push ecx
push eax
call fcn.0040eb90
test eax, eax
je case.0x438776.277
call dword [sym.imp.USER32.dll_GetFocus]
cmp eax, ebx
je case.0x438776.277
push ebx
call dword [sym.imp.USER32.dll_SetFocus]
mov edx, dword [esp + 0xa4]
push edx
push edi
push ebp
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret 0x10