Function at 0x452a24
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x4af008]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, edx
mov eax, ecx
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], eax
cmp esi, 0x807b
je 0x452cf6
mov ecx, dword [0x4b49d4]
test ecx, ecx
je 0x45258a
push ebx
push edi
mov ecx, eax
call fcn.00442150
add esp, 8
test al, 4
jne 0x452cf6
test al, 0x10
je 0x45255d
cmp esi, 1
je 0x452cf6
push ebx
push edi
push esi
push dword [esp + 0x18]
call dword [sym.imp.MMFS2.dll_Ordinal_1070]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
test al, 0x40
je 0x452580
mov eax, dword [0x4b49d4]
mov eax, dword [eax + 0x4b4]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [0x4b49d4]
mov eax, dword [esp + 0xc]
cmp esi, 0x200
ja 0x452b0b
je 0x452ae7
cmp esi, 0x47
ja 0x452951
je 0x4528c9
lea eax, [esi - 2]
cmp eax, 0x22
ja case.0x452b2f.514
movzx eax, byte [eax + 0x452d20]
jmp dword [eax*4 + 0x452d0c]
mov dword [0x4b49ac], 0
mov dword [0x4b49a4], 0
jmp case.0x452b2f.514
call fcn.00440df0
mov ecx, dword [0x4b49d0]
call fcn.00429a00
cmp dword [0x4b49e0], 0
jne 0x4525ff
push dword [0x4b49a4]
call dword [sym.imp.MMFS2.dll_Ordinal_832]
mov eax, dword [0x4b49cc]
test eax, eax
je 0x452767
cmp dword [eax + 0x1a8], 0
je 0x452767
mov ecx, dword [eax + 0x1ac]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x4526c1
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x10]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
movsx edx, ax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
mov dword [ecx + 0x60], edx
cwde
mov dword [ecx + 0x64], eax
mov dword [esp + 0x10], eax
mov eax, dword [0x4b49cc]
mov ecx, dword [eax + 0x1b0]
test ecx, 0x200000
je 0x4526c1
and ecx, 0xc00000
cmp ecx, 0x800000
ja 0x45269d
je 0x45268d
test ecx, ecx
je 0x45268d
cmp ecx, 0x400000
je 0x4526a5
jmp 0x4526c1
cmp dword [eax + 0x1bc], edx
je 0x4526c1
mov dword [eax + 0x1bc], edx
jmp 0x4526b7
cmp ecx, 0xc00000
jne 0x4526c1
mov ecx, dword [esp + 0x10]
cmp dword [eax + 0x1c0], ecx
je 0x4526c1
mov dword [eax + 0x1c0], ecx
call fcn.00442820
mov eax, dword [0x4b49cc]
test eax, eax
je 0x452767
cmp dword [eax + 0x1fc], 0
jne 0x452767
mov dword [eax + 0x1fc], 1
mov eax, dword [0x4b49cc]
cmp dword [eax + 0x1e4], 3
jne 0x45275d
mov ecx, 0x8000
test word [eax + 0x16], cx
je 0x45275d
mov ecx, dword [0x4b49d4]
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x452726
cmp dword [ecx + 0x178], 0
je 0x452726
call fcn.0042b680
mov eax, dword [0x4b49cc]
mov dword [esp + 0x10], 1
mov dword [eax + 0x1fc], 1
mov ecx, dword [0x4b49cc]
xor edx, edx
call fcn.00405b10
cmp dword [esp + 0x10], 0
mov eax, dword [0x4b49cc]
mov dword [eax + 0x1fc], 0
je 0x452758
call fcn.0042b5b0
mov eax, dword [0x4b49cc]
mov dword [eax + 0x1fc], 0
push dword [0x4b49a4]
call dword [sym.imp.MMFS2.dll_Ordinal_16]
mov ecx, 0x800
test cx, ax
je 0x452cf6
push ebx
push edi
push esi
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_DefMDIChildProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
push dword [0x4b49a4]
call dword [sym.imp.MMFS2.dll_Ordinal_16]
mov ecx, 0x800
test cx, ax
je case.0x452b2f.514
push ebx
push edi
push esi
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_DefMDIChildProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x4b49d0]
test eax, eax
je case.0x452b2f.514
test dword [eax + 0xc], 0x800
je case.0x452b2f.514
test byte [0x4b49b4], 0x10
jne case.0x452b2f.514
push dword [0x4b49a8]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x452ca4
mov ebx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
jne 0x452839
lea eax, [esp + 0x14]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ax, word [0x4b49b6]
cmp ax, 3
jne 0x45286a
mov ecx, dword [0x4b49b0]
test ecx, ecx
je 0x45286a
push 1
push ecx
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
mov ebx, eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov ax, word [0x4b49b6]
jmp 0x45286c
xor ebx, ebx
mov ecx, dword [0x4b49d0]
mov ecx, dword [ecx + 8]
cmp ax, 3
jne 0x452881
or ecx, 0x2000000
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
push esi
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
test ebx, ebx
je 0x452ca4
push 1
push ebx
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
call fcn.00440df0
mov eax, dword [0x4b49cc]
test eax, eax
je case.0x452b2f.514
mov edx, dword [eax + 0x1a8]
test edx, edx
je case.0x452b2f.514
mov ecx, dword [eax + 0x1ac]
test ecx, ecx
je case.0x452b2f.514
test byte [ebx + 0x18], 2
jne case.0x452b2f.514
test byte [eax + 0x1b0], 0x20
je 0x45291b
mov eax, dword [ebx + 8]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0x54], eax
jmp case.0x452b2f.514
mov edx, dword [edx + 0x1d8]
test edx, edx
je case.0x452b2f.514
mov edx, dword [edx + 0x7c]
test edx, edx
je case.0x452b2f.514
mov eax, dword [ebx + 8]
add eax, dword [edx + 0xb0]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0xc]
add eax, dword [edx + 0xb4]
mov dword [ecx + 0x54], eax
jmp case.0x452b2f.514
lea eax, [esi - 0x100]
cmp eax, 0x12
ja case.0x452b2f.514
movzx eax, byte [eax + 0x452d58]
jmp dword [eax*4 + 0x452d44]
test ecx, ecx
je case.0x452967.260
mov ecx, edi
call fcn.00458680
mov eax, dword [0x4b49cc]
test eax, eax
je 0x452cf6
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x452cf6
cmp esi, 0x104
je 0x4529ab
shr ebx, 0x10
test ebx, 0x2000
jne 0x4529ab
xor edx, edx
jmp 0x4529b0
mov edx, 1
mov ecx, dword [0x4b49a8]
push eax
push edi
call fcn.00451620
add esp, 8
jmp 0x452cf6
test ecx, ecx
je case.0x452b2f.514
mov eax, dword [0x4b49cc]
test eax, eax
je case.0x452b2f.514
cmp dword [eax + 0x1a8], 0
je case.0x452b2f.514
test ebx, ebx
jne case.0x452b2f.514
mov eax, dword [eax + 0x1e4]
cmp eax, 2
je 0x4529ff
cmp eax, 4
jne 0x452a0e
mov eax, dword [0x4b49d0]
cmp dword [eax + 0x70], 0
jne case.0x452b2f.514
xor edx, edx
mov ecx, edi
call fcn.00458520
test eax, eax
je case.0x452b2f.514
jmp 0x452cf6
mov eax, edi
and eax, 0xfff0
cmp eax, 0xf060
jne case.0x452b2f.514
mov eax, dword [0x4b49cc]
test eax, eax
je 0x452cf6
cmp dword [eax + 0x1a8], 0
je 0x452cf6
push dword [0x4b49a4]
call dword [sym.imp.MMFS2.dll_Ordinal_16]
mov ecx, 0x800
test cx, ax
je 0x452a7c
mov eax, dword [0x4b49d4]
test eax, eax
je 0x452a81
call fcn.004585a0
test eax, eax
jne 0x452cf6
mov eax, dword [0x4b49d4]
mov edx, dword [0x4b49cc]
mov ecx, dword [edx + 0x1b0]
test ecx, 0x800
jne 0x452cf6
test ecx, 0x8000
je 0x452ad1
mov eax, dword [edx + 0x1d8]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x452cf6
push 0
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4b49cc]
mov dword [eax + 0x1b4], 0
jmp 0x452cf6
test eax, eax
je 0x452cf6
mov ecx, 0xfffffffe
mov word [eax + 0x30], cx
jmp 0x452cf6
test ecx, ecx
je case.0x452b2f.514
cmp dword [ecx + 0x178], 0
jne case.0x452b2f.514
mov dword [ecx + 0x50c], 0
jmp case.0x452b2f.514
cmp esi, 0x222
ja 0x452bea
je 0x452b7d
lea eax, [esi - 0x201]
cmp eax, 9
ja case.0x452b2f.514
movzx eax, byte [eax + 0x452d78]
jmp dword [eax*4 + 0x452d6c]
test ecx, ecx
je 0x452cf6
push ebx
mov ecx, esi
call fcn.00429b30
add esp, 4
test eax, eax
jne 0x452cf6
cmp dword [0x4b49d4], eax
je 0x452cf6
mov ecx, esi
call fcn.004588e0
jmp 0x452cf6
test ecx, ecx
je 0x452cf6
mov ecx, edi
call fcn.00458610
jmp 0x452cf6
push dword [0x4b49a4]
call dword [sym.imp.MMFS2.dll_Ordinal_16]
mov ecx, 0x800
test cx, ax
je case.0x452b2f.514
mov eax, dword [0x4b49cc]
test dword [eax + 0x1b0], 0x2000000
jne case.0x452b2f.514
mov eax, dword [esp + 0xc]
cmp eax, ebx
jne 0x452bcb
cmp dword [0x4b49d4], 0
je case.0x452b2f.514
call fcn.0042b680
jmp case.0x452b2f.514
cmp eax, edi
jne case.0x452b2f.514
cmp dword [0x4b49d4], 0
je case.0x452b2f.514
call fcn.0042b5b0
jmp case.0x452b2f.514
cmp esi, 0x311
ja 0x452cd1
je 0x452c12
cmp esi, 0x233
je 0x452cbd
cmp esi, 0x30f
jne case.0x452b2f.514
mov edi, eax
cmp dword [0x4b49a4], 0
je 0x452cf6
cmp dword [0x4b49b0], 0
je 0x452cf6
mov ebx, dword [sym.imp.USER32.dll_GetParent]
push eax
mov esi, eax
call ebx
test eax, eax
je 0x452c49
jmp 0x452c40
push eax
mov esi, eax
call ebx
test eax, eax
jne 0x452c40
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x10], eax
test eax, eax
je 0x452ca4
mov ebx, dword [esp + 0xc]
xor ecx, ecx
cmp edi, ebx
setne cl
push ecx
push dword [0x4b49b0]
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
mov edi, dword [esp + 0x10]
push edi
mov dword [esp + 0x10], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x452c8f
push 1
push 0
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push dword [esp + 0x10]
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8
test ecx, ecx
je case.0x452b2f.514
mov ecx, edi
call fcn.00458750
jmp case.0x452b2f.514
cmp esi, 0x3b9
jne case.0x452b2f.514
test ecx, ecx
je 0x452cf6
cmp edi, 4
je 0x452cf6
push 0xffffffffffffffff
push 2
push dword [0x4b499c]
call dword [sym.imp.MMFS2.dll_Ordinal_191]
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0046d696
mov esp, ebp
pop ebp
ret 8