Function at 0x471530
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c8
mov eax, dword [0x4f91bc]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x94], edx
mov esi, ecx
mov dword [ebp - 0x90], eax
call fcn.0046dec0
mov cl, byte [0x4f9b62]
mov edi, eax
test cl, cl
je 0x471579
push 0x4fe3f0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cl, byte [0x4f9b62]
mov edi, dword [edi + 8]
test cl, cl
je 0x47158b
push 0x4fe3f0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x471728
cmp dword [esi], 0
jne 0x47159f
call fcn.00472560
jmp 0x4715a4
call fcn.00472440
test eax, eax
jns 0x4715be
mov eax, 0x80040901
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
push 0x60
call fcn.00482865
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4715e4
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
movups xmm0, xmmword [esi]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [ebx + 0x20], xmm0
movups xmm0, xmmword [esi + 0x30]
movups xmmword [ebx + 0x30], xmm0
movups xmm0, xmmword [esi + 0x40]
movups xmmword [ebx + 0x40], xmm0
movups xmm0, xmmword [esi + 0x50]
movups xmmword [ebx + 0x50], xmm0
call fcn.0046dec0
mov cl, byte [0x4f9b62]
mov esi, eax
test cl, cl
je 0x471634
push 0x4fe3f0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cl, byte [0x4f9b62]
mov eax, dword [esi + 0x368]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0xa0], eax
test cl, cl
je 0x471657
push 0x4fe3f0
call esi
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x47173e
cmp dword [ebp - 0x94], 0
jne 0x47173e
cmp dword [ebp - 0x90], 0
jne 0x47173e
call fcn.0046dec0
mov cl, byte [0x4f9b62]
mov dword [ebp - 0x98], eax
test cl, cl
je 0x4716a5
push 0x4fe3f0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov cl, byte [0x4f9b62]
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x3b0]
mov dword [ebp - 0x98], eax
test cl, cl
je 0x4716c2
push 0x4fe3f0
call esi
mov eax, dword [ebp - 0x98]
push eax
push ebx
call dword [ebp - 0xa0]
test al, al
jne 0x4716fd
test edi, edi
jne 0x4716dc
mov ecx, 0x80040902
call fcn.00478610
push 0x60
push ebx
call fcn.0048289d
add esp, 8
mov eax, 0x80004004
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
call fcn.0046dec0
mov ecx, eax
call fcn.0046c670
test eax, eax
jne 0x47173e
call fcn.0046dec0
mov ecx, eax
call fcn.0046c730
test eax, eax
jne 0x47173e
push 0x60
push ebx
call fcn.0048289d
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
push ebx
call fcn.0046dec0
mov ecx, eax
call fcn.0046c6b0
mov dl, 1
mov cl, dl
call fcn.00478230
call fcn.0046df40
test al, al
je 0x47176b
push 1
call fcn.0046dec0
mov ecx, eax
call fcn.0046cfb0
mov esi, dword [ebp - 0x94]
test esi, esi
jne 0x471788
cmp dword [ebp - 0x90], esi
jne 0x471788
test edi, edi
jne 0x471788
mov ecx, ebx
call fcn.00472600
mov eax, dword [ebx]
xor dl, dl
mov dword [ebp - 0xa0], edx
test eax, eax
jne 0x47179b
mov ecx, dword [ebx + 0x14]
jmp 0x47179e
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jne 0x4717c1
test eax, eax
jne 0x4717ab
mov eax, dword [ebx + 0x18]
jmp 0x4717ae
mov eax, dword [ebx + 0x14]
test eax, eax
movzx edx, dl
mov ecx, 1
cmove edx, ecx
mov dword [ebp - 0xa0], edx
call fcn.0046df40
mov ecx, ebx
test al, al
je 0x471a48
call fcn.0046df90
test al, al
je 0x4718d9
test edi, edi
je 0x47183b
mov ecx, edi
call fcn.0046df90
test al, al
jne 0x47183b
cmp dword [edi], 0
jne 0x4717f6
mov eax, dword [edi + 0x14]
jmp 0x4717f9
mov eax, dword [edi + 0x10]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb60
cmp dword [edi], 0
jne 0x471810
mov eax, dword [edi + 0x18]
jmp 0x471813
mov eax, dword [edi + 0x14]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cbb0
call fcn.0046dec0
mov ecx, eax
call fcn.0046cd30
push eax
push 0xfffffffffffffff0
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
call fcn.0046e0f0
mov esi, eax
call fcn.0046e130
cmp esi, eax
je 0x47185a
push 0
call fcn.0046e0f0
push eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
call fcn.0046e0f0
mov esi, eax
call fcn.0046e130
cmp esi, eax
jne 0x471893
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb20
test eax, eax
je 0x471893
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb20
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_SetMenu]
mov esi, dword [ebp - 0x94]
cmp byte [ebp + 0xc], 0
jne 0x471bfe
push dword [ebp - 0x90]
mov edx, ebx
mov ecx, edi
push esi
call fcn.00472390
add esp, 8
test al, al
je 0x471bfe
test edi, edi
je 0x471b1c
cmp dword [edi], 0
jne 0x471b1c
call fcn.004733f0
jmp 0x471b21
test edi, edi
je 0x4718ec
mov ecx, edi
call fcn.0046df90
test al, al
je 0x47199b
call fcn.0046dec0
mov ecx, eax
call fcn.0046cca0
push 0x2c
mov esi, eax
push 0
push esi
call fcn.004849f0
add esp, 0xc
mov dword [esi], 0x2c
push esi
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_GetWindowPlacement]
push 0xffffffffffffffec
call fcn.0046e130
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
push eax
call esi
shr eax, 3
and al, 1
mov byte [ebp - 0x98], al
push dword [ebp - 0x98]
call fcn.0046dec0
mov ecx, eax
call fcn.0046cd70
push 0xfffffffffffffff0
call fcn.0046e130
push eax
call esi
and eax, 0xdeffffff
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cce0
test edi, edi
je 0x47199b
cmp dword [edi], 0
jne 0x471971
mov eax, dword [edi + 0x14]
jmp 0x471974
mov eax, dword [edi + 0x10]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cc00
cmp dword [edi], 0
jne 0x47198b
mov eax, dword [edi + 0x18]
jmp 0x47198e
mov eax, dword [edi + 0x14]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cc50
push 0
call fcn.0046e0f0
push eax
mov eax, dword [sym.imp.USER32.dll_ShowWindow]
call eax
push 0x80080000
push 0xfffffffffffffff0
call fcn.0046e0f0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
call fcn.0046e0f0
mov esi, eax
call fcn.0046e130
cmp esi, eax
jne 0x4719f4
call fcn.0046e0f0
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cad0
push 0
call fcn.0046e0f0
push eax
call dword [sym.imp.USER32.dll_SetMenu]
push 0x2c
lea eax, [ebp - 0x6c]
push 0
push eax
call fcn.004849f0
add esp, 0xc
mov dword [ebp - 0x6c], 0x2c
lea eax, [ebp - 0x6c]
push eax
call fcn.0046e0f0
push eax
call dword [sym.imp.USER32.dll_GetWindowPlacement]
mov eax, dword [ebp - 0x68]
test al, 2
je 0x471893
and eax, 0xfffffffd
mov dword [ebp - 0x64], 9
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x6c]
push eax
call fcn.0046e0f0
push eax
call dword [sym.imp.USER32.dll_SetWindowPlacement]
jmp 0x471893
call fcn.0046df90
test al, al
je 0x471abc
test edi, edi
je 0x471899
mov ecx, edi
call fcn.0046df90
test al, al
jne 0x471899
cmp dword [edi], 0
jne 0x471a72
mov eax, dword [edi + 0x14]
jmp 0x471a75
mov eax, dword [edi + 0x10]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb60
cmp dword [edi], 0
jne 0x471a8c
mov eax, dword [edi + 0x18]
jmp 0x471a8f
mov eax, dword [edi + 0x14]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cbb0
call fcn.0046dec0
mov ecx, eax
call fcn.0046cd30
push eax
push 0xfffffffffffffff0
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp 0x471899
test edi, edi
je 0x471899
mov ecx, edi
call fcn.0046df90
test al, al
je 0x471899
cmp dword [edi], 0
jne 0x471add
mov eax, dword [edi + 0x14]
jmp 0x471ae0
mov eax, dword [edi + 0x10]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cc00
cmp dword [edi], 0
jne 0x471b07
mov eax, dword [edi + 0x18]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cc50
jmp 0x471899
mov eax, dword [edi + 0x14]
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cc50
jmp 0x471899
call fcn.004753b0
mov esi, eax
test esi, esi
jns 0x471b3d
cmp esi, 0x88760868
jne 0x471b5d
push 1
call fcn.0046dec0
mov ecx, eax
call fcn.0046d6a0
mov ecx, ebx
call fcn.0046df90
test al, al
je 0x471c73
call fcn.0046dec0
mov ecx, eax
call fcn.0046d1c0
jmp 0x471c7f
cmp esi, 0x80040908
je 0x471bd0
cmp esi, 0x80040903
je 0x471bd0
push edi
call fcn.0046dec0
mov ecx, eax
call fcn.0046c6b0
push dword [ebp + 0x10]
mov edx, dword [ebp - 0x94]
mov ecx, ebx
push 1
push dword [ebp - 0x90]
call fcn.00471530
add esp, 0xc
test eax, eax
jns 0x471bb4
call fcn.0047a980
mov eax, 0x80040905
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
xor dl, dl
xor cl, cl
call fcn.00478230
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x471bdf
push 0x60
push edi
call fcn.0048289d
add esp, 8
mov ecx, esi
call fcn.00478610
call fcn.0047a980
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x471c09
xor cl, cl
call fcn.004795e0
cmp dword [ebx], 0
jne 0x471c17
mov ecx, esi
call fcn.00472e60
jmp 0x471c22
mov ecx, dword [ebp - 0x90]
call fcn.00474bf0
mov esi, eax
test esi, esi
jns 0x471b3d
test edi, edi
je 0x471c3b
push 0x60
push edi
call fcn.0048289d
add esp, 8
mov cl, 1
call fcn.004795e0
mov ecx, esi
call fcn.00478610
xor dl, dl
xor cl, cl
call fcn.00478230
push 0
call fcn.0046dec0
mov ecx, eax
call fcn.0046cfb0
mov eax, esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482854
mov esp, ebp
pop ebp
ret
call fcn.0046dec0
mov ecx, eax
call fcn.0046d180
mov cl, al
call fcn.00477e10
mov ecx, ebx
call fcn.00479680
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046ca80
call fcn.00479e50
test edi, edi
je 0x471cff
mov ecx, edi
call fcn.0046df90
test al, al
jne 0x471cff
mov ecx, ebx
call fcn.0046df90
test al, al
je 0x471cff
call fcn.0046dec0
mov ecx, eax
call fcn.0046cca0
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_SetWindowPlacement]
call fcn.0046dec0
mov ecx, eax
call fcn.0046cdc0
push 0xb
push 0
xor ecx, ecx
test al, al
push 0
push 0
setne cl
add ecx, 0xfffffffe
push 0
push ecx
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, ebx
mov byte [ebp - 0x99], 0
call fcn.0046df90
test al, al
je 0x47230f
cmp byte [ebp - 0xa0], 0
jne 0x47230f
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_IsIconic]
mov esi, dword [sym.imp.USER32.dll_GetClientRect]
test eax, eax
je 0x471dfc
push 0x2c
lea eax, [ebp - 0x6c]
push 0
push eax
call fcn.004849f0
add esp, 0xc
mov dword [ebp - 0x6c], 0x2c
lea eax, [ebp - 0x6c]
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_GetWindowPlacement]
test byte [ebp - 0x68], 2
je 0x471db1
cmp dword [ebp - 0x64], 2
jne 0x471db1
push 9
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea eax, [ebp - 0x18]
push eax
call fcn.0046e130
push eax
call esi
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
sub esi, dword [ebp - 0x18]
push 6
mov dword [ebp - 0x98], eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 0x98]
jmp 0x471e14
xorps xmm0, xmm0
movups xmmword [ebp - 0x18], xmm0
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb20
neg eax
sbb eax, eax
neg eax
push eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cd30
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov esi, dword [ebp - 0x48]
sub esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x4c]
sub esi, dword [ebp - 0x10]
sub eax, dword [ebp - 0xc]
add esi, dword [ebp - 0x18]
add eax, dword [ebp - 0x14]
jmp 0x471e14
lea eax, [ebp - 0x18]
push eax
call fcn.0046e130
push eax
call esi
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
sub esi, dword [ebp - 0x18]
sub eax, dword [ebp - 0x14]
mov edx, dword [ebx]
test edx, edx
jne 0x471e1f
mov ecx, dword [ebx + 0x14]
jmp 0x471e22
mov ecx, dword [ebx + 0x10]
cmp esi, ecx
jne 0x471e36
test edx, edx
jne 0x471e2f
mov ecx, dword [ebx + 0x18]
jmp 0x471e32
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
je 0x471e3d
mov byte [ebp - 0x99], 1
cmp byte [ebp + 0x10], 0
je 0x471edd
call fcn.0046e130
mov esi, dword [sym.imp.USER32.dll_IsIconic]
push eax
call esi
test eax, eax
jne 0x471ee3
mov ecx, ebx
mov dword [ebp - 0x40], 0x28
call fcn.00479680
lea edx, [ebp - 0x40]
mov dword [ebp - 0xa0], eax
mov ecx, eax
call fcn.0047b7c0
call fcn.0046e080
mov ecx, eax
call fcn.0047b900
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x18]
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x2c]
jl 0x471ebd
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jg 0x471ebd
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x28]
jl 0x471ebd
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x20]
jle 0x471ee3
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0xa0]
jne 0x471ef0
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x471ef0
jmp 0x471ee3
mov esi, dword [sym.imp.USER32.dll_IsIconic]
cmp byte [ebp - 0x99], 0
je 0x47230f
call fcn.0046e130
push eax
call esi
test eax, eax
je 0x471f0e
push 9
call fcn.0046e130
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push eax
call esi
jmp 0x471f14
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x471f2e
push 9
call fcn.0046e130
push eax
call esi
cmp byte [ebp + 0x10], 0
je 0x4721ad
lea eax, [ebp - 0x1c4]
push eax
call fcn.0047a6f0
movups xmm0, xmmword [eax + 0x10]
movups xmm1, xmmword [eax]
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0xe0], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ebp - 0xd0], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ebp - 0xc0], xmm0
movups xmm0, xmmword [eax + 0x50]
movd eax, xmm1
movups xmmword [ebp - 0xb0], xmm0
cmp eax, 1
jne 0x471fda
lea eax, [ebp - 0x1c4]
push eax
call fcn.0047a6f0
movups xmm0, xmmword [eax + 0x10]
movups xmm1, xmmword [eax]
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [eax + 0x20]
psrldq xmm1, 8
movups xmmword [ebp - 0xe0], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ebp - 0xd0], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ebp - 0xc0], xmm0
movups xmm0, xmmword [eax + 0x50]
movd eax, xmm1
movups xmmword [ebp - 0xb0], xmm0
test eax, eax
je 0x47202c
lea eax, [ebp - 0x1c4]
push eax
call fcn.0047a6f0
movups xmm0, xmmword [eax + 0x10]
movups xmm1, xmmword [eax]
movups xmmword [ebp - 0xf0], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0xe0], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ebp - 0xd0], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ebp - 0xc0], xmm0
movups xmm0, xmmword [eax + 0x50]
movd eax, xmm1
movups xmmword [ebp - 0xb0], xmm0
test eax, eax
jne 0x4721ad
mov ecx, ebx
mov dword [ebp - 0x40], 0x28
call fcn.00479680
lea edx, [ebp - 0x40]
mov ecx, eax
call fcn.0047b7c0
mov dword [ebp - 0x68], 0x28
call fcn.0046e080
mov ecx, eax
call fcn.0047b900
lea edx, [ebp - 0x68]
mov ecx, eax
call fcn.0047b7c0
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
sub esi, dword [ebp - 0x2c]
mov dword [ebp - 0x98], eax
mov eax, dword [ebx]
test eax, eax
jne 0x47207e
mov ecx, dword [ebx + 0x14]
jmp 0x472081
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xa0], ecx
test eax, eax
jne 0x472090
mov eax, dword [ebx + 0x18]
jmp 0x472093
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0xc], eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb20
neg eax
sbb eax, eax
neg eax
push eax
push 0xfffffffffffffff0
call fcn.0046e130
push eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongW]
call eax
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub eax, edx
cmp ecx, esi
cmovg ecx, esi
mov dword [ebp - 0x94], ecx
mov ecx, eax
cmp ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x18]
cmovg ecx, dword [ebp - 0x98]
mov dword [ebp - 0x90], ecx
mov ecx, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x2c]
jl 0x472153
cmp edx, dword [ebp - 0x28]
jl 0x472153
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x94]
jg 0x472153
mov eax, dword [ebp - 0xc]
cmp eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
jle 0x4721a0
sub esi, ecx
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [ebp - 0x98]
sub eax, dword [ebp - 0x90]
cdq
sub eax, edx
sar ecx, 1
mov edx, dword [ebp - 0x2c]
add edx, ecx
sar eax, 1
add ecx, dword [ebp - 0x94]
add ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x28]
add edx, eax
mov dword [ebp - 0x10], ecx
add eax, dword [ebp - 0x90]
add eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], edx
push 4
push dword [ebp - 0x90]
push ecx
push edx
push eax
jmp 0x472215
mov ecx, dword [ebx]
xorps xmm0, xmm0
movups xmmword [ebp - 0x18], xmm0
test ecx, ecx
jne 0x4721bf
mov eax, dword [ebx + 0x14]
jmp 0x4721c2
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0x10], eax
test ecx, ecx
jne 0x4721ce
mov eax, dword [ebx + 0x18]
jmp 0x4721d1
mov eax, dword [ebx + 0x14]
mov dword [ebp - 0xc], eax
call fcn.0046dec0
mov ecx, eax
call fcn.0046cb20
neg eax
sbb eax, eax
neg eax
push eax
push 0xfffffffffffffff0
call fcn.0046e130
push eax
mov eax, dword [sym.imp.USER32.dll_GetWindowLongW]
call eax
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov ecx, dword [ebp - 0x10]
sub ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push 6
push eax
push ecx
push 0
push 0
push 0
call fcn.0046e130
push eax
mov eax, dword [sym.imp.USER32.dll_SetWindowPos]
call eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0046e130
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
sub eax, dword [ebp - 0x7c]
sub ecx, dword [ebp - 0x78]
mov esi, dword [ebx]
test esi, esi
jne 0x47224b
mov edx, dword [ebx + 0x14]
jmp 0x47224e
mov edx, dword [ebx + 0x10]
cmp eax, edx
jne 0x472266
test esi, esi
jne 0x47225b
mov eax, dword [ebx + 0x18]
jmp 0x47225e
mov eax, dword [ebx + 0x14]
cmp ecx, eax
je 0x47230f
lea eax, [ebp - 0x1c4]
push eax
call fcn.0047a6f0
movups xmm1, xmmword [eax]
movups xmmword [ebp - 0x164], xmm1
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0x154], xmm0
movups xmm0, xmmword [eax + 0x20]
movups xmmword [ebp - 0x144], xmm0
movups xmm0, xmmword [eax + 0x30]
movups xmmword [ebp - 0x134], xmm0
movups xmm0, xmmword [eax + 0x40]
movups xmmword [ebp - 0x124], xmm0
movups xmm0, xmmword [eax + 0x50]
mov dword [ebp - 0x150], 0
movd eax, xmm1
movups xmmword [ebp - 0x114], xmm0
test eax, eax
jne 0x4722cd
mov dword [ebp - 0x14c], eax
jmp 0x4722d7
mov dword [ebp - 0x154], 0
push dword [ebp + 0x10]
xor edx, edx
lea ecx, [ebp - 0x164]
push 0
push 0
call fcn.00471530
mov esi, eax
add esp, 0xc
test esi, esi
jns 0x47230f
test edi, edi
je 0x472303
push 0x60
push edi
call fcn.0048289d
add esp, 8
mov cl, 1
call fcn.004795e0
jmp 0x471c49
call fcn.0046e080
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x47232d
push 5
call fcn.0046e080
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
call fcn.0046e330
test al, al
jne 0x47233d
push reloc.OLEAUT32.dll_SysReAllocString
jmp 0x472342
push SysReAllocString
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
test edi, edi
je 0x472357
push 0x60
push edi
call fcn.0048289d
add esp, 8
push 0
call fcn.0046dec0
mov ecx, eax
call fcn.0046cfb0
xor dl, dl
xor cl, cl
call fcn.00478230
push 1
call fcn.0046dec0
mov ecx, eax
call fcn.0046d4f0
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00482854
mov esp, ebp
pop ebp
ret