Function at 0x44b111
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 0x44b3c8
mov edx, dword [0x4a7b74]
test edx, edx
je 0x44ac82
push ebx
push edi
push esi
push ecx
call fcn.0043c5d0
add esp, 0x10
test al, 4
jne 0x44b3c8
test al, 0x10
je 0x44ac57
cmp esi, 1
je 0x44b3c8
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.004689fb
mov esp, ebp
pop ebp
ret 0x10
test al, 0x40
je 0x44ac79
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.004689fb
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [0x4a7b74]
mov ecx, dword [ebp - 0x18]
cmp esi, 0x200
ja 0x44b1e8
je 0x44b1d0
cmp esi, 0x47
ja 0x44b036
je 0x44afae
lea eax, [esi - 2]
cmp eax, 0x22
ja case.0x44b20c.514
movzx eax, byte [eax + 0x44b3f4]
jmp dword [eax*4 + 0x44b3e0]
mov dword [0x4a7b4c], 0
mov dword [0x4a7b44], 0
jmp case.0x44b20c.514
call fcn.0043cac0
push dword [0x4a7b70]
call fcn.004208a0
add esp, 4
cmp dword [0x4a7b80], 0
jne 0x44acf9
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_832
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44ae57
cmp dword [eax + 0x1a8], 0
je 0x44ae57
mov ecx, dword [eax + 0x1ac]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x44adb1
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 0x44adb1
and ecx, 0xc00000
cmp ecx, 0x800000
ja 0x44ad8e
je 0x44ad7e
test ecx, ecx
je 0x44ad7e
cmp ecx, 0x400000
je 0x44ad96
jmp 0x44adb1
cmp dword [eax + 0x1bc], edx
je 0x44adb1
mov dword [eax + 0x1bc], edx
jmp 0x44ada7
cmp ecx, 0xc00000
jne 0x44adb1
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + 0x1c0], ecx
je 0x44adb1
mov dword [eax + 0x1c0], ecx
call fcn.0043c2f0
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44ae57
cmp dword [eax + 0x1fc], 0
jne 0x44ae57
mov dword [eax + 0x1fc], 1
mov eax, dword [0x4a7b6c]
cmp dword [eax + 0x1e4], 3
jne 0x44ae4d
mov ecx, 0x8000
test word [eax + 0x16], cx
je 0x44ae4d
mov ecx, dword [0x4a7b74]
mov dword [ebp - 0x1c], 0
test ecx, ecx
je 0x44ae14
cmp dword [ecx + 0x178], 0
je 0x44ae14
call fcn.00424550
mov eax, dword [0x4a7b6c]
mov dword [ebp - 0x1c], 1
mov dword [eax + 0x1fc], 1
push 0
push dword [0x4a7b6c]
call fcn.004052c0
mov eax, dword [0x4a7b6c]
add esp, 8
cmp dword [ebp - 0x1c], 0
mov dword [eax + 0x1fc], 0
je 0x44ae48
call fcn.00425bc0
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 0x44b3c8
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.004689fb
mov esp, ebp
pop ebp
ret 0x10
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je case.0x44b20c.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.004689fb
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [0x4a7b70]
test eax, eax
je case.0x44b20c.514
test dword [eax + 0xc], 0x800
je case.0x44b20c.514
test byte [0x4a7b54], 0x10
jne case.0x44b20c.514
push dword [0x4a7b48]
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x44b374
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 0x44af20
lea eax, [ebp - 0x14]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov ax, word [0x4a7b56]
cmp ax, 3
jne 0x44af51
mov ecx, dword [0x4a7b50]
test ecx, ecx
je 0x44af51
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 0x44af53
xor ebx, ebx
mov ecx, dword [0x4a7b70]
mov ecx, dword [ecx + 8]
cmp ax, 3
jne 0x44af68
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 0x44b374
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.004689fb
mov esp, ebp
pop ebp
ret 0x10
call fcn.0043cac0
mov eax, dword [0x4a7b6c]
test eax, eax
je case.0x44b20c.514
mov edx, dword [eax + 0x1a8]
test edx, edx
je case.0x44b20c.514
mov ecx, dword [eax + 0x1ac]
test ecx, ecx
je case.0x44b20c.514
test byte [ebx + 0x18], 2
jne case.0x44b20c.514
test byte [eax + 0x1b0], 0x20
je 0x44b000
mov eax, dword [ebx + 8]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [ecx + 0x54], eax
jmp case.0x44b20c.514
mov edx, dword [edx + 0x1d8]
test edx, edx
je case.0x44b20c.514
mov edx, dword [edx + 0x7c]
test edx, edx
je case.0x44b20c.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.0x44b20c.514
lea eax, [esi - 0x100]
cmp eax, 0x12
ja case.0x44b20c.514
movzx eax, byte [eax + 0x44b42c]
jmp dword [eax*4 + 0x44b418]
test edx, edx
je case.0x44b04c.260
push ebx
push edi
push ecx
call fcn.00453230
add esp, 0xc
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44b3c8
mov ecx, dword [eax + 0xb4]
test ecx, ecx
je 0x44b3c8
cmp esi, 0x104
je 0x44b094
shr ebx, 0x10
test ebx, 0x2000
jne 0x44b094
xor eax, eax
jmp 0x44b099
mov eax, 1
push ecx
push edi
push eax
push dword [0x4a7b48]
call fcn.0044ece0
add esp, 0x10
jmp 0x44b3c8
test edx, edx
je case.0x44b20c.514
mov eax, dword [0x4a7b6c]
test eax, eax
je case.0x44b20c.514
cmp dword [eax + 0x1a8], 0
je case.0x44b20c.514
test ebx, ebx
jne case.0x44b20c.514
mov eax, dword [eax + 0x1e4]
cmp eax, 2
je 0x44b0e9
cmp eax, 4
jne 0x44b0f8
mov eax, dword [0x4a7b70]
cmp dword [eax + 0x70], 0
jne case.0x44b20c.514
push 0
push edi
push ecx
call fcn.00453050
add esp, 0xc
test eax, eax
je case.0x44b20c.514
jmp 0x44b3c8
mov eax, edi
and eax, 0xfff0
cmp eax, 0xf060
jne case.0x44b20c.514
mov eax, dword [0x4a7b6c]
test eax, eax
je 0x44b3c8
cmp dword [eax + 0x1a8], 0
je 0x44b3c8
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je 0x44b167
push ebx
push edi
push dword [ebp - 0x18]
call fcn.00452fe0
add esp, 0xc
test eax, eax
jne 0x44b3c8
mov ecx, dword [0x4a7b6c]
mov eax, dword [ecx + 0x1b0]
test eax, 0x800
jne 0x44b3c8
test eax, 0x8000
je 0x44b1b5
mov eax, dword [ecx + 0x1d8]
mov eax, dword [eax + 0x7c]
test eax, eax
je 0x44b3c8
push 0
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x4a7b6c]
mov dword [eax + 0x1b4], 0
jmp 0x44b3c8
mov eax, dword [0x4a7b74]
test eax, eax
je 0x44b3c8
mov ecx, 0xfffffffe
mov word [eax + 0x30], cx
jmp 0x44b3c8
test edx, edx
je case.0x44b20c.514
push ebx
push edi
push ecx
call fcn.004535c0
add esp, 0xc
jmp case.0x44b20c.514
cmp esi, 0x222
ja 0x44b2c4
je 0x44b259
lea eax, [esi - 0x201]
cmp eax, 9
ja case.0x44b20c.514
movzx eax, byte [eax + 0x44b44c]
jmp dword [eax*4 + 0x44b440]
test edx, edx
je 0x44b3c8
push ebx
push edi
push esi
call fcn.004213b0
add esp, 0xc
test eax, eax
jne 0x44b3c8
push ebx
push edi
push esi
push dword [ebp - 0x18]
call fcn.004532f0
add esp, 0x10
jmp 0x44b3c8
test edx, edx
je 0x44b3c8
push ebx
push edi
push ecx
call fcn.004535e0
add esp, 0xc
jmp 0x44b3c8
push dword [0x4a7b44]
call sub.MMFS2.dll_Ordinal_16
mov ecx, 0x800
test cx, ax
je case.0x44b20c.514
mov eax, dword [0x4a7b6c]
test dword [eax + 0x1b0], 0x2000000
jne case.0x44b20c.514
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x44b2a5
cmp dword [0x4a7b74], 0
je case.0x44b20c.514
call fcn.00424550
jmp case.0x44b20c.514
cmp eax, edi
jne case.0x44b20c.514
cmp dword [0x4a7b74], 0
je case.0x44b20c.514
call fcn.00425bc0
jmp case.0x44b20c.514
cmp esi, 0x311
ja 0x44b3a4
je 0x44b2ec
cmp esi, 0x233
je 0x44b38c
cmp esi, 0x30f
jne case.0x44b20c.514
mov edi, ecx
cmp dword [0x4a7b44], 0
je 0x44b3c8
cmp dword [0x4a7b50], 0
je 0x44b3c8
mov ebx, dword [sym.imp.USER32.dll_GetParent]
push ecx
mov esi, ecx
call ebx
test eax, eax
je 0x44b31e
push eax
mov esi, eax
call ebx
test eax, eax
jne 0x44b315
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x44b374
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 0x44b360
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.004689fb
mov esp, ebp
pop ebp
ret 0x10
test edx, edx
je case.0x44b20c.514
push ebx
push edi
push ecx
call fcn.004530d0
add esp, 0xc
jmp case.0x44b20c.514
cmp esi, 0x3b9
jne case.0x44b20c.514
test edx, edx
je 0x44b3c8
cmp edi, 4
je 0x44b3c8
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.004689fb
mov esp, ebp
pop ebp
ret 0x10