Function at 0x404fb0
Capabilities:
Hide graphical window

Disassembly:
sub esp, 0x34
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_GetClientRect]
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0x178]
lea eax, [esp + 0x14]
push eax
push ecx
call ebp
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
push 0
push 0x9f
sub edi, edx
mov edx, dword [esi + 0x178]
push 0
push edx
sub ebx, ecx
call dword [sym.imp.USER32.dll_GetSystemMenu]
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 8
jne 0x405053
mov ecx, dword [esi + 0x17c]
lea eax, [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x17c]
push 0x40
sub ebp, edx
mov edx, dword [esp + 0x1c]
sub ebp, 3
push ebp
push edi
push edx
push eax
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esp + 0x18]
sub ebx, ebp
add eax, ebp
mov ebp, dword [sym.imp.USER32.dll_GetClientRect]
mov dword [esp + 0x18], eax
jmp 0x405062
mov edx, dword [esi + 0x17c]
push 0
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [esp + 0x18]
push 0x40
lea eax, [ebx + 2]
push eax
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 2]
push ecx
mov ecx, dword [esi + 0x180]
dec edx
push edx
dec eax
push eax
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov al, byte [esi + 0x3d65]
test al, al
jne 0x405172
mov ecx, esi
call fcn.0040bb30
test al, al
mov edx, dword [esi + 0x180]
je 0x4050c5
mov ebp, dword [sym.imp.USER32.dll_ShowScrollBar]
push 0
push 0
push edx
call ebp
mov eax, dword [esi + 0x180]
push 0
push 1
push eax
call ebp
jmp 0x4052a7
mov eax, dword [esi + 0x4220]
xor ecx, ecx
cmp ebx, eax
mov ebx, dword [sym.imp.USER32.dll_ShowScrollBar]
setl cl
push ecx
push 1
push edx
call ebx
mov ecx, dword [esi + 0x421c]
xor eax, eax
cmp edi, ecx
mov ecx, dword [esi + 0x180]
setl al
push eax
push 0
push ecx
call ebx
mov eax, dword [esi + 0x180]
lea edx, [esp + 0x14]
push edx
push eax
call ebp
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
sub edi, eax
mov eax, dword [esi + 0x4220]
sub ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [esi + 0x180]
setl dl
push edx
push 1
push eax
call ebx
mov eax, dword [esi + 0x421c]
mov edx, dword [esi + 0x180]
xor ecx, ecx
cmp edi, eax
setl cl
push ecx
push 0
push edx
call ebx
mov ecx, dword [esi + 0x180]
lea eax, [esp + 0x14]
push eax
push ecx
call ebp
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
sub edi, ecx
sub ebx, eax
jmp 0x4052a7
mov edx, dword [esi + 0x178]
push edx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x4052a7
mov edi, dword [sym.imp.USER32.dll_ShowScrollBar]
push eax
push eax
mov eax, dword [esi + 0x180]
push eax
call edi
mov ecx, dword [esi + 0x180]
push 0
push 1
push ecx
call edi
mov eax, dword [esi + 0x180]
lea edx, [esp + 0x14]
push edx
push eax
call ebp
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub edi, edx
sub ebx, ecx
cmp edi, 1
jl 0x40546b
cmp ebx, 1
jl 0x40546b
movzx ecx, word [esi + 0x41c6]
imul ecx, ecx, 0x64
mov eax, ecx
cdq
idiv ebx
mov ebp, eax
movzx eax, word [esi + 0x41c4]
imul eax, eax, 0x64
mov dword [esp + 0x10], eax
cdq
idiv edi
cmp eax, ebp
jle 0x405201
mov ebp, eax
lea eax, [ecx + ebp - 1]
cdq
idiv ebp
mov ecx, dword [esp + 0x10]
push eax
lea eax, [ecx + ebp - 1]
cdq
idiv ebp
lea edx, [esp + 0x28]
push eax
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x24]
cmp eax, edi
jg 0x40523c
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x28]
cmp ecx, ebx
jle 0x40526c
movzx edx, word [esi + 0x41c6]
imul edx, edx, 0x64
inc ebp
lea eax, [edx + ebp - 1]
cdq
idiv ebp
lea ecx, [esp + 0x24]
push eax
movzx eax, word [esi + 0x41c4]
imul eax, eax, 0x64
lea eax, [eax + ebp - 1]
cdq
idiv ebp
push eax
push 0
push 0
push ecx
jmp 0x40521e
lea ecx, [esi + 0x3b2c]
mov dword [esi + 0x3d68], 0x64
mov dword [esi + 0x3d6c], ebp
call fcn.004199c0
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
sub edx, ebp
sub eax, ecx
mov dword [esi + 0x421c], edx
mov dword [esi + 0x4220], eax
mov ecx, dword [esi + 0x421c]
cmp edi, ecx
jle 0x4052be
mov eax, edi
sub eax, ecx
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
jmp 0x4052c2
mov ebp, dword [esp + 0x14]
mov ecx, dword [esi + 0x4220]
cmp ebx, ecx
jle 0x4052d7
mov eax, ebx
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
jmp 0x4052db
mov eax, dword [esp + 0x18]
cmp ebx, ecx
mov edx, ebx
jl 0x4052e3
mov edx, ecx
mov ecx, dword [esi + 0x421c]
cmp edi, ecx
jge 0x4052ef
mov ecx, edi
push 0x40
push edx
push ecx
mov ecx, dword [esi + 0x170]
push eax
push ebp
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov eax, dword [esi + 0x421c]
cmp edi, eax
jl 0x405310
mov edi, eax
mov ebp, dword [esi + 0x4220]
cmp ebx, ebp
mov dword [esi + 0x4214], edi
jl 0x405322
mov ebx, ebp
mov cl, byte [esi + 0x3d65]
test cl, cl
mov dword [esi + 0x4218], ebx
mov dword [esi + 0x4208], eax
mov dword [esi + 0x4210], ebp
jne 0x4053ec
xor ecx, ecx
test edi, edi
setle cl
mov edx, eax
dec ecx
and ecx, edi
sub edx, ecx
mov ecx, dword [esi + 0x4204]
cmp ecx, edx
jl 0x405368
xor edx, edx
test edi, edi
setle dl
mov ecx, eax
dec edx
and edx, edi
sub ecx, edx
test ecx, ecx
jge 0x405370
xor edi, edi
jmp 0x40539a
xor ecx, ecx
test edi, edi
setle cl
mov edx, eax
dec ecx
and ecx, edi
sub edx, ecx
mov ecx, dword [esi + 0x4204]
cmp ecx, edx
jge 0x40538c
mov edi, ecx
jmp 0x40539a
xor ecx, ecx
test edi, edi
setle cl
dec ecx
and ecx, edi
sub eax, ecx
mov edi, eax
mov ecx, dword [esi + 0x420c]
xor eax, eax
test ebx, ebx
setle al
mov edx, ebp
dec eax
and eax, ebx
sub edx, eax
cmp ecx, edx
jge 0x4053b6
mov eax, ecx
jmp 0x4053c4
xor edx, edx
test ebx, ebx
setle dl
mov eax, ebp
dec edx
and edx, ebx
sub eax, edx
test eax, eax
jl 0x4053ee
xor eax, eax
test ebx, ebx
setle al
mov edx, ebp
dec eax
and eax, ebx
sub edx, eax
cmp ecx, edx
jge 0x4053de
mov ebp, ecx
jmp 0x4053f0
xor eax, eax
test ebx, ebx
setle al
dec eax
and eax, ebx
sub ebp, eax
jmp 0x4053f0
xor edi, edi
xor ebp, ebp
mov ecx, dword [esi + 0x170]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [esi + 0x420c]
mov ecx, dword [esi + 0x4204]
push 2
push 0
push 0
lea edx, [esp + 0x40]
push edx
mov edx, dword [esi + 0x170]
push 0
sub eax, ebp
push eax
sub ecx, edi
push ecx
push edx
call dword [sym.imp.USER32.dll_ScrollWindowEx]
mov al, byte [esi + 0x3d65]
test al, al
mov dword [esi + 0x4204], edi
mov dword [esi + 0x420c], ebp
jne 0x40544d
mov ecx, esi
call fcn.00404310
jmp 0x40545e
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