Function at 0x45859c9
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [0x4612008]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
push esi
push edi
mov edi, edx
mov dword [esp + 0x14], ebx
mov esi, dword [ebx + 0x218]
mov dword [esp + 0xc], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], edi
cmp esi, 0x83
ja 0x45856f6
je 0x45855d3
lea eax, [esi - 7]
cmp eax, 0x19
ja case.0x45858b2.516
movzx eax, byte [eax + 0x4585b58]
jmp dword [eax*4 + 0x4585b40]
or dword [ebx + 0x2c], 0x100
push dword [ebp + 0x10]
push ecx
jmp 0x45854e0
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, dword [ebx + 0x204]
mov dword [ebx + 0x258], eax
mov dword [ebx + 0x25c], edx
cmp esi, dword [ecx + 4]
je 0x45854d7
mov edx, dword [ebx + 0x2c]
mov ecx, ebx
mov eax, edx
shr edx, 3
not dl
and eax, 0xfffffff7
and dl, 1
mov dword [ebx + 0x2c], eax
call fcn.0459b120
mov esi, dword [ebp + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
push edi
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_CallWindowProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x23c]
sub eax, dword [ebx + 0x234]
cmp eax, 1
jg 0x4585492
lea eax, [esp + 0x38]
push eax
push edi
call dword [sym.imp.USER32.dll_BeginPaint]
lea eax, [esp + 0x38]
push eax
push edi
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov edx, ebx
mov ecx, edi
call fcn.04585c30
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x28]
push eax
mov dword [esp + 0x20], eax
lea eax, [ebx + 0x230]
push ecx
push eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.USER32.dll_PtInRect]
neg eax
sbb eax, eax
neg eax
add eax, 0x7f00
push eax
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov eax, ecx
test eax, eax
je 0x45856ed
movzx ecx, word [ebx + 0x210]
test cx, cx
je 0x45856ed
test cl, 3
je 0x45856ed
lea eax, [esp + 0x18]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, eax
mov eax, dword [esp + 0x14]
push dword [eax + 8]
push ebx
call edi
mov ecx, dword [esp + 0x20]
mov esi, eax
sub ecx, dword [esp + 0x18]
lea eax, [esp + 0x28]
push 0x400
push eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x2c]
sub ecx, dword [esp + 0x24]
push 2
push 0x4607484
push ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x48], ecx
call dword [sym.imp.USER32.dll_DrawTextW]
push esi
push ebx
call edi
push ebx
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [esp + 0x24]
sub edi, dword [esp + 0x1c]
mov esi, dword [ebp + 0x10]
mov eax, edi
sub eax, dword [esp + 0x34]
add eax, dword [esp + 0x2c]
cdq
mov ebx, dword [esi + 8]
sub eax, edx
inc dword [esi]
mov edx, eax
mov eax, dword [esi + 4]
dec ebx
sar edx, 1
mov dword [esp + 0x10], eax
mov dword [esi + 8], ebx
lea ecx, [edx + eax]
mov eax, dword [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
sub eax, edx
mov dword [esi + 0xc], eax
test byte [ecx + 0x210], 2
je 0x45856d7
lea eax, [ebx - 0x14]
mov dword [esi + 8], eax
test byte [ecx + 0x210], 1
jne 0x45856d7
mov eax, dword [esp + 0x10]
dec eax
add eax, edi
mov dword [esi + 4], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0xc], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
push eax
jmp 0x45854e0
cmp esi, 0x200
ja 0x458589a
je 0x45857b7
mov eax, esi
sub eax, 0x84
je 0x458576f
sub eax, 1
je 0x4585750
sub eax, 0x7d
jne case.0x45858b2.516
cmp ecx, 0xd
je 0x4585731
cmp ecx, 0x1b
jne case.0x45858b2.516
or dword [ebx + 0x2c], 8
push dword [ebx + 0x14]
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov edx, ebx
mov ecx, edi
call fcn.04585c30
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp + 0x10]
movsx edi, ax
shr eax, 0x10
movsx esi, ax
lea eax, [esp + 0x28]
push eax
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
sub esi, dword [esp + 0x2c]
lea eax, [ebx + 0x230]
sub edi, dword [esp + 0x28]
push esi
push edi
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
test byte [ebx + 0x210], 2
je case.0x45858b2.516
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x28]
test byte [ebx + 0x210], 1
push ecx
mov dword [esp + 0x1c], eax
push eax
mov dword [esp + 0x24], ecx
lea eax, [ebx + 0x240]
jne 0x458580a
lea eax, [ebx + 0x220]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov ecx, dword [ebx + 0x214]
test eax, eax
mov eax, ecx
setne dl
and eax, 0x80
test dl, dl
je 0x4585862
test eax, eax
jne case.0x45858b2.516
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x10
push eax
mov dword [esp + 0x30], 2
mov dword [esp + 0x38], 1
mov dword [esp + 0x34], edi
call dword [sym.imp.USER32.dll_TrackMouseEvent]
or dword [ebx + 0x214], 0x80
jmp 0x4585876
test eax, eax
je case.0x45858b2.516
and ecx, 0xffffff7f
mov dword [ebx + 0x214], ecx
push edi
call dword [sym.imp.USER32.dll_GetWindowDC]
mov esi, eax
mov ecx, ebx
push 1
mov edx, esi
call fcn.04585100
add esp, 4
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x45854d7
lea eax, [esi - 0x201]
cmp eax, 0xa2
ja case.0x45858b2.516
movzx eax, byte [eax + 0x4585b88]
jmp dword [eax*4 + 0x4585b74]
mov eax, dword [ebx + 0x204]
mov eax, dword [eax + 4]
test eax, eax
je case.0x45858b2.516
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je case.0x45858b2.516
cmp dword [ebp + 0xc], 6
jne case.0x45858b2.516
mov eax, dword [ebx + 0x1f8]
lea edx, [ebx + 0x1f0]
sub eax, dword [edx]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 0xc]
sub eax, dword [edx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x200]
mov eax, dword [eax + 4]
test eax, eax
je 0x458591a
push edx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea edx, [ebx + 0x1f0]
mov ecx, dword [edx + 0xc]
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [edx + 4], ecx
mov dword [edx + 0xc], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [edx]
sub eax, ecx
sub eax, dword [esp + 0x10]
cdq
sub eax, edx
mov edx, dword [esp + 0x10]
sar eax, 1
add eax, ecx
mov dword [ebx + 0x1f0], eax
lea ecx, [eax + edx]
mov dword [ebx + 0x1f8], ecx
mov ecx, dword [ebx + 0x204]
mov ecx, dword [ecx + 4]
test ecx, ecx
je case.0x45858b2.516
push 1
push dword [esp + 0x18]
push edx
push dword [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_MoveWindow]
jmp case.0x45858b2.516
mov eax, dword [ebx + 0x214]
test al, al
jns 0x4585492
and eax, 0xffffff7f
push edi
mov dword [ebx + 0x214], eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov esi, eax
mov ecx, ebx
push 1
mov edx, esi
call fcn.04585100
add esp, 4
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
test byte [ebx + 0x210], 2
je case.0x45858b2.516
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x28]
test byte [ebx + 0x210], 1
push ecx
mov dword [esp + 0x1c], eax
push eax
mov dword [esp + 0x24], ecx
lea eax, [ebx + 0x240]
jne 0x4585a1c
lea eax, [ebx + 0x220]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
setne al
test al, al
je case.0x45858b2.516
mov eax, dword [ebx + 0x204]
or dword [ebx + 0x214], 8
mov eax, dword [eax + 4]
test eax, eax
je 0x4585a87
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4585a87
mov eax, dword [ebx + 0x204]
mov eax, dword [eax + 4]
test eax, eax
je 0x4585a8e
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
push edi
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
mov ecx, ebx
call fcn.0459aea0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
push edi
call dword [sym.imp.USER32.dll_DefWindowProcW]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc
test byte [ebx + 0x210], 2
je case.0x45858b2.516
and dword [ebx + 0x214], 0xfffffff7
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x28]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x28]
test byte [ebx + 0x210], 1
push ecx
mov dword [esp + 0x1c], eax
push eax
mov dword [esp + 0x24], ecx
lea eax, [ebx + 0x240]
jne 0x4585b0a
lea eax, [ebx + 0x220]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
setne al
test al, al
je case.0x45858b2.516
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
push edi
call dword [sym.imp.USER32.dll_DefWindowProcW]
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.045bc602
mov esp, ebp
pop ebp
ret 0xc