Function at 0x1002afad
Capabilities:
Check for software breakpoints

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x8cc
mov eax, dword [0x1007641c]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push edi
xor edi, edi
cmp eax, edi
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x880], ecx
mov dword [ebp - 0x88c], esi
mov dword [ebp - 0x884], edi
je 0x1002aff5
push edi
push eax
call fcn.1006ced2
mov ebx, eax
jmp 0x1002aff7
xor ebx, ebx
mov eax, dword [ebp + 0xc]
dec eax
je 0x1002b065
dec eax
je 0x1002b01e
sub eax, 0x7f
jne 0x1002b079
push edi
push edi
push esi
push dword [ebp - 0x888]
call fcn.1002ac69
neg eax
sbb eax, eax
neg eax
jmp 0x1002b9d4
cmp ebx, edi
je 0x1002b09c
mov esi, 0x100766b8
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x100765e8]
cmp eax, ebx
jne 0x1002b04a
mov eax, dword [ebx + 0x4c]
mov dword [0x100765e8], eax
jmp 0x1002b056
mov ecx, dword [eax + 0x4c]
cmp ecx, ebx
je 0x1002b050
mov eax, ecx
cmp eax, edi
jne 0x1002b041
jmp 0x1002b056
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x4c], ecx
push ebx
call fcn.1002ab25
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1002b09c
cmp ebx, edi
jne 0x1002b097
push edi
push edi
push esi
push dword [ebp - 0x888]
call fcn.1002ac69
mov ebx, eax
cmp ebx, edi
jne 0x1002b097
push esi
push dword [ebp - 0x880]
push dword [ebp + 0xc]
push dword [ebp - 0x888]
call fcn.1006ce90
jmp 0x1002b9d4
cmp dword [ebx + 0x10], edi
jne 0x1002b0a3
xor eax, eax
jmp 0x1002b9d4
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov edx, dword [ebx + 0x20]
mov eax, edx
shr eax, 0xc
and eax, 1
jne 0x1002b0bf
test dh, 0x60
je 0x1002b17b
cmp eax, edi
mov ecx, dword [ebp + 0xc]
je 0x1002b0e4
lea eax, [ecx - 0x100]
cmp eax, 9
ja 0x1002b0e4
cmp ecx, 0x100
jne 0x1002b109
mov al, byte [0x10076c0c]
and al, 0xf0
cmp al, 0x60
jne 0x1002b109
test dh, 0x20
je 0x1002b0f9
cmp ecx, 0x21
je 0x1002b109
lea eax, [ecx - 0x200]
cmp eax, 0xd
jbe 0x1002b109
test dh, 0x40
je 0x1002b173
lea eax, [ecx - 0x114]
cmp eax, 1
ja 0x1002b173
push 0xc
lea eax, [ebp - 0x8a8]
push eax
call fcn.10007a54
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x89c], eax
mov eax, dword [ebp - 0x880]
lea ecx, [ebp - 0x8a8]
push ecx
mov dword [ebp - 0x898], eax
mov eax, dword [ebx]
push 0x700
mov ecx, ebx
mov dword [ebp - 0x894], esi
call dword [eax + 0x98]
test eax, eax
jne 0x1002b9ad
mov eax, dword [ebp - 0x89c]
mov esi, dword [ebp - 0x894]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x898]
mov dword [ebp - 0x880], eax
mov dword [ebp - 0x88c], esi
jmp 0x1002b181
mov eax, dword [ebp - 0x880]
jmp 0x1002b184
mov eax, dword [ebp - 0x880]
mov ecx, dword [ebp + 0xc]
mov edx, 0xb2
cmp ecx, edx
ja 0x1002b550
je 0x1002b543
cmp ecx, 0x20
ja 0x1002b3ec
je 0x1002b379
cmp ecx, 0xe
ja 0x1002b351
je 0x1002b320
dec ecx
je 0x1002b282
sub ecx, 4
je 0x1002b24d
sub ecx, 5
je 0x1002b1f1
sub ecx, 3
jne 0x1002b994
cmp dword [0x10076a54], 1
je 0x1002b1e6
test byte [ebx + 0x22], 4
je 0x1002b994
lea eax, [ebp - 0x8cc]
jmp 0x1002b339
mov ecx, dword [ebx + 0x20]
shr ecx, 0xb
xor edx, edx
and ecx, 1
cmp eax, edi
sete dl
xor ecx, edx
je 0x1002b222
mov eax, dword [ebx]
push 1
push edi
mov ecx, ebx
call dword [eax + 0x24]
push dword [ebp - 0x880]
mov ecx, ebx
call fcn.1002a37c
mov eax, dword [ebp - 0x880]
xor ecx, ecx
cmp eax, edi
sete cl
shl ecx, 0xb
xor ecx, dword [ebx + 0x20]
and ecx, 0x800
xor dword [ebx + 0x20], ecx
mov dword [ebp - 0x884], edi
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xec]
jmp 0x1002b98e
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
lea edi, [ebp - 0x884]
push edi
push esi
push eax
push 5
call dword [edx + 0xc]
mov eax, esi
shr eax, 0x10
push eax
movzx eax, si
push eax
push dword [ebp - 0x880]
mov ecx, ebx
push dword [ebp - 0x888]
call fcn.10029af7
jmp 0x1002b9c2
cmp dword [0x10076a54], 1
jne 0x1002b310
test byte [ebx + 0x22], 4
jne 0x1002b310
mov esi, dword [ebp - 0x88c]
push 0xc
pop ecx
lea edi, [ebp - 0x34]
push 0
rep movsd dword es:[edi], dword [esi]
call fcn.1000d34a
mov esi, dword [ebp - 0x88c]
push eax
push dword [esi + 0x24]
lea ecx, [ebp - 0x460]
call fcn.1006ebcc
push 0
push dword [esi + 0x28]
lea ecx, [ebp - 0x87c]
call fcn.1006ebcc
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x87c]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0xf8]
lea ecx, [ebp - 0x87c]
mov dword [ebp - 0x884], eax
call fcn.1006cd4f
lea ecx, [ebp - 0x460]
call fcn.1006cd4f
jmp 0x1002b9c8
mov eax, dword [ebx]
push esi
mov ecx, ebx
call dword [eax + 0xf8]
jmp 0x1002b9c2
cmp dword [0x10076a54], 1
je 0x1002b333
test byte [ebx + 0x22], 4
je 0x1002b994
lea eax, [ebp - 0x8b8]
push edi
push eax
push esi
lea eax, [ebp - 0x880]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.100706ee
jmp 0x1002b98e
cmp ecx, 0xf
je 0x1002b722
cmp ecx, 0x15
je 0x1002b23e
cmp ecx, 0x18
jne 0x1002b994
push eax
mov ecx, ebx
call fcn.10029b98
jmp 0x1002b9c8
cmp eax, dword [ebp - 0x888]
jne 0x1002b9c8
push esi
push eax
push 0x20
push dword [ebp - 0x888]
call fcn.1006ce90
cmp eax, edi
mov dword [ebp - 0x884], eax
jne 0x1002b9c8
lea eax, [ebp - 0x890]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x890]
push eax
push dword [ebp - 0x888]
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x88c]
mov ecx, dword [ebx + 0x10]
push dword [ebp - 0x890]
mov eax, dword [ecx]
push edi
push edi
push edi
push edi
push edi
xor esi, esi
push 0xffffffffffffffff
inc esi
push esi
call dword [eax + 0x1c]
mov dword [ebp - 0x884], esi
jmp 0x1002b9c8
sub ecx, 0x46
je 0x1002b4fb
sub ecx, 4
je 0x1002b4b5
sub ecx, 0x32
je 0x1002b4ac
dec ecx
je 0x1002b471
sub ecx, 8
je 0x1002b465
dec ecx
dec ecx
je 0x1002b454
sub ecx, 0x2a
jne 0x1002b994
test byte [ebx + 0x21], 0x80
je 0x1002b994
mov ecx, dword [ebx + 0x10]
call fcn.10020058
test eax, eax
jne 0x1002b98e
mov eax, dword [ebp - 0x880]
cmp eax, 0xffffffff
je 0x1002b994
xor esi, esi
xor eax, eax
mov dword [ebp - 0x880], eax
jmp 0x1002b994
mov edx, dword [ebx]
push esi
push eax
mov ecx, ebx
call dword [edx + pe_nt_image_headers32]
jmp 0x1002b9c2
push esi
push eax
push 0x85
jmp 0x1002b9b7
cmp eax, 0xffffffec
mov dword [ebp - 0x884], 1
jne 0x1002b9c8
mov esi, dword [esi + 4]
mov eax, dword [ebx + 0x1c]
xor eax, esi
test al, 0x20
je 0x1002b9c8
mov ecx, dword [ebx + 0x10]
push 1
mov dword [ebx + 0x1c], esi
call fcn.100417cb
mov dword [ebp - 0x884], edi
jmp 0x1002b9c8
push esi
push eax
push 0x7c
jmp 0x1002b9b7
cmp word [esi + 2], 0x4b0
jne 0x1002b4f2
cmp word [esi], 0xc
jne 0x1002b4f2
lea eax, [ebp - 0x8b0]
mov dword [ebp - 0x8b0], 0x8000
mov dword [ebp - 0x8ac], 0x4b0
mov dword [ebp + 0xc], 0x461
mov dword [ebp - 0x880], eax
mov esi, dword [esi + 8]
jmp 0x1002b994
push esi
push eax
push 0x4a
jmp 0x1002b9b7
push esi
push eax
push 0x46
push dword [ebp - 0x888]
call fcn.1006ce90
mov dword [ebp - 0x884], eax
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xe0]
cmp eax, 1
jne 0x1002b9c8
mov eax, dword [ebx + 0x10]
test byte [eax + 0x6e], 8
jne 0x1002b9c8
push esi
push dword [ebp - 0x888]
mov ecx, ebx
call fcn.10029a8d
jmp 0x1002b9c8
push esi
mov ecx, ebx
call fcn.10029845
jmp 0x1002b9c8
mov edx, 0x318
cmp ecx, edx
ja 0x1002b807
je 0x1002b722
mov edx, 0xd2
cmp ecx, edx
ja 0x1002b60e
je 0x1002b605
mov edi, 0xb3
cmp ecx, edi
jb 0x1002b994
cmp dword [ebp + 0xc], 0xb4
jbe 0x1002b5e6
cmp dword [ebp + 0xc], 0xcc
je 0x1002b5b9
cmp dword [ebp + 0xc], 0xcf
jne 0x1002b994
push eax
mov ecx, ebx
call fcn.1002aac1
mov dword [ebp - 0x884], 1
jmp 0x1002b9c8
cmp word [ebx + 0x44], ax
je 0x1002b9c8
mov ecx, dword [ebx + 0x10]
mov word [ebx + 0x44], ax
mov dx, word [ebp - 0x880]
mov eax, dword [ecx]
neg dx
sbb edx, edx
and edx, 0x10
push edx
push 0x10
call dword [eax + 0x4c]
jmp 0x1002b9c8
xor ecx, ecx
cmp dword [ebp + 0xc], edi
sete cl
push ecx
xor ecx, ecx
cmp eax, 1
sete cl
push ecx
push esi
mov ecx, ebx
call fcn.1002a838
jmp 0x1002b9c8
movzx eax, word [ebx + 0x44]
jmp 0x1002b9c2
sub ecx, 0xd3
je 0x1002b70b
sub ecx, 0x2d
je 0x1002b6ec
dec ecx
dec ecx
jne 0x1002b994
test byte [0x10076c0d], 0x40
jne 0x1002b994
cmp dword [0x10076a54], 1
je 0x1002b64b
test byte [ebx + 0x22], 4
je 0x1002b6de
mov eax, dword [ebx + 0x20]
shr eax, 0x11
and al, 1
mov byte [ebp - 0x88c], al
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x6c]
shr eax, 0x13
and eax, 1
push eax
lea eax, [ebp - 0x88c]
push eax
push esi
lea eax, [ebp - 0x880]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.100706ee
cmp byte [ebp - 0x88b], 0
je 0x1002b69c
or byte [ebx + 0x22], 2
xor eax, eax
mov ah, byte [ebp - 0x880]
mov word [ebx + 0x46], ax
jmp 0x1002b9c8
cmp byte [ebp - 0x88a], 0
je 0x1002b6c3
movzx eax, word [ebx + 0x46]
or dword [ebp - 0x880], eax
and byte [ebx + 0x22], 0xfd
mov word [ebx + 0x46], di
mov dword [ebp + 0xc], 0x286
jmp 0x1002b98e
cmp byte [ebp - 0x889], 0
mov eax, dword [ebp - 0x880]
je 0x1002b6de
mov dword [ebp + 0xc], 0x286
jmp 0x1002b994
mov edx, dword [ebx]
push esi
push eax
mov ecx, ebx
call dword [edx + 0xe8]
jmp 0x1002b6f8
mov edx, dword [ebx]
push esi
push eax
mov ecx, ebx
call dword [edx + 0xe4]
cmp eax, edi
mov dword [ebp - 0x884], eax
jne 0x1002b98e
jmp 0x1002b9c8
mov ecx, esi
shr ecx, 0x10
push ecx
movzx ecx, si
push ecx
push eax
mov ecx, ebx
call fcn.1002a23d
jmp 0x1002b9c8
cmp eax, edi
mov dword [ebp - 0x88c], edi
je 0x1002b735
mov ecx, dword [ebx + 0x10]
test byte [ecx + 0x6e], 8
je 0x1002b745
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x888]
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, eax
mov eax, dword [ebx + 0x40]
cmp eax, edi
je 0x1002b765
push 1
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push esi
mov dword [ebp - 0x88c], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
lea eax, [ebp - 0x8a0]
push eax
push dword [ebp - 0x888]
call dword [sym.imp.USER32.dll_GetClientRect]
push esi
call dword [sym.imp.GDI32.dll_SaveDC]
push dword [ebp - 0x894]
push dword [ebp - 0x898]
push dword [ebp - 0x89c]
push dword [ebp - 0x8a0]
push esi
call dword [sym.imp.GDI32.dll_IntersectClipRect]
mov ecx, dword [ebx + 0x10]
push edi
mov eax, dword [ecx]
push edi
push edi
lea edx, [ebp - 0x3c]
push edx
push edi
lea edx, [ebp - 0x8a0]
push edx
push edi
push esi
push edi
push edi
push 0xffffffffffffffff
push 1
call dword [eax + 0x10]
cmp dword [ebp - 0x88c], edi
je 0x1002b7d4
push 1
push dword [ebp - 0x88c]
push esi
call dword [sym.imp.GDI32.dll_SelectPalette]
push 0xffffffffffffffff
push esi
call dword [sym.imp.GDI32.dll_RestoreDC]
cmp dword [ebp - 0x880], edi
je 0x1002b7f2
mov eax, dword [ebx + 0x10]
test byte [eax + 0x6e], 8
je 0x1002b9c8
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x888]
call dword [sym.imp.USER32.dll_EndPaint]
jmp 0x1002b9c8
sub ecx, 0x43f
je 0x1002b963
sub ecx, 4
je 0x1002b8fd
dec ecx
dec ecx
je 0x1002b8d6
sub ecx, 8
je 0x1002b8ad
dec ecx
je 0x1002b8a1
sub ecx, 0xf
je 0x1002b88a
sub ecx, 3
jne 0x1002b994
dec eax
neg eax
sbb eax, eax
and eax, 0xfff00000
add eax, 0x200000
or dword [ebx + 0x18], eax
cmp esi, edi
mov ecx, dword [ebx + 0x18]
jne 0x1002b85e
not eax
and eax, ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebx]
push esi
push dword [ebp - 0x880]
mov ecx, ebx
call dword [eax + 0x14]
cmp esi, edi
je 0x1002b9c8
mov eax, dword [ebx]
push 1
push edi
push edi
push dword [ebp - 0x880]
mov ecx, ebx
call dword [eax + 0x1c]
jmp 0x1002b9c8
push 1
push edi
push dword [ebp - 0x888]
mov dword [ebx + 0x40], eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x1002b9c8
mov ecx, ebx
call fcn.10029954
jmp 0x1002b9c2
push esi
push eax
mov ecx, ebx
call fcn.1002a935
mov eax, dword [ebx + 0x18]
and eax, 0x14c99c0
mov dword [ebp - 0x884], eax
test byte [ebx + 0x20], 8
je 0x1002b9c8
or eax, 1
jmp 0x1002b9c2
mov edx, dword [ebx + 0x20]
mov ecx, esi
and ecx, 8
mov eax, esi
shr eax, 4
shl ecx, 0xb
and edx, 0xffff8fff
or ecx, edx
and eax, 0x3000
or ecx, eax
mov dword [ebx + 0x20], ecx
jmp 0x1002b98e
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x884], ecx
xor ecx, ecx
cmp eax, edi
sete cl
mov dword [ebx + 0x24], esi
shl ecx, 6
xor ecx, dword [ebx + 0x20]
and ecx, 0x40
xor dword [ebx + 0x20], ecx
cmp dword [ebp - 0x880], edi
je 0x1002b92f
push 5
call dword [sym.imp.USER32.dll_GetSysColor]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 0x884]
cmp eax, dword [ebx + 0x24]
je 0x1002b9c8
mov ecx, dword [ebx + 0x10]
lea edx, [ebp - 0x88c]
push edx
push edi
push edi
mov dword [ebp - 0x88c], edi
mov eax, dword [ecx]
push 0x15
call dword [eax + 0xc]
mov eax, dword [ebx]
push 1
push edi
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x1002b9c8
cmp esi, edi
je 0x1002b994
or byte [ebx + 0x19], 1
mov eax, dword [ebx + 0x18]
xor edx, edx
cmp dword [ebp - 0x880], edi
je 0x1002b983
and eax, 0xfffffeff
push 0x20
mov dword [ebx + 0x18], eax
pop edx
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
push edx
push 0x20
call dword [eax + 0x4c]
mov eax, dword [ebp - 0x880]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
lea edi, [ebp - 0x884]
push edi
push esi
push eax
push dword [ebp + 0xc]
call dword [edx + 0xc]
cmp eax, 1
jne 0x1002b9c8
push esi
push dword [ebp - 0x880]
push dword [ebp + 0xc]
push dword [ebp - 0x888]
call fcn.1006ce90
mov dword [ebp - 0x884], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp - 0x884]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.1007344b
leave
ret 0x10