Function at 0x40e5d0
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov edi, dword [esi + 0x6ae4]
test edi, edi
je 0x40e756
mov ebx, dword [esp + 0x38]
lea eax, [esi + edi*8]
lea ebp, [edi + eax + 0x16c]
movzx eax, byte [ebp - 5]
sub ebp, 9
dec edi
dec eax
mov dword [esp + 0x10], edi
je 0x40e764
dec eax
je 0x40e6a1
sub eax, 2
jne 0x40e74e
mov ecx, dword [ebp]
mov eax, dword [esi + ecx*4 + 0xd4ac]
test eax, eax
je 0x40e74e
cmp byte [eax + 0x2e], 3
je 0x40e74e
mov ecx, dword [eax + 0x23]
mov edx, dword [eax + 0x27]
mov dword [esp + 0x20], ecx
mov eax, dword [ebp]
mov eax, dword [esi + eax*4 + 0xd4ac]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
mov dword [esp + 0x24], eax
add eax, 0x40
add ecx, 0x40
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
push ebx
mov dword [esp + 0x2c], ecx
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x40e74e
cmp byte [esp + 0x3c], 4
jne 0x40e74e
lea edx, [esi + edi*8]
mov ax, word [edi + edx + 0x16c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
mov edx, dword [ebp]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esi + 0xd4a0]
mov dword [esp + 0x1c], edx
call fcn.00401860
mov eax, dword [esp + 0x1c]
cmp eax, dword [esi + 0xd4a4]
je 0x40e74e
mov edi, dword [eax + 0x10]
test edi, edi
je 0x40e74a
cmp byte [edi + 0x2e], 3
je 0x40e74a
cmp byte [edi + 0x34], 3
je 0x40e74a
mov ecx, esi
call fcn.00401910
mov edx, eax
mov eax, 0x3e8
cmp word [edx + 0x1a8], ax
je 0x40e700
cmp word [edi + 0x1a8], ax
je 0x40e74a
mov eax, dword [edi + 0x23]
mov ecx, dword [edi + 0x27]
mov dword [esp + 0x20], eax
mov edx, dword [edi + 0x23]
mov edi, dword [edi + 0x27]
add eax, 0x40
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
push ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
push eax
lea ecx, [esp + 0x28]
add edi, 0x40
push ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], edi
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x40e74a
cmp byte [esp + 0x3c], 2
je 0x40e855
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x40e5f5
pop edi
pop esi
pop ebp
or ax, 0xffff
pop ebx
add esp, 0x20
ret 0xc
mov edx, dword [ebp]
mov ecx, dword [esi + edx*4 + 0xd63c]
test ecx, ecx
je 0x40e74e
cmp byte [ecx + 0x2e], 3
je 0x40e74e
cmp byte [ecx + 0x34], 3
je 0x40e74e
call fcn.00482380
test al, al
je 0x40e74e
mov ecx, 0x4c81f0
call fcn.0041ab70
test eax, eax
je 0x40e7e8
mov ecx, esi
call fcn.00401910
mov di, word [eax + 0x1a8]
mov ecx, 0x4c81f0
call fcn.0041ab60
cmp ax, di
jne 0x40e7e4
mov eax, dword [ebp]
mov ecx, dword [esi + eax*4 + 0xd63c]
mov ax, word [ecx + 0x2f]
cmp ax, 0xca
je 0x40e74a
cmp ax, 0xcb
je 0x40e74a
cmp ax, 0xcc
je 0x40e74a
cmp ax, 0xcd
je 0x40e74a
mov edi, dword [esp + 0x10]
mov edx, dword [ebp]
mov eax, dword [esi + edx*4 + 0xd63c]
mov ecx, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
add ecx, 0x40
mov dword [esp + 0x20], ecx
mov edx, dword [ebp]
mov dword [esp + 0x18], eax
mov eax, dword [esi + edx*4 + 0xd63c]
mov edx, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
add eax, 0x20
mov dword [esp + 0x24], eax
add eax, 0x40
add ecx, 0x40
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
push ebx
mov dword [esp + 0x2c], ecx
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x40e74e
cmp byte [esp + 0x3c], 1
je 0x40e68c
jmp 0x40e74e
mov eax, dword [esp + 0x10]
pop edi
lea ecx, [esi + eax*8]
mov ax, word [eax + ecx + 0x16c]
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc