Function at 0x4085c0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x34
lea eax, [esp + 4]
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esi + 0x178]
push eax
push ecx
call edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub ebx, edx
mov edx, dword [esi + 0x178]
push 0
push 0x9f
push 0
push edx
sub ebp, ecx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 8
jne 0x408663
mov ecx, dword [esi + 0x17c]
lea eax, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x17c]
sub edi, edx
mov edx, dword [esp + 0x18]
sub edi, 3
push 0x40
push edi
push ebx
push edx
push eax
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esp + 0x18]
sub ebp, edi
add eax, edi
mov edi, dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x18], eax
jmp 0x408672
mov edx, dword [esi + 0x17c]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esp + 0x18]
lea eax, [ebp + 2]
push 0x40
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [ebx + 2]
dec edx
push ecx
mov ecx, dword [esi + 0x180]
dec eax
push edx
push eax
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov al, byte [esi + 0x3d65]
test al, al
jne 0x408788
mov ecx, esi
call fcn.0040dfb0
test al, al
je 0x4086d5
mov edx, dword [esi + 0x180]
mov edi, dword [sym.imp.USER32.dll_ShowScrollBar]
push 0
push 0
push edx
call edi
mov eax, dword [esi + 0x180]
push 0
push 1
push eax
call edi
jmp 0x4088db
mov eax, dword [esi + 0x4460]
mov edx, dword [esi + 0x180]
xor ecx, ecx
cmp ebp, eax
mov ebp, dword [sym.imp.USER32.dll_ShowScrollBar]
setl cl
push ecx
push 1
push edx
call ebp
mov ecx, dword [esi + 0x445c]
xor eax, eax
cmp ebx, ecx
mov ecx, dword [esi + 0x180]
setl al
push eax
push 0
push ecx
call ebp
mov eax, dword [esi + 0x180]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
sub ebx, eax
mov eax, dword [esi + 0x4460]
sub ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esi + 0x180]
setl dl
push edx
push 1
push eax
call ebp
mov eax, dword [esi + 0x445c]
mov edx, dword [esi + 0x180]
xor ecx, ecx
cmp ebx, eax
setl cl
push ecx
push 0
push edx
call ebp
mov ecx, dword [esi + 0x180]
lea eax, [esp + 0x14]
push eax
push ecx
call edi
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
sub ebx, ecx
sub ebp, eax
jmp 0x4088db
mov edx, dword [esi + 0x178]
push edx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x4088db
mov ebx, dword [sym.imp.USER32.dll_ShowScrollBar]
push eax
push eax
mov eax, dword [esi + 0x180]
push eax
call ebx
mov ecx, dword [esi + 0x180]
push 0
push 1
push ecx
call ebx
mov eax, dword [esi + 0x180]
lea edx, [esp + 0x14]
push edx
push eax
call edi
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub ebx, edx
sub ebp, ecx
cmp ebx, 1
jl 0x408a9f
cmp ebp, 1
jl 0x408a9f
xor eax, eax
mov ax, word [esi + 0x4402]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
shl ecx, 2
mov eax, ecx
cdq
idiv ebp
mov edi, eax
xor eax, eax
mov ax, word [esi + 0x4400]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
mov dword [esp + 0x10], eax
cdq
idiv ebx
cmp eax, edi
jle 0x408827
mov edi, eax
lea eax, [ecx + edi - 1]
mov ecx, dword [esp + 0x10]
cdq
idiv edi
push eax
lea eax, [ecx + edi - 1]
cdq
idiv edi
lea edx, [esp + 0x28]
push eax
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
sub eax, edx
cmp eax, ebx
jg 0x408866
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
sub ecx, edx
cmp ecx, ebp
jle 0x4088a0
xor eax, eax
inc edi
mov ax, word [esi + 0x4402]
lea ecx, [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*4 - 1]
cdq
idiv edi
push eax
xor eax, eax
mov ax, word [esi + 0x4400]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4 - 1]
cdq
idiv edi
push eax
push 0
push 0
push ecx
jmp 0x408844
lea ecx, [esi + 0x3b2c]
mov dword [esi + 0x3d68], 0x64
mov dword [esi + 0x3d6c], edi
call fcn.0041c630
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
sub edx, edi
sub eax, ecx
mov dword [esi + 0x445c], edx
mov dword [esi + 0x4460], eax
mov ecx, dword [esi + 0x445c]
cmp ebx, ecx
jle 0x4088f2
mov eax, ebx
sub eax, ecx
cdq
sub eax, edx
mov edi, eax
sar edi, 1
jmp 0x4088f6
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + 0x4460]
cmp ebp, ecx
jle 0x40890b
mov eax, ebp
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x40890f
mov eax, dword [esp + 0x18]
cmp ebp, ecx
mov edx, ebp
jl 0x408917
mov edx, ecx
mov ecx, dword [esi + 0x445c]
cmp ebx, ecx
jge 0x408923
mov ecx, ebx
push 0x40
push edx
push ecx
mov ecx, dword [esi + 0x170]
push eax
push edi
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esi + 0x445c]
cmp ebx, eax
jl 0x408944
mov ebx, eax
mov edi, dword [esi + 0x4460]
mov dword [esi + 0x4454], ebx
cmp ebp, edi
jl 0x408956
mov ebp, edi
mov cl, byte [esi + 0x3d65]
mov dword [esi + 0x4458], ebp
test cl, cl
mov dword [esi + 0x4448], eax
mov dword [esi + 0x4450], edi
jne 0x408a20
xor ecx, ecx
mov edx, eax
test ebx, ebx
setle cl
dec ecx
and ecx, ebx
sub edx, ecx
mov ecx, dword [esi + 0x4444]
cmp ecx, edx
jl 0x40899c
xor edx, edx
mov ecx, eax
test ebx, ebx
setle dl
dec edx
and edx, ebx
sub ecx, edx
test ecx, ecx
jge 0x4089a4
xor ebx, ebx
jmp 0x4089ce
xor ecx, ecx
mov edx, eax
test ebx, ebx
setle cl
dec ecx
and ecx, ebx
sub edx, ecx
mov ecx, dword [esi + 0x4444]
cmp ecx, edx
jge 0x4089c0
mov ebx, ecx
jmp 0x4089ce
xor ecx, ecx
test ebx, ebx
setle cl
dec ecx
and ecx, ebx
sub eax, ecx
mov ebx, eax
xor eax, eax
mov ecx, dword [esi + 0x444c]
test ebp, ebp
setle al
dec eax
mov edx, edi
and eax, ebp
sub edx, eax
cmp ecx, edx
jge 0x4089ea
mov eax, ecx
jmp 0x4089f8
xor edx, edx
mov eax, edi
test ebp, ebp
setle dl
dec edx
and edx, ebp
sub eax, edx
test eax, eax
jl 0x408a22
xor eax, eax
mov edx, edi
test ebp, ebp
setle al
dec eax
and eax, ebp
sub edx, eax
cmp ecx, edx
jge 0x408a12
mov edi, ecx
jmp 0x408a24
xor eax, eax
test ebp, ebp
setle al
dec eax
and eax, ebp
sub edi, eax
jmp 0x408a24
xor ebx, ebx
xor edi, edi
mov ecx, dword [esi + 0x170]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi + 0x444c]
mov ecx, dword [esi + 0x4444]
push 2
push 0
lea edx, [esp + 0x3c]
push 0
push edx
mov edx, dword [esi + 0x170]
sub eax, edi
push 0
sub ecx, ebx
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov al, byte [esi + 0x3d65]
mov dword [esi + 0x4444], ebx
test al, al
mov dword [esi + 0x444c], edi
jne 0x408a81
mov ecx, esi
call fcn.0040adf0
jmp 0x408a92
mov eax, dword [esi + 0x170]
push 0
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0x170]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret