Function at 0x576a70
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x679c89
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x71d5e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
mov esi, ecx
mov dword [ebp - 0x38], 0
cmp dword [esi + 0x38], 0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], eax
je 0x57749e
mov ecx, dword [esi + 0x48]
mov edi, dword [ebp + 0xc]
test ecx, ecx
jne 0x576afe
cmp dword [esi + 8], 0
je 0x576afe
cmp edi, 0x7c
je 0x576ae9
cmp edi, 0x7d
je 0x576ae9
cmp edi, 0x47
je 0x576ae9
cmp edi, 0x46
je 0x576aee
cmp edi, 0x85
jne 0x576afe
cmp edi, 0x46
jne 0x576af4
mov ebx, dword [ebx]
and dword [ebx + 0x18], 0xffffffdf
mov eax, 1
jmp 0x5774a0
cmp edi, 0x46
jne 0x576b43
mov eax, dword [ebx]
test byte [eax + 0x18], 1
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
jne 0x57749e
cmp dword [esi + 0x20], ecx
jne 0x576b23
cmp dword [esi + 0x24], edx
je 0x57749e
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x40000000
jne 0x57749e
mov dword [esi + 0x3c], 1
jmp 0x57749e
cmp edi, dword [0x72ba48]
jne 0x576b57
mov dword [eax], esi
mov eax, 1
jmp 0x5774a0
cmp edi, 0x47
jne 0x576b7e
mov eax, dword [ebx]
test byte [eax + 0x18], 0x20
je 0x57749e
cmp dword [esi + 0x40], 0
jne 0x57749e
mov ecx, esi
call fcn.00576a10
jmp 0x57749e
cmp edi, 5
je 0x57741e
cmp edi, 0x7d
je 0x57741e
cmp edi, 0xa5
jne 0x576c00
mov ecx, esi
call fcn.00575a10
test eax, eax
je 0x576cd6
cmp dword [esi + 0x48], 0
jne 0x576cd6
mov ecx, dword [ebp - 0x34]
cmp dword [ecx], 2
jne 0x576cd6
cmp dword [esi + 0x30], 0
je 0x576bd1
mov ecx, esi
mov dword [esi + 0x30], 0
call fcn.00575a60
mov eax, dword [ebx]
mov esi, dword [esi + 0xc]
movsx ecx, ax
shr eax, 0x10
cwde
movzx edx, ax
movzx eax, cx
shl edx, 0x10
or edx, eax
push edx
push esi
push 0x313
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 1
jmp 0x5774a0
cmp edi, 0xa1
jne 0x576c66
mov ecx, esi
call fcn.00575a10
test eax, eax
je 0x576cd6
cmp dword [esi + 0x48], 0
jne 0x576cd6
mov eax, dword [ebx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ecx
push eax
mov ecx, esi
mov dword [ebp - 0x24], edx
call fcn.00575b30
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push ecx
push edx
mov ecx, esi
call fcn.00575b80
test eax, eax
je 0x576cd6
push eax
mov ecx, esi
call fcn.005763d0
mov eax, 1
jmp 0x5774a0
cmp edi, 0xa0
jne 0x576d03
mov ecx, esi
call fcn.00575a10
test eax, eax
je 0x576cd6
cmp dword [esi + 0x48], 0
jne 0x576cd6
mov eax, dword [ebx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ecx
push eax
mov ecx, esi
mov dword [ebp - 0x24], edx
call fcn.00575b30
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push ecx
push edx
mov ecx, esi
call fcn.00575b80
cmp eax, dword [esi + 0x30]
je 0x576cd6
mov ecx, esi
mov dword [esi + 0x30], eax
call fcn.00575a60
cmp dword [esi + 0x30], 0
je 0x576cf2
mov eax, dword [esi + 0xc]
push 0
push 0x32
push 0xacb1
push eax
call dword [sym.imp.USER32.dll_SetTimer]
cmp edi, dword [esi + 0x54]
jne 0x577269
mov edx, dword [ebp - 0x30]
mov dword [edx], 1
mov eax, 1
jmp 0x5774a0
mov ecx, dword [esi + 0xc]
push 0xacb1
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x576cd6
cmp edi, 0x113
jne 0x576da9
mov eax, dword [edx]
cmp eax, 0xacd1
jne 0x576d38
mov ecx, esi
call fcn.00575bc0
mov edx, dword [esi + 0xc]
push 0xacd1
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, 1
jmp 0x5774a0
cmp eax, 0xacb1
jne 0x576cd6
test ecx, ecx
jne 0x576cd6
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x576af4
lea eax, [ebp - 0x28]
xor edi, edi
push eax
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [ebp - 0x28]
push ecx
mov ecx, esi
call fcn.00575b30
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
push edx
push eax
mov ecx, esi
call fcn.00575b80
test eax, eax
jne 0x576d9f
cmp dword [esi + 0x30], edi
je 0x576d90
mov ecx, esi
mov dword [esi + 0x30], edi
call fcn.00575a60
mov ecx, dword [esi + 0xc]
push 0xacb1
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, 1
jmp 0x5774a0
cmp edi, 0x84
jne 0x576fa5
mov ecx, esi
call fcn.00575a10
test eax, eax
jne 0x576e3e
cmp dword [esi + 0x48], eax
jne 0x576e3e
mov eax, dword [ebx]
movsx edx, ax
shr eax, 0x10
cwde
lea ecx, [ebp - 0x28]
push ecx
mov ecx, esi
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
call fcn.00575b30
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov edi, dword [ebp - 0x30]
push 1
mov ecx, esi
mov dword [edi], eax
call fcn.00575970
test eax, 0x200
je 0x576e34
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x40000
je 0x576e34
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x20000000
jne 0x576e34
mov edx, dword [esi + 0x24]
dec edx
cmp dword [ebp - 0x24], edx
jne 0x576e34
cmp dword [edi], 0x12
jne 0x576e34
mov dword [edi], 0xf
mov eax, 1
jmp 0x5774a0
mov ecx, esi
call fcn.00575a10
test eax, eax
jne 0x576ecd
cmp dword [esi + 0x48], eax
je 0x576ecd
mov eax, dword [ebx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ecx
push eax
mov ecx, esi
mov dword [ebp - 0x24], edx
call fcn.00575b30
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov edi, dword [ebp - 0x30]
mov ecx, esi
mov dword [edi], eax
call fcn.00575b50
cmp dword [ebp - 0x24], eax
jge 0x576ec3
lea ecx, [ebp - 0x29]
call fcn.0060ab00
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x34]
push edi
push ecx
mov ecx, dword [edx]
mov edx, dword [esi + 0xc]
push ecx
push 0x84
push edx
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.0059c0f0
lea ecx, [ebp - 0x29]
mov dword [ebp - 4], 0xffffffff
call fcn.005cceb0
mov eax, 1
jmp 0x5774a0
mov ecx, esi
call fcn.00575a10
test eax, eax
je 0x576cd6
cmp dword [esi + 0x48], 0
jne 0x576cd6
mov eax, dword [ebx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], ecx
push eax
mov ecx, esi
mov dword [ebp - 0x24], edx
call fcn.00575b30
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov edi, dword [ebp - 0x30]
mov dword [edi], eax
cmp eax, 0x14
je 0x576f27
cmp eax, 8
je 0x576f27
cmp eax, 9
je 0x576f27
cmp eax, 0x15
jne 0x576f2d
mov dword [edi], 2
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, dword [esi + 0x2c]
push edx
call fcn.00556920
test eax, eax
je 0x576f54
mov ecx, eax
call fcn.005758c0
mov dword [edi], eax
mov eax, 1
jmp 0x5774a0
cmp dword [edi], 0
jne 0x576f9b
mov ecx, esi
call fcn.00575b50
cmp dword [ebp - 0x24], eax
jge 0x576f9b
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, 7
cmp dword [ebp - 0x28], eax
jge 0x576f95
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x80000
je 0x576f95
mov dword [edi], 3
mov eax, 1
jmp 0x5774a0
mov dword [edi], 2
mov eax, 1
jmp 0x5774a0
cmp edi, 0xc
jne 0x576fec
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov ecx, esi
call fcn.00575a10
test eax, eax
je 0x576fd5
mov ecx, esi
call fcn.00575a60
lea eax, [edi - 0xb]
jmp 0x5774a0
cmp dword [esi + 0x10], 0
je 0x576fe2
mov ecx, esi
call fcn.00576000
mov eax, 1
jmp 0x5774a0
cmp edi, 0x86
jne 0x5770e7
test ecx, ecx
jne 0x576cd6
mov eax, dword [esi + 0xc]
mov edi, dword [edx]
push eax
call fcn.0040cf29
test byte [eax + 0x58], 0x20
mov dword [ebp - 0x38], eax
je 0x577019
mov edi, 1
mov ecx, eax
call fcn.00412913
test eax, eax
jne 0x577026
xor edi, edi
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x10000000
je 0x5770df
and eax, 0x40000
mov dword [esi + 8], 1
mov dword [ebp - 0x24], eax
je 0x57705d
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0x40000
push ecx
call fcn.0040ab8b
mov ecx, dword [ebp - 0x38]
call fcn.00412913
test eax, eax
je 0x57707f
push 0
push edi
call fcn.0059f950
mov ecx, eax
call fcn.0059f330
mov edx, dword [ebp - 0x30]
mov dword [edx], eax
jmp 0x577099
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx]
push eax
push edx
call fcn.0059f950
mov ecx, eax
call fcn.0059f330
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
cmp dword [ebp - 0x24], 0
je 0x5770b1
mov edx, dword [esi + 0xc]
push 0
push 0x40000
push 0
push edx
call fcn.0040ab8b
mov dword [esi + 8], 0
cmp dword [esi + 0x1c], edi
je 0x5770d5
mov ecx, esi
mov dword [esi + 0x1c], edi
call fcn.005760c0
mov ecx, esi
call fcn.00575a60
mov ecx, esi
call fcn.00575fd0
mov eax, 1
jmp 0x5774a0
mov dword [esi + 0x1c], edi
jmp 0x57749e
cmp edi, 0x31e
jne 0x577183
cmp dword [0x720260], 0
je 0x57712a
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x40000000
jne 0x57712a
lea ecx, [ebp - 0x29]
call fcn.0060ab00
mov ecx, 1
mov dword [ebp - 4], ecx
mov dword [ebp - 0x38], ecx
mov ecx, eax
call fcn.0059c090
mov edi, eax
jmp 0x57712c
xor edi, edi
test byte [ebp - 0x38], 1
mov dword [ebp - 4], 0xffffffff
je 0x577141
lea ecx, [ebp - 0x29]
call fcn.005cceb0
cmp edi, dword [esi + 0x48]
je 0x57749e
mov eax, dword [esi + 0xc]
push 1
push 0
push eax
mov dword [esi + 0x48], edi
call dword [sym.imp.USER32.dll_SetWindowRgn]
cmp dword [esi + 0x48], 0
jne 0x577168
mov ecx, esi
call fcn.00575bc0
mov ecx, dword [esi + 0xc]
push 0x37
push 0
push 0
push 0
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x57749e
cmp edi, 0x83
jne 0x576cd6
cmp dword [esi + 8], 0
jne 0x576cd6
mov edi, dword [ebx]
push edi
lea edx, [ebp - 0x20]
push edx
call dword [sym.imp.USER32.dll_CopyRect]
cmp dword [esi + 0x48], 0
je 0x5771bf
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
jmp 0x5771d6
mov edx, dword [esi + 0x44]
add dword [edi], edx
mov eax, dword [esi + 0x44]
add dword [edi + 4], eax
mov ecx, dword [esi + 0x44]
sub dword [edi + 8], ecx
mov edx, dword [esi + 0x44]
sub dword [edi + 0xc], edx
push 0
mov ecx, esi
call fcn.00575970
cmp dword [esi + 0x48], 0
mov ebx, eax
mov ecx, esi
je 0x5771fa
call fcn.00575a10
test eax, eax
jne 0x577243
mov eax, dword [ebp - 0x1c]
mov dword [edi + 4], eax
jmp 0x577243
call fcn.00575a10
test eax, eax
je 0x57720f
mov ecx, esi
call fcn.00575b50
sub eax, dword [esi + 0x44]
jmp 0x577211
xor eax, eax
add dword [edi + 4], eax
push 0
mov ecx, esi
call fcn.00575f10
test eax, eax
je 0x577243
test ebx, 0x1000000
jne 0x577243
mov eax, dword [ebp - 0x14]
mov ecx, eax
sub ecx, dword [edi + 0xc]
add ecx, 0xfffffffd
cmp ecx, 1
jg 0x57723e
mov ecx, 1
sub eax, ecx
mov dword [edi + 0xc], eax
and ebx, 0x41000000
cmp ebx, 0x1000000
jne 0x57725f
mov ecx, esi
call fcn.00575c60
test eax, eax
je 0x57725f
dec dword [edi + 0xc]
mov eax, 1
jmp 0x5774a0
cmp edi, 0x24
jne 0x5772d5
cmp dword [esi + 0x48], 0
jne 0x57749e
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov ebx, dword [ebx]
mov ecx, esi
call fcn.00575b50
mov edi, eax
add edi, dword [esi + 0x44]
push 0x2d
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
push 0x1f
add esi, esi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebx + 0x18]
lea edx, [esi + eax]
lea eax, [edi + edi*2]
add eax, edx
cmp ecx, eax
jle 0x5772bc
mov eax, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x1c]
cmp eax, edi
jg 0x5772c8
mov eax, edi
mov dword [ebx + 0x1c], eax
mov eax, 1
jmp 0x5774a0
cmp edi, 0x112
jne 0x57732c
cmp dword [esi + 0x48], 0
jne 0x57749e
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0xf020
jne 0x57749e
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x40000000
je 0x57749e
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov ecx, esi
call fcn.00575a60
mov eax, 1
jmp 0x5774a0
cmp edi, 0x85
jne 0x5773ac
cmp dword [esi + 0x48], 0
jne 0x57749e
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x577353
dec eax
mov dword [esi + 0x3c], eax
mov eax, 1
jmp 0x5774a0
mov ecx, esi
call fcn.005759e0
test eax, eax
jne 0x5773a2
mov ecx, esi
call fcn.005760c0
mov edx, dword [esi + 0xc]
push edx
call fcn.0040cf29
push eax
lea ecx, [ebp - 0x4c]
call fcn.004143ab
mov ecx, esi
mov dword [ebp - 4], 2
call fcn.005759c0
mov edx, dword [eax]
mov edx, dword [edx + 8]
push esi
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, eax
call edx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
call fcn.004143ff
mov eax, 1
jmp 0x5774a0
cmp edi, 0x317
jne 0x5773fc
cmp dword [esi + 0x48], 0
jne 0x57749e
call fcn.0059f950
mov ecx, eax
call fcn.0059f360
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
test byte [ebx], 2
je 0x57749e
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
push eax
call fcn.0041426e
mov ecx, esi
mov edi, eax
call fcn.005759c0
mov edx, dword [eax]
push esi
mov ecx, eax
mov eax, dword [edx + 8]
push edi
call eax
jmp 0x57749e
cmp edi, 0x363
jne 0x57749e
cmp dword [esi + 0x28], 0
je 0x57749e
mov ecx, esi
call fcn.00576000
jmp 0x57749e
mov ecx, dword [esi + 0xc]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0053d620
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x20]
push eax
lea ecx, [esi + 0x20]
push ebx
mov dword [ebp - 0x24], eax
call fcn.0042eef2
test eax, eax
jne 0x57744c
cmp edi, 0x7d
jne 0x57746f
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp edi, 0x7d
sete dl
mov ecx, esi
push edx
push eax
push ebx
call fcn.00576660
mov ecx, esi
call fcn.005760c0
mov ecx, esi
call fcn.00575a60
cmp edi, 5
jne 0x57749e
mov ecx, dword [ebp - 0x34]
cmp dword [ecx], 1
jne 0x57749e
push 0
mov ecx, esi
call fcn.00575970
test eax, 0x1000000
je 0x57749e
mov edx, dword [esi + 0xc]
push 0
push 0
push 0x1000000
push edx
call fcn.0040ab8b
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005000ee
mov esp, ebp
pop ebp
ret 0x14