Function at 0x472111
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c0
push ebx
push esi
push edi
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x1a8], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
cmp dword [eax + 0x44], 2
jne 0x472174
mov dword [ebp - 0x1a4], 1
jmp 0x47217e
mov dword [ebp - 0x1a4], 0
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
mov eax, dword [eax + 0x10]
dec eax
cmp eax, dword [ebp + 0xc]
jge 0x4721b6
mov dword [ebp - 0x184], 0xffffffff
jmp 0x472c4c
mov eax, dword [ebp - 0x164]
cmp dword [eax + 0x14], 0xffffffff
je 0x4721d8
mov eax, dword [ebp + 8]
push eax
call fcn.00471e36
add esp, 4
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x184], 4
je 0x4721f2
cmp dword [ebp - 0x184], 1
jne 0x4721f7
jmp 0x472c4c
mov eax, dword [ebp + 0xc]
mov ecx, eax
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
shl eax, 2
add eax, dword [ebp - 0x164]
add eax, 0x1c
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x18c]
lea ecx, [ebp - 0x3c]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x25], 0x10
je 0x4722b1
push 2
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_LPtoDP]
inc dword [ebp - 0x3c]
inc dword [ebp - 0x38]
push 2
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_DPtoLP]
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x3c]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x15c]
push eax
mov eax, dword [ebp - 0x148]
push eax
call fcn.004e3d42
add esp, 8
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x24], 4
je 0x4722f5
inc dword [ebp - 0x15c]
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x24], 8
je 0x47230b
inc dword [ebp - 0x158]
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ecx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x148]
push eax
call fcn.004e3d96
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp - 0x3c]
sub eax, ecx
neg eax
sub dword [ebp - 0x18], eax
xor eax, eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x38]
sub eax, ecx
neg eax
sub dword [ebp - 0x14], eax
push 1
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_LPtoDP]
lea eax, [ebp - 0x17c]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_GetViewportOrgEx]
mov eax, dword [ebp - 0x17c]
neg eax
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x178]
neg eax
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x25], 0x20
je 0x472575
push 0
push 0
push 6
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [ebp + 0x14], 0
mov dword [ebp + 0x10], 0
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x18]
push eax
call fcn.004d96e6
add esp, 8
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x18c]
lea ecx, [ebp - 0x1b8]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x160]
add eax, 0x50
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x1b0]
sub eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x160]
sub eax, dword [ecx + 0x24]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x19c]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x1c0], eax
jmp 0x47249d
mov dword [ebp - 0x1a0], 0
jmp 0x4724bc
mov eax, dword [ebp - 0x1a0]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1a0], eax
jmp 0x4724bc
cmp dword [ebp - 0x1c0], 0
je 0x472472
cmp dword [ebp - 0x1c0], 6
je 0x472481
jmp 0x4724bc
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
add eax, dword [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 0x24]
add eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 0x28]
add eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x18]
push eax
call fcn.004d9749
add esp, 4
mov eax, dword [0x533394]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x154], eax
push 0x5a0049
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [ebp - 0x148]
push eax
call fcn.004df750
add esp, 0xc
mov eax, dword [ebp - 0x154]
push eax
mov eax, dword [ebp - 0x148]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x194], 1
jmp 0x4728e6
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x24], 4
jne 0x472595
mov eax, dword [ebp - 0x18c]
test byte [eax + 0x24], 8
je 0x4725cc
mov eax, dword [ebp - 0x14]
add eax, 4
push eax
mov eax, dword [ebp - 0x18]
add eax, 4
push eax
push 4
push 4
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [ebp - 0x10]
push eax
push 0
push 0x476
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x188]
add eax, dword [ecx + 4]
movzx eax, ax
shl eax, 0x10
mov ecx, dword [ebp - 0x18c]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x188]
add ecx, dword [edx]
movzx ecx, cx
or eax, ecx
push eax
push 0
push 0x475
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
mov eax, dword [ebp - 0x158]
push eax
mov eax, dword [ebp - 0x15c]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push 0
push 0
push 0x469
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x18]
push eax
call fcn.004d96e6
add esp, 8
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0x164]
mov eax, dword [eax + 0x18]
sub eax, dword [ebp + 0xc]
cmp eax, 1
sbb eax, eax
inc eax
push eax
push 0x10
mov eax, dword [ebp - 0x160]
add eax, 0x20
push eax
call fcn.004e43fc
add esp, 0xc
mov eax, dword [ebp - 0x188]
test byte [eax + 0x10], 8
je 0x4726c1
push 1
push 8
mov eax, dword [ebp - 0x160]
add eax, 0x20
push eax
call fcn.004e43fc
add esp, 0xc
mov eax, dword [ebp - 0x188]
test byte [eax + 0x10], 0x10
je 0x4726db
mov dword [ebp - 0x1a8], 0x2000
mov eax, dword [ebp - 0x160]
push eax
mov eax, dword [ebp - 0x1a8]
or eax, 0x102
push eax
push 0x470
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x160]
cmp dword [eax], 2
jne 0x47287a
mov eax, dword [ebp - 0x160]
cmp dword [eax + 4], 0
je 0x47287a
mov eax, dword [ebp - 0x160]
cmp dword [eax + 0x18], 0
je 0x47287a
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 8]
add eax, dword [ebp - 0x160]
add eax, 0x50
mov dword [ebp - 0x198], eax
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 0x10]
lea eax, [eax + eax*4]
shl eax, 4
mov ecx, dword [ebp - 0x160]
mov ecx, dword [ecx + 0x14]
shl ecx, 4
lea ecx, [ecx + ecx*2]
add eax, ecx
add eax, dword [ebp - 0x160]
add eax, 0x50
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x198]
test byte [eax + 0x10], 1
jne 0x47287a
mov eax, dword [ebp - 0x198]
test byte [eax + 0x10], 0x20
jne 0x47287a
lea eax, [ebp - 0x144]
push eax
mov eax, dword [ebp - 0x160]
mov eax, dword [eax + 0x18]
push eax
mov eax, dword [ebp - 0x150]
push eax
mov eax, dword [ebp - 0x198]
mov ecx, dword [eax + 0x1c]
push ecx
mov eax, dword [eax + 0x18]
push eax
call fcn.00503e4c
add esp, 0x14
mov dword [ebp - 0x1c], eax
push 0x7d000000
push 0
push 0x478
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x1c], 0
je 0x472820
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x164]
mov dword [ecx + 0x14], eax
push 0
push 0
push 0x47d
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x472861
push 0
push 1
mov eax, dword [ebp - 0x198]
add eax, 0x10
push eax
call fcn.004e43fc
add esp, 0xc
lea eax, [ebp - 0x144]
push eax
push 0x1003
push 0x47b
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x190], 1
push 0
push 0
push 0x474
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x160]
test byte [eax + 0x20], 4
je 0x472891
mov dword [ebp + 0x14], 1
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x18]
push eax
call fcn.004d9749
add esp, 4
cmp dword [0x531b54], 0
je 0x4728e6
mov eax, dword [ebp - 0x188]
cmp dword [eax + 0x44], 2
jne 0x4728e6
mov eax, dword [ebp - 0x18c]
mov eax, dword [eax + 0x28]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x18]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x38]
push eax
call fcn.00470f27
add esp, 0xc
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x148]
push eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebp + 0x18], 0
je 0x472930
push 0
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_ValidateRect]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x164]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x158]
add eax, dword [ebp - 0x38]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x15c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x1b4]
sub eax, 0xa
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
jl 0x4729bf
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x1ac]
add eax, 0xa
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jge 0x4729a1
mov dword [ebp - 0x174], 0
jmp 0x4729bf
mov eax, dword [ebp - 0x174]
cmp dword [ebp - 0x14c], eax
jge 0x4729bf
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x1ac]
sub eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x38]
cmp eax, ecx
jge 0x472a00
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x472a00
mov dword [ebp - 0x174], 0
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x1b8]
sub eax, 0xa
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0
jl 0x472a6b
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x1b0]
add eax, 0xa
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
jge 0x472a4d
mov dword [ebp - 0x170], 0
jmp 0x472a6b
mov eax, dword [ebp - 0x170]
cmp dword [ebp - 0x14c], eax
jge 0x472a6b
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x1b0]
sub eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp - 0x3c]
cmp eax, ecx
jge 0x472aac
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x472aac
mov dword [ebp - 0x170], 0
mov eax, dword [ebp - 0x188]
test byte [eax + 0x10], 0x10
jne 0x472b2e
cmp dword [ebp - 0x170], 0
je 0x472af5
push 0
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x170]
movzx eax, ax
shl eax, 0x10
mov al, 4
push eax
push 0x114
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x174], 0
je 0x472b2e
push 0
mov eax, dword [ebp - 0x16c]
add eax, dword [ebp - 0x174]
movzx eax, ax
shl eax, 0x10
mov al, 4
push eax
push 0x115
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x472b65
cmp dword [ebp - 0x194], 0
jne 0x472b65
push 5
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0x188]
cmp dword [eax + 0x44], 2
jne 0x472bdb
push 0
push 0
push 0x46f
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x190], 0
je 0x472bdb
mov eax, dword [ebp - 0x180]
push eax
push 0x103
push 0x46e
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x474
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x14], 0
je 0x472c01
push 0x7fff0000
push 0
push 0x478
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp + 0x10], 0
je 0x472c21
push 0
push 1
push 6
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 0x1a4], 0
je 0x472c4c
push 0
mov eax, dword [ebp - 0x1bc]
push eax
push 0x4d1
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [ebp - 0x184]
jmp 0x472c71
pop edi
pop esi
pop ebx
leave
ret