Function at 0x460a4af0
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x8ec
mov eax, dword [0x460ec018]
xor eax, esp
mov dword [esp + 0x8e8], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x10], eax
push edi
test ecx, ecx
je 0x460a4b43
xor edx, edx
call fcn.460e76e5
mov ecx, dword [esp + 0x20]
mov ebx, eax
xor eax, eax
jmp 0x460a4b45
mov ebx, eax
mov edi, dword [ebp + 0xc]
mov edx, edi
mov dword [esp + 0x18], edi
sub edx, 1
je 0x460a4bbf
sub edx, 1
je 0x460a4b71
sub edx, 0x7f
jne 0x460a4bce
push eax
push eax
mov edx, esi
call fcn.460a565b
neg eax
sbb eax, eax
neg eax
jmp 0x460a5644
test ebx, ebx
je 0x460a4bb8
mov esi, 0x460ec558
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x460eca6c]
cmp ecx, ebx
jne 0x460a4b9e
mov eax, dword [ebx + 0x4c]
mov dword [0x460eca6c], eax
jmp 0x460a4baa
mov eax, dword [ecx + 0x4c]
cmp eax, ebx
je 0x460a4ba4
mov ecx, eax
test ecx, ecx
jne 0x460a4b95
jmp 0x460a4baa
mov eax, dword [ebx + 0x4c]
mov dword [ecx + 0x4c], eax
mov ecx, ebx
call fcn.460a578f
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x460a5644
test ebx, ebx
jne 0x460a4be7
push eax
push eax
mov edx, esi
call fcn.460a565b
mov ebx, eax
test ebx, ebx
jne 0x460a4be7
mov ecx, dword [esp + 0x20]
mov edx, edi
push esi
push dword [esp + 0x14]
call fcn.460e73ac
jmp 0x460a5644
cmp dword [ebx + 0x10], 0
je 0x460a4bb8
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x460ed508]
call esi
mov ecx, dword [ebx + 0x20]
test ecx, 0x7000
je 0x460a4cc4
test ecx, 0x1000
je 0x460a4c32
lea eax, [edi - 0x100]
cmp eax, 9
ja 0x460a4c32
cmp edi, 0x100
jne 0x460a4c5d
mov al, byte [0x460ec784]
and al, 0xf0
cmp al, 0x60
jne 0x460a4c5d
test ecx, 0x2000
je 0x460a4c4a
cmp edi, 0x21
je 0x460a4c5d
lea eax, [edi - 0x200]
cmp eax, 0xe
jbe 0x460a4c5d
test ecx, 0x4000
je 0x460a4cc4
lea eax, [edi - 0x114]
cmp eax, 1
ja 0x460a4cc4
xor eax, eax
lea edi, [esp + 0x2c]
stosd dword es:[edi], eax
lea ecx, [esp + 0x2c]
push ecx
push 0x700
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], eax
mov eax, dword [ebx]
mov dword [esp + 0x40], edi
mov esi, dword [eax + 0x98]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
test eax, eax
jne 0x460a4cbd
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x18], edi
mov dword [ebp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], esi
jmp 0x460a4ccc
mov edx, edi
jmp 0x460a561b
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, 0xb2
cmp edi, eax
ja 0x460a5152
je 0x460a5145
cmp edi, 0x20
ja 0x460a4f79
je 0x460a4f13
cmp edi, 0xe
ja 0x460a4eeb
je 0x460a4ecc
sub edi, 1
je 0x460a4df8
sub edi, 4
je 0x460a4dbe
sub edi, 5
je 0x460a4d53
sub edi, 3
jne 0x460a55f1
cmp dword [0x460ec72c], 1
je 0x460a4d33
test dword [ebx + 0x20], 0x40000
je 0x460a55f1
lea eax, [esp + 0x4c]
push 0
push eax
push esi
lea edx, [esp + 0x1c]
lea ecx, [ebp + 0xc]
call fcn.460e3a0d
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x18], edx
jmp 0x460a55ed
mov ecx, dword [ebx + 0x20]
xor eax, eax
shr ecx, 0xb
and ecx, 1
test edx, edx
sete al
cmp ecx, eax
je 0x460a4d83
push 1
push 0
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [esp + 0x10]
mov ecx, ebx
call fcn.460a73e6
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x20]
neg edx
sbb edx, edx
and eax, 0xfffff7ff
and edx, 0xfffff800
add edx, 0x800
or edx, eax
mov dword [ebx + 0x20], edx
and dword [esp + 0x14], 0
mov eax, dword [ebx]
mov esi, dword [eax + 0xe0]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460a55ed
mov edi, dword [ebx + 0x10]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x20]
mov esi, dword [edi]
push edx
push 5
mov ecx, dword [esi + 0xc]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
push ecx
movzx eax, ax
push eax
push ecx
push esi
mov ecx, ebx
call fcn.460a6998
jmp 0x460a562c
cmp dword [0x460ec72c], 1
jne 0x460a4eb2
test dword [ebx + 0x20], 0x40000
jne 0x460a4eb2
push 0xc
pop ecx
lea edi, [esp + 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x460ec780]
xor edi, edi
mov dword [esp + 0x4d0], edi
call fcn.460e8e51
mov esi, dword [esp + 0x1c]
push eax
push ecx
lea ecx, [esp + 0x4d8]
push dword [esi + 0x24]
call fcn.460e6b20
push edi
push ecx
push dword [esi + 0x28]
lea ecx, [esp + 0xbc]
mov dword [esp + 0xbc], edi
call fcn.460e6b20
mov eax, dword [esp + 0x4d0]
lea ecx, [esp + 0x70]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], eax
mov eax, dword [ebx]
push ecx
mov esi, dword [eax + 0xec]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
lea ecx, [esp + 0xb0]
mov dword [esp + 0x14], eax
call fcn.460e6aff
lea ecx, [esp + 0x4d0]
call fcn.460e6aff
jmp 0x460a5630
mov eax, dword [ebx]
push esi
mov esi, dword [eax + 0xec]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460a562c
cmp dword [0x460ec72c], 1
je 0x460a4ee2
test dword [ebx + 0x20], 0x40000
je 0x460a55f1
lea eax, [esp + 0x44]
jmp 0x460a4d37
cmp edi, 0xf
je 0x460a5326
cmp edi, 0x15
je 0x460a4da5
cmp edi, 0x18
jne 0x460a55f1
push edx
mov ecx, ebx
call fcn.460a6a92
jmp 0x460a5630
mov edi, dword [esp + 0x20]
cmp edx, edi
jne 0x460a5630
push esi
push edx
push 0x20
pop edx
mov ecx, edi
call fcn.460e73ac
mov dword [esp + 0x14], eax
test eax, eax
jne 0x460a5630
lea eax, [esp + 0x60]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [esp + 0x60]
push eax
push edi
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [esp + 0x64]
mov edi, dword [ebx + 0x10]
xor eax, eax
push dword [esp + 0x64]
push eax
mov esi, dword [edi]
push eax
push eax
push eax
mov ecx, dword [esi + 0x1c]
push eax
push 0xffffffffffffffff
push 1
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0x1c]
jmp 0x460a519c
sub edi, 0x46
je 0x460a50e9
sub edi, 4
je 0x460a50aa
sub edi, 0x32
je 0x460a50a0
sub edi, 1
je 0x460a5068
sub edi, 8
je 0x460a5001
dec edi
sub edi, 1
je 0x460a4fe6
sub edi, 0x2a
jne 0x460a55f1
test dword [ebx + 0x20], 0x8000
je 0x460a55f1
mov ecx, dword [ebx + 0x10]
call fcn.460a0c3c
test eax, eax
jne 0x460a55f1
cmp edx, 0xffffffff
je 0x460a55f1
mov edx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
jmp 0x460a55f1
mov eax, dword [ebx]
push esi
push edx
mov esi, dword [eax + 0xe4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460a562c
mov edi, dword [esp + 0x20]
mov ecx, edi
push esi
push edx
mov edx, 0x85
call fcn.460e73ac
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp eax, 1
jne 0x460a5630
cmp dword [0x460ec728], 4
jae 0x460a5630
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x460a5630
push esi
push edi
mov ecx, ebx
call fcn.460a6850
push esi
push edi
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x460a5630
mov dword [esp + 0x14], 1
cmp edx, 0xffffffec
jne 0x460a5630
mov eax, dword [ebx + 0x1c]
mov ecx, dword [esi + 4]
xor eax, ecx
test al, 0x20
je 0x460a5630
mov dword [ebx + 0x1c], ecx
mov ecx, dword [ebx + 0x10]
push 1
call fcn.460bb7b0
and dword [esp + 0x14], 0
jmp 0x460a5630
push esi
push edx
push 0x7c
pop edx
jmp 0x460a5623
mov eax, 0x4b0
cmp word [esi + 2], ax
jne 0x460a50e3
cmp word [esi], 0xc
jne 0x460a50e3
lea edx, [esp + 0x24]
mov dword [esp + 0x24], 0x8000
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edx
mov esi, dword [esi + 8]
mov dword [esp + 0x18], 0x461
mov dword [esp + 0x1c], esi
jmp 0x460a55f1
push esi
push edx
push 0x4a
jmp 0x460a50a4
mov edi, dword [esp + 0x20]
mov ecx, edi
push esi
push edx
push 0x46
pop edx
call fcn.460e73ac
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp eax, 1
jne 0x460a5630
mov eax, dword [ebx + 0x10]
test dword [eax + 0x60], 0x80000
jne 0x460a5630
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x460a5630
mov ecx, edi
call fcn.460a67e6
jmp 0x460a5630
push esi
mov ecx, ebx
call fcn.460a6065
jmp 0x460a5630
mov eax, 0x318
cmp edi, eax
ja 0x460a5416
je 0x460a5326
mov eax, 0xd2
cmp edi, eax
ja 0x460a5207
je 0x460a51fe
cmp edi, 0xb4
jbe 0x460a51dc
cmp edi, 0xcc
je 0x460a51a9
cmp edi, 0xcf
jne 0x460a55f1
push edx
mov ecx, ebx
call fcn.460a64ca
mov dword [esp + 0x14], 1
jmp 0x460a5630
cmp word [ebx + 0x44], dx
je 0x460a5630
mov edi, dword [ebx + 0x10]
movzx eax, dx
neg eax
mov word [ebx + 0x44], dx
mov esi, dword [edi]
sbb eax, eax
and eax, 0x10
push eax
push 0x10
mov ecx, dword [esi + 0x4c]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0x4c]
jmp 0x460a5630
xor eax, eax
mov ecx, ebx
cmp edi, 0xb3
sete al
push eax
xor eax, eax
cmp edx, 1
sete al
push eax
push esi
call fcn.460a612d
jmp 0x460a5630
movzx eax, word [ebx + 0x44]
jmp 0x460a562c
sub edi, 0xd3
je 0x460a530f
sub edi, 0x2d
je 0x460a5304
dec edi
sub edi, 1
jne 0x460a55f1
test dword [0x460ec784], 0x4000
jne 0x460a55f1
cmp dword [0x460ec72c], 1
je 0x460a524c
test dword [ebx + 0x20], 0x40000
je 0x460a52dd
mov eax, dword [ebx + 0x20]
lea edx, [esp + 0x10]
shr eax, 0x11
lea ecx, [ebp + 0xc]
and al, 1
mov byte [esp + 0x18], al
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x60]
shr eax, 0x13
and eax, 1
push eax
lea eax, [esp + 0x1c]
push eax
push esi
call fcn.460e3a0d
cmp byte [esp + 0x19], 0
je 0x460a5295
or dword [ebx + 0x20], 0x20000
mov eax, dword [esp + 0x10]
shl eax, 8
mov word [ebx + 0x46], ax
jmp 0x460a5630
cmp byte [esp + 0x1a], 0
je 0x460a52be
movzx eax, word [ebx + 0x46]
or dword [esp + 0x10], eax
and dword [ebx + 0x20], 0xfffdffff
xor eax, eax
mov word [ebx + 0x46], ax
mov dword [esp + 0x18], 0x286
jmp 0x460a55ed
cmp byte [esp + 0x1b], 0
mov edx, dword [esp + 0x10]
je 0x460a52d6
mov dword [esp + 0x18], 0x286
jmp 0x460a55f1
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [ebx]
push esi
mov esi, dword [eax + 0xdc]
push edx
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
mov dword [esp + 0x14], eax
test eax, eax
jne 0x460a55ed
jmp 0x460a5630
mov eax, dword [ebx]
push esi
mov esi, dword [eax + 0xd8]
jmp 0x460a52e6
mov eax, esi
mov ecx, ebx
shr eax, 0x10
push eax
movzx eax, si
push eax
push edx
call fcn.460a7254
jmp 0x460a5630
mov esi, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x70]
push eax
push esi
call dword [sym.imp.USER32.dll_BeginPaint]
cmp dword [ebx + 0x40], 0
mov edi, eax
mov dword [esp + 0x18], edi
je 0x460a535f
push 1
push dword [ebx + 0x40]
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
push edi
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
lea eax, [esp + 0x60]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClientRect]
push edi
call dword [sym.imp.GDI32.dll_SaveDC]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push edi
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov edi, dword [ebx + 0x10]
lea ecx, [esp + 0x78]
xor eax, eax
push eax
push eax
mov esi, dword [edi]
push eax
push ecx
push eax
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esi + 0x10]
push eax
push dword [esp + 0x34]
push eax
push eax
push 0xffffffffffffffff
push 1
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0x10]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x460a53cd
push 1
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectPalette]
mov eax, dword [ebx]
mov esi, dword [eax + 0xd4]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
mov esi, dword [esp + 0x20]
cmp eax, 1
jne 0x460a53fc
cmp dword [0x460ec728], 4
jae 0x460a53fc
push edi
push esi
mov ecx, ebx
call fcn.460a6850
push 0xffffffffffffffff
push edi
call dword [sym.imp.GDI32.dll_RestoreDC]
lea eax, [esp + 0x70]
push eax
push esi
call dword [sym.imp.USER32.dll_EndPaint]
jmp 0x460a5630
sub edi, 0x43f
je 0x460a55ae
sub edi, 4
je 0x460a5533
dec edi
sub edi, 1
je 0x460a550c
sub edi, 8
je 0x460a54eb
sub edi, 1
je 0x460a54d1
sub edi, 0xf
je 0x460a54ba
sub edi, 3
jne 0x460a55f1
mov eax, dword [ebx + 0x18]
dec edx
neg edx
sbb edx, edx
and edx, 0xfff00000
add edx, 0x200000
or eax, edx
mov dword [ebx + 0x18], eax
test esi, esi
jne 0x460a5479
not edx
and edx, eax
mov dword [ebx + 0x18], edx
mov eax, dword [ebx]
push esi
push dword [esp + 0x14]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
cmp dword [esp + 0x1c], 0
je 0x460a5630
mov eax, dword [ebx]
xor ecx, ecx
push 1
push ecx
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
push dword [esp + 0x1c]
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460a5630
mov esi, dword [esp + 0x20]
xor eax, eax
push eax
push eax
push esi
mov dword [ebx + 0x40], edx
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x460a5630
mov eax, dword [ebx + 0x18]
and eax, 0x10c99c0
test byte [ebx + 0x20], 8
je 0x460a562c
or eax, 1
jmp 0x460a562c
push esi
push edx
mov ecx, ebx
call fcn.460a630c
mov eax, dword [ebx + 0x18]
and eax, 0x10c99c0
mov dword [esp + 0x14], eax
test byte [ebx + 0x20], 8
je 0x460a5630
jmp 0x460a54e3
mov eax, dword [ebx + 0x20]
mov ecx, esi
and ecx, 8
mov edx, esi
shr edx, 4
and eax, 0xffff8fff
shl ecx, 0xb
and edx, 0x3000
or ecx, eax
or ecx, edx
mov dword [ebx + 0x20], ecx
jmp 0x460a55ed
mov eax, dword [ebx + 0x24]
neg edx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x20]
sbb edx, edx
and edx, 0xffffffc0
mov dword [ebx + 0x24], esi
add edx, 0x40
and eax, 0xffffffbf
or edx, eax
mov dword [ebx + 0x20], edx
cmp dword [esp + 0x10], 0
je 0x460a5564
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x14]
cmp eax, dword [ebx + 0x24]
je 0x460a5630
mov edi, dword [ebx + 0x10]
lea ecx, [esp + 0x60]
xor eax, eax
push ecx
mov dword [esp + 0x64], eax
mov esi, dword [edi]
push eax
push eax
push 0x15
mov ecx, dword [esi + 0xc]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
mov eax, dword [ebx]
xor ecx, ecx
push 1
push ecx
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x460ed508]
mov ecx, ebx
call esi
jmp 0x460a5630
test esi, esi
je 0x460a55f1
mov eax, dword [ebx + 0x18]
or eax, 0x100
mov dword [ebx + 0x18], eax
cmp dword [esp + 0x10], 0
push 0x20
pop edx
je 0x460a55d3
and eax, 0xfffffeff
mov dword [esp + 0x60], edx
mov dword [ebx + 0x18], eax
mov edi, dword [ebx + 0x10]
mov ecx, dword [esp + 0x60]
push ecx
push edx
mov eax, dword [edi]
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0x460ed508]
mov ecx, edi
call esi
mov edx, dword [esp + 0x10]
mov edi, dword [ebx + 0x10]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x20]
mov esi, dword [edi]
push edx
push dword [esp + 0x24]
mov ecx, dword [esi + 0xc]
call dword [0x460ed508]
mov ecx, edi
call dword [esi + 0xc]
cmp eax, 1
jne 0x460a5630
mov edx, dword [esp + 0x18]
push dword [esp + 0x1c]
push dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
call fcn.460e73ac
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
push ebx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x460ed508]
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x8f4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.460ea320
mov esp, ebp
pop ebp
ret 0x10