Function at 0x44ac70
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x4a6110]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x18], ecx
cmp esi, 0x807b
je 0x44b458
mov edx, dword [0x4a7b74]
test edx, edx
je 0x44ad12
push ebx
push edi
push esi
push ecx
call fcn.0043c660
add esp, 0x10
test al, 4
jne 0x44b458
test al, 0x10
je 0x44ace7
cmp esi, 1
je 0x44b458
push ebx
push edi
push esi
push dword [ebp - 0x18]
call sub.MMFS2.dll_Ordinal_1070
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
test al, 0x40
je 0x44ad09
mov eax, dword [0x4a7b74]
pop edi
mov eax, dword [eax + 0x4b4]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [0x4a7b74]
mov ecx, dword [ebp - 0x18]
cmp esi, 0x200
ja 0x44b278
je 0x44b260
cmp esi, 0x47
ja 0x44b0c6
je 0x44b03e
lea eax, [esi - 2]
cmp eax, 0x22
ja case.0x44b29c.514
movzx eax, byte [eax + 0x44b484]
jmp dword [eax*4 + 0x44b470]
mov dword [0x4a7b4c], 0
mov dword [0x4a7b44], 0
jmp case.0x44b29c.514
call fcn.0043cb50
push dword [0x4a7b70]
call fcn.00420910
add esp, 4
cmp dword [0x4a7b80], 0
jne 0x44ad89
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_832
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44aee7
cmp dword [eax + 0x1a8], 0
je 0x44aee7
mov ecx, dword [eax + 0x1ac]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44ae41
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
movsx edx, ax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov dword [ecx + 0x60], edx
cwde
mov dword [ecx + 0x64], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4a7b6c]
mov ecx, dword [eax + 0x1b0]
test ecx, 0x200000
je 0x44ae41
and ecx, 0xc00000
cmp ecx, 0x800000
ja 0x44ae1e
je 0x44ae0e
test ecx, ecx
je 0x44ae0e
cmp ecx, 0x400000
je 0x44ae26
jmp 0x44ae41
cmp dword [eax + 0x1bc], edx
je 0x44ae41
mov dword [eax + 0x1bc], edx
jmp 0x44ae37
cmp ecx, 0xc00000
jne 0x44ae41
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + 0x1c0], ecx
je 0x44ae41
mov dword [eax + 0x1c0], ecx
call fcn.0043c380
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44aee7
cmp dword [eax + 0x1fc], 0
jne 0x44aee7
mov dword [eax + 0x1fc], 1
mov eax, dword [0x4a7b6c]
cmp dword [eax + 0x1e4], 3
jne 0x44aedd
mov ecx, 0x8000
test word [eax + 0x16], cx
je 0x44aedd
mov ecx, dword [0x4a7b74]
mov dword [ebp - 0x1c], 0
test ecx, ecx
je 0x44aea4
cmp dword [ecx + 0x178], 0
je 0x44aea4
call fcn.004245c0
mov eax, dword [0x4a7b6c]
mov dword [ebp - 0x1c], 1
mov dword [eax + 0x1fc], 1
push 0
push dword [0x4a7b6c]
call fcn.004052e0
mov eax, dword [0x4a7b6c]
add esp, 8
cmp dword [ebp - 0x1c], 0
mov dword [eax + 0x1fc], 0
je 0x44aed8
call fcn.00425c30
mov eax, dword [0x4a7b6c]
mov dword [eax + 0x1fc], 0
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je 0x44b458
push ebx
push edi
push esi
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_DefMDIChildProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je case.0x44b29c.514
push ebx
push edi
push esi
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_DefMDIChildProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x4a7b70]
test eax, eax
je case.0x44b29c.514
test dword [eax + 0xc], 0x800
je case.0x44b29c.514
test byte [0x4a7b54], 0x10
jne case.0x44b29c.514
push dword [0x4a7b48]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x44b404
mov ebx, dword [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
jne 0x44afb0
lea eax, [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ax, word [0x4a7b56]
cmp ax, 3
jne 0x44afe1
mov ecx, dword [0x4a7b50]
test ecx, ecx
je 0x44afe1
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 [0x4a7b56]
jmp 0x44afe3
xor ebx, ebx
mov ecx, dword [0x4a7b70]
mov ecx, dword [ecx + 8]
cmp ax, 3
jne 0x44aff8
or ecx, 0x2000000
push ecx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
push esi
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
test ebx, ebx
je 0x44b404
push 1
push ebx
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
call fcn.0043cb50
mov eax, dword [0x4a7b6c]
test eax, eax
je case.0x44b29c.514
mov edx, dword [eax + 0x1a8]
test edx, edx
je case.0x44b29c.514
mov ecx, dword [eax + 0x1ac]
test ecx, ecx
je case.0x44b29c.514
test byte [ebx + 0x18], 2
jne case.0x44b29c.514
test byte [eax + 0x1b0], 0x20
je 0x44b090
mov eax, dword [ebx + 8]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0x54], eax
jmp case.0x44b29c.514
mov edx, dword [edx + 0x1d8]
test edx, edx
je case.0x44b29c.514
mov edx, dword [edx + 0x7c]
test edx, edx
je case.0x44b29c.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.0x44b29c.514
lea eax, [esi - 0x100]
cmp eax, 0x12
ja case.0x44b29c.514
movzx eax, byte [eax + 0x44b4bc]
jmp dword [eax*4 + 0x44b4a8]
test edx, edx
je case.0x44b0dc.260
push ebx
push edi
push ecx
call fcn.004532e0
add esp, 0xc
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44b458
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x44b458
cmp esi, 0x104
je 0x44b124
shr ebx, 0x10
test ebx, 0x2000
jne 0x44b124
xor eax, eax
jmp 0x44b129
mov eax, 1
push ecx
push edi
push eax
push dword [0x4a7b48]
call fcn.0044ed50
add esp, 0x10
jmp 0x44b458
test edx, edx
je case.0x44b29c.514
mov eax, dword [0x4a7b6c]
test eax, eax
je case.0x44b29c.514
cmp dword [eax + 0x1a8], 0
je case.0x44b29c.514
test ebx, ebx
jne case.0x44b29c.514
mov eax, dword [eax + 0x1e4]
cmp eax, 2
je 0x44b179
cmp eax, 4
jne 0x44b188
mov eax, dword [0x4a7b70]
cmp dword [eax + 0x70], 0
jne case.0x44b29c.514
push 0
push edi
push ecx
call fcn.00453100
add esp, 0xc
test eax, eax
je case.0x44b29c.514
jmp 0x44b458
mov eax, edi
and eax, 0xfff0
cmp eax, 0xf060
jne case.0x44b29c.514
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44b458
cmp dword [eax + 0x1a8], 0
je 0x44b458
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je 0x44b1f7
push ebx
push edi
push dword [ebp - 0x18]
call fcn.00453090
add esp, 0xc
test eax, eax
jne 0x44b458
mov ecx, dword [0x4a7b6c]
mov eax, dword [ecx + 0x1b0]
test eax, 0x800
jne 0x44b458
test eax, 0x8000
je 0x44b245
mov eax, dword [ecx + 0x1d8]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x44b458
push 0
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4a7b6c]
mov dword [eax + 0x1b4], 0
jmp 0x44b458
mov eax, dword [0x4a7b74]
test eax, eax
je 0x44b458
mov ecx, 0xfffffffe
mov word [eax + 0x30], cx
jmp 0x44b458
test edx, edx
je case.0x44b29c.514
push ebx
push edi
push ecx
call fcn.00453670
add esp, 0xc
jmp case.0x44b29c.514
cmp esi, 0x222
ja 0x44b354
je 0x44b2e9
lea eax, [esi - 0x201]
cmp eax, 9
ja case.0x44b29c.514
movzx eax, byte [eax + 0x44b4dc]
jmp dword [eax*4 + 0x44b4d0]
test edx, edx
je 0x44b458
push ebx
push edi
push esi
call fcn.00421420
add esp, 0xc
test eax, eax
jne 0x44b458
push ebx
push edi
push esi
push dword [ebp - 0x18]
call fcn.004533a0
add esp, 0x10
jmp 0x44b458
test edx, edx
je 0x44b458
push ebx
push edi
push ecx
call fcn.00453690
add esp, 0xc
jmp 0x44b458
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je case.0x44b29c.514
mov eax, dword [0x4a7b6c]
test dword [eax + 0x1b0], 0x2000000
jne case.0x44b29c.514
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x44b335
cmp dword [0x4a7b74], 0
je case.0x44b29c.514
call fcn.004245c0
jmp case.0x44b29c.514
cmp eax, edi
jne case.0x44b29c.514
cmp dword [0x4a7b74], 0
je case.0x44b29c.514
call fcn.00425c30
jmp case.0x44b29c.514
cmp esi, 0x311
ja 0x44b434
je 0x44b37c
cmp esi, 0x233
je 0x44b41c
cmp esi, 0x30f
jne case.0x44b29c.514
mov edi, ecx
cmp dword [0x4a7b44], 0
je 0x44b458
cmp dword [0x4a7b50], 0
je 0x44b458
mov ebx, dword [sym.imp.USER32.dll_GetParent]
push ecx
mov esi, ecx
call ebx
test eax, eax
je 0x44b3ae
push eax
mov esi, eax
call ebx
test eax, eax
jne 0x44b3a5
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x44b404
mov ebx, dword [ebp - 0x18]
xor ecx, ecx
cmp edi, ebx
setne cl
push ecx
push dword [0x4a7b50]
push eax
call dword [sym.imp.GDI32.dll_SelectPalette]
mov edi, dword [ebp - 0x1c]
push edi
mov dword [ebp - 0x18], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
test eax, eax
je 0x44b3f0
push 1
push 0
push ebx
call dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push dword [ebp - 0x18]
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10
test edx, edx
je case.0x44b29c.514
push ebx
push edi
push ecx
call fcn.00453180
add esp, 0xc
jmp case.0x44b29c.514
cmp esi, 0x3b9
jne case.0x44b29c.514
test edx, edx
je 0x44b458
cmp edi, 4
je 0x44b458
push 0xffffffffffffffff
push 2
push dword [0x4a7b3c]
call sub.MMFS2.dll_Ordinal_191
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00468a6b
mov esp, ebp
pop ebp
ret 0x10