Function at 0x23b34500
Capabilities:
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x23bda8a9
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x23c68938]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], 0
cmp dword [esi + 0x38], 0
je 0x23b34f79
mov ecx, dword [esi + 0x48]
mov edi, dword [esp + 0x4c]
test ecx, ecx
jne 0x23b34581
cmp dword [esi + 8], 0
je 0x23b34581
cmp edi, 0x7c
je 0x23b34568
cmp edi, 0x7d
je 0x23b34568
cmp edi, 0x47
je 0x23b34568
cmp edi, 0x46
je 0x23b3456d
cmp edi, 0x85
jne 0x23b34581
cmp edi, 0x46
jne 0x23b34577
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
and dword [eax + 0x18], 0xffffffdf
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x46
jne 0x23b345ca
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
test byte [eax + 0x18], 1
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
jne 0x23b34f79
cmp dword [esi + 0x20], ecx
jne 0x23b345aa
cmp dword [esi + 0x24], edx
je 0x23b34f79
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x40000000
jne 0x23b34f79
mov dword [esi + 0x3c], 1
jmp 0x23b34f79
cmp edi, dword [0x23c7de0c]
jne 0x23b345e2
mov edx, dword [esp + 0x58]
mov dword [edx], esi
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x47
jne 0x23b3460d
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
test byte [ecx + 0x18], 0x20
je 0x23b34f79
cmp dword [esi + 0x40], 0
jne 0x23b34f79
mov ecx, esi
call fcn.23b344b0
jmp 0x23b34f79
cmp edi, 5
je 0x23b34ef9
cmp edi, 0x7d
je 0x23b34ef9
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x50]
cmp edi, 0xa5
jne 0x23b34697
mov ecx, esi
call fcn.23b33560
test eax, eax
je 0x23b34775
cmp dword [esi + 0x48], 0
jne 0x23b34775
cmp dword [ebp], 2
jne 0x23b34775
cmp dword [esi + 0x30], 0
je 0x23b34666
mov ecx, esi
mov dword [esi + 0x30], 0
call fcn.23b335b0
mov esi, dword [esi + 0xc]
mov edx, ebx
mov eax, dword [edx]
movsx ecx, ax
shr eax, 0x10
cwde
movzx eax, ax
movzx ecx, cx
shl eax, 0x10
or eax, ecx
push eax
push esi
push 0x313
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0xa1
jne 0x23b34700
mov ecx, esi
call fcn.23b33560
test eax, eax
je 0x23b34775
cmp dword [esi + 0x48], 0
jne 0x23b34775
mov eax, dword [ebx]
movsx edx, ax
shr eax, 0x10
cwde
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
call fcn.23b33680
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.23b336d0
test eax, eax
je 0x23b34775
push eax
mov ecx, esi
call fcn.23b33ec0
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0xa0
jne 0x23b347a3
mov ecx, esi
call fcn.23b33560
test eax, eax
je 0x23b34775
cmp dword [esi + 0x48], 0
jne 0x23b34775
mov eax, dword [ebx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ecx
push eax
mov ecx, esi
mov dword [esp + 0x1c], edx
call fcn.23b33680
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
push edx
mov ecx, esi
call fcn.23b336d0
cmp eax, dword [esi + 0x30]
je 0x23b34775
mov ecx, esi
mov dword [esi + 0x30], eax
call fcn.23b335b0
cmp dword [esi + 0x30], 0
je 0x23b34792
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 0x23b34d41
mov edx, dword [esp + 0x58]
mov dword [edx], 1
mov eax, 1
jmp 0x23b34f7b
mov ecx, dword [esi + 0xc]
push 0xacb1
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x23b34775
cmp edi, 0x113
jne 0x23b34846
mov eax, dword [ebp]
cmp eax, 0xacd1
jne 0x23b347d9
mov ecx, esi
call fcn.23b33700
mov edx, dword [esi + 0xc]
push 0xacd1
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, 1
jmp 0x23b34f7b
cmp eax, 0xacb1
jne 0x23b34775
test ecx, ecx
jne 0x23b34775
call dword [sym.imp.USER32.dll_GetCapture]
test eax, eax
jne 0x23b34577
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
call fcn.23b33680
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
mov ecx, esi
call fcn.23b336d0
test eax, eax
jne 0x23b3483c
cmp dword [esi + 0x30], eax
je 0x23b3482d
mov ecx, esi
mov dword [esi + 0x30], eax
call fcn.23b335b0
mov ecx, dword [esi + 0xc]
push 0xacb1
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x84
jne 0x23b34a6b
mov ecx, esi
call fcn.23b33560
test eax, eax
jne 0x23b348ec
cmp dword [esi + 0x48], eax
jne 0x23b348ec
mov edx, ebx
mov eax, dword [edx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ecx
push eax
mov ecx, esi
mov dword [esp + 0x1c], edx
call fcn.23b33680
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov edi, dword [esp + 0x58]
push 1
mov ecx, esi
mov dword [edi], eax
call fcn.23b334c0
test eax, 0x200
je 0x23b348e2
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x40000
je 0x23b348e2
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x20000000
jne 0x23b348e2
mov ecx, dword [esi + 0x24]
dec ecx
cmp dword [esp + 0x18], ecx
jne 0x23b348e2
cmp dword [edi], 0x12
jne 0x23b348e2
mov dword [edi], 0xf
mov eax, 1
jmp 0x23b34f7b
mov ecx, esi
call fcn.23b33560
test eax, eax
jne 0x23b34989
cmp dword [esi + 0x48], eax
je 0x23b34989
mov edi, ebx
mov eax, dword [edi]
movsx edx, ax
shr eax, 0x10
cwde
lea ecx, [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
call fcn.23b33680
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ebx, dword [esp + 0x58]
mov ecx, esi
mov dword [ebx], eax
call fcn.23b336a0
cmp dword [esp + 0x18], eax
jge 0x23b3497f
lea ecx, [esp + 0x58]
call fcn.23b25dd0
mov edx, dword [edi]
mov ecx, dword [esp + 0x50]
push ebx
push edx
mov edx, dword [ecx]
mov ecx, dword [esi + 0xc]
push edx
push 0x84
push ecx
mov ecx, eax
mov dword [esp + 0x54], 0
call fcn.23a7b480
lea ecx, [esp + 0x58]
mov dword [esp + 0x40], 0xffffffff
call fcn.23a7c200
mov eax, 1
jmp 0x23b34f7b
mov ecx, esi
call fcn.23b33560
test eax, eax
je 0x23b34775
cmp dword [esi + 0x48], 0
jne 0x23b34775
mov edx, ebx
mov eax, dword [edx]
movsx ecx, ax
shr eax, 0x10
movsx edx, ax
lea eax, [esp + 0x14]
mov dword [esp + 0x14], ecx
push eax
mov ecx, esi
mov dword [esp + 0x1c], edx
call fcn.23b33680
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov edi, dword [esp + 0x58]
mov dword [edi], eax
cmp eax, 0x14
je 0x23b349e9
cmp eax, 8
je 0x23b349e9
cmp eax, 9
je 0x23b349e9
cmp eax, 0x15
jne 0x23b349ef
mov dword [edi], 2
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0x2c]
push edx
call fcn.23b30450
test eax, eax
je 0x23b34a18
mov ecx, eax
call fcn.23ae4b20
mov dword [edi], eax
mov eax, 1
jmp 0x23b34f7b
cmp dword [edi], 0
jne 0x23b34a61
mov ecx, esi
call fcn.23b336a0
cmp dword [esp + 0x18], eax
jge 0x23b34a61
push 0x31
call dword [sym.imp.USER32.dll_GetSystemMetrics]
add eax, 7
cmp dword [esp + 0x14], eax
jge 0x23b34a5b
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x80000
je 0x23b34a5b
mov dword [edi], 3
mov eax, 1
jmp 0x23b34f7b
mov dword [edi], 2
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0xc
jne 0x23b34ab3
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov ecx, esi
call fcn.23b33560
test eax, eax
je 0x23b34a9c
mov ecx, esi
call fcn.23b335b0
lea eax, [edi - 0xb]
jmp 0x23b34f7b
cmp dword [esi + 0x10], 0
je 0x23b34aa9
mov ecx, esi
call fcn.23b33af0
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x86
jne 0x23b34bb3
test ecx, ecx
jne 0x23b34775
mov eax, dword [esi + 0xc]
mov edx, ebp
mov ebx, dword [edx]
push eax
call fcn.23a3270a
mov ebp, eax
test byte [ebp + 0x3c], 0x20
je 0x23b34ae1
mov ebx, 1
mov ecx, ebp
call fcn.23a35d12
test eax, eax
jne 0x23b34aee
xor ebx, ebx
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x10000000
je 0x23b34bab
mov edi, eax
and edi, 0x40000
mov dword [esi + 8], 1
je 0x23b34b25
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0x40000
push ecx
call fcn.23a3066c
mov ecx, ebp
call fcn.23a35d12
test eax, eax
je 0x23b34b47
push 0
push ebx
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85b0
mov edx, dword [esp + 0x58]
mov dword [edx], eax
jmp 0x23b34b67
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
push ecx
push eax
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85b0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
test edi, edi
je 0x23b34b7d
mov edx, dword [esi + 0xc]
push 0
push 0x40000
push 0
push edx
call fcn.23a3066c
mov dword [esi + 8], 0
cmp dword [esi + 0x1c], ebx
je 0x23b34ba1
mov ecx, esi
mov dword [esi + 0x1c], ebx
call fcn.23b33ba0
mov ecx, esi
call fcn.23b335b0
mov ecx, esi
call fcn.23b33ac0
mov eax, 1
jmp 0x23b34f7b
mov dword [esi + 0x1c], ebx
jmp 0x23b34f79
cmp edi, 0x31e
jne 0x23b34c55
cmp dword [0x23c6ddcc], 0
je 0x23b34bf9
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x40000000
jne 0x23b34bf9
lea ecx, [esp + 0x58]
call fcn.23b25dd0
mov ecx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x14], ecx
mov ecx, eax
call fcn.23a7b430
mov edi, eax
jmp 0x23b34bfb
xor edi, edi
test byte [esp + 0x14], 1
mov dword [esp + 0x40], 0xffffffff
je 0x23b34c13
lea ecx, [esp + 0x58]
call fcn.23a7c200
cmp edi, dword [esi + 0x48]
je 0x23b34f79
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 0x23b34c3a
mov ecx, esi
call fcn.23b33700
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 0x23b34f79
cmp edi, 0x83
jne 0x23b34775
cmp dword [esi + 8], 0
jne 0x23b34775
mov edx, ebx
mov edi, dword [edx]
push edi
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
cmp dword [esi + 0x48], 0
je 0x23b34c95
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
jmp 0x23b34cac
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.23b334c0
cmp dword [esi + 0x48], 0
mov ebx, eax
mov ecx, esi
je 0x23b34cd1
call fcn.23b33560
test eax, eax
jne 0x23b34d1b
mov eax, dword [esp + 0x18]
mov dword [edi + 4], eax
jmp 0x23b34d1b
call fcn.23b33560
test eax, eax
je 0x23b34ce6
mov ecx, esi
call fcn.23b336a0
sub eax, dword [esi + 0x44]
jmp 0x23b34ce8
xor eax, eax
add dword [edi + 4], eax
push 0
mov ecx, esi
call fcn.23b33a30
test eax, eax
je 0x23b34d1b
test ebx, 0x1000000
jne 0x23b34d1b
mov eax, dword [esp + 0x20]
mov ecx, eax
sub ecx, dword [edi + 0xc]
add ecx, 0xfffffffd
cmp ecx, 1
jg 0x23b34d16
mov ecx, 1
sub eax, ecx
mov dword [edi + 0xc], eax
and ebx, 0x41000000
cmp ebx, 0x1000000
jne 0x23b34d37
mov ecx, esi
call fcn.23b33790
test eax, eax
je 0x23b34d37
dec dword [edi + 0xc]
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x24
jne 0x23b34dad
cmp dword [esi + 0x48], 0
jne 0x23b34f79
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov ebx, dword [ebx]
mov ecx, esi
call fcn.23b336a0
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, eax
add edi, dword [esi + 0x44]
push 0x2d
call ebp
mov esi, eax
push 0x1f
add esi, esi
call ebp
mov ecx, dword [ebx + 0x18]
mov edx, eax
add edx, esi
lea eax, [edi + edi*2]
add eax, edx
cmp ecx, eax
jle 0x23b34d94
mov eax, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x1c]
cmp eax, edi
jg 0x23b34da0
mov eax, edi
mov dword [ebx + 0x1c], eax
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x112
jne 0x23b34e03
cmp dword [esi + 0x48], 0
jne 0x23b34f79
cmp dword [ebp], 0xf020
jne 0x23b34f79
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x40000000
je 0x23b34f79
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov ecx, esi
call fcn.23b335b0
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x85
jne 0x23b34e88
cmp dword [esi + 0x48], 0
jne 0x23b34f79
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x23b34e2a
dec eax
mov dword [esi + 0x3c], eax
mov eax, 1
jmp 0x23b34f7b
mov ecx, esi
call fcn.23b33530
test eax, eax
jne 0x23b34e7e
mov ecx, esi
call fcn.23b33ba0
mov edx, dword [esi + 0xc]
push edx
call fcn.23a3270a
push eax
lea ecx, [esp + 0x28]
call fcn.23a38a21
mov ecx, esi
mov dword [esp + 0x40], 2
call fcn.23b33510
mov edx, dword [eax]
mov edx, dword [edx + 8]
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, eax
call edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x40], 0xffffffff
call fcn.23a38a75
mov eax, 1
jmp 0x23b34f7b
cmp edi, 0x317
jne 0x23b34ed7
cmp dword [esi + 0x48], 0
jne 0x23b34f79
call fcn.23ab8b00
mov ecx, eax
call fcn.23ab85e0
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
test byte [ebx], 2
je 0x23b34f79
mov edx, dword [ebp]
push edx
call fcn.23a388e6
mov ecx, esi
mov edi, eax
call fcn.23b33510
mov edx, dword [eax]
push esi
mov ecx, eax
mov eax, dword [edx + 8]
push edi
call eax
jmp 0x23b34f79
cmp edi, 0x363
jne 0x23b34f79
cmp dword [esi + 0x28], 0
je 0x23b34f79
mov ecx, esi
call fcn.23b33af0
jmp 0x23b34f79
mov ecx, dword [esi + 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.23a67500
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
sub ebp, dword [esp + 0x18]
sub ebx, dword [esp + 0x14]
push ebp
push ebx
lea ecx, [esi + 0x20]
call fcn.23a69ab0
test eax, eax
jne 0x23b34f29
cmp edi, 0x7d
jne 0x23b34f49
xor edx, edx
cmp edi, 0x7d
sete dl
mov ecx, esi
push edx
push ebp
push ebx
call fcn.23b34110
mov ecx, esi
call fcn.23b33ba0
mov ecx, esi
call fcn.23b335b0
cmp edi, 5
jne 0x23b34f79
mov eax, dword [esp + 0x50]
cmp dword [eax], 1
jne 0x23b34f79
push 0
mov ecx, esi
call fcn.23b334c0
test eax, 0x1000000
je 0x23b34f79
mov ecx, dword [esi + 0xc]
push 0
push 0
push 0x1000000
push ecx
call fcn.23a3066c
xor eax, eax
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x14