Function at 0x6506e0
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x190
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x1f8]
push edi
call fcn.00652480
test eax, eax
je case.0x6507a5.21
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
call ebx
mov edi, dword [esp + 0x1a0]
test ah, 0x80
je case.0x65073a.49
lea eax, [edi - 0x2d]
cmp eax, 0x2b
ja case.0x65073a.49
xor edx, edx
mov dl, byte [eax + 0x651360]
jmp dword [edx*4 + 0x65134c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xd0]
jmp case.0x65073a.49
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xc4]
jmp case.0x65073a.49
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc8]
jmp case.0x65073a.49
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0xcc]
push 0x10
call ebx
test ah, 0x80
je 0x650787
cmp edi, 0x2d
jne 0x650787
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xcc]
lea eax, [edi - 9]
cmp eax, 0x68
mov dword [esp + 0x20], eax
ja case.0x6507a5.21
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
xor ecx, ecx
mov cl, byte [eax + 0x6513c0]
jmp dword [ecx*4 + 0x65138c]
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x651092
lea edi, [esi + 0x1f8]
mov ecx, esi
push edi
call fcn.006577c0
test eax, eax
je 0x650827
mov edx, dword [esi + 0x1fc]
mov eax, dword [edi]
push 0xffffffffffffff97
push edx
push eax
mov ecx, esi
call fcn.0064fe00
mov ecx, dword [esi + 0x1fc]
mov edx, dword [edi]
push 1
push 0x8f67e0
push ecx
push edx
mov ecx, esi
call fcn.006567e0
mov eax, dword [esi + 0x1fc]
mov ecx, dword [edi]
push eax
push ecx
push 1
mov ecx, esi
call fcn.00657550
mov edx, dword [esi + 0x1fc]
mov eax, dword [edi]
push 0xffffffffffffff96
push edx
push eax
mov ecx, esi
call fcn.0064fe00
push 0
push edi
mov ecx, esi
call fcn.006524f0
push edi
mov ecx, esi
call fcn.006577c0
test eax, eax
je 0x65089b
mov ecx, dword [esi + 0x1fc]
push ecx
mov ecx, esi
call fcn.0065c680
test eax, eax
je 0x65089b
mov edx, dword [esi + 0x1fc]
mov eax, dword [edi]
push 0xffffffffffffff97
push edx
push eax
mov ecx, esi
call fcn.0064fe00
mov ecx, dword [esi + 0x1fc]
mov edx, dword [edi]
push 0
push ecx
push edx
mov ecx, esi
call fcn.00656a00
mov eax, dword [esi + 0x1fc]
mov ecx, dword [edi]
push eax
push ecx
push 1
mov ecx, esi
call fcn.00657550
mov edx, dword [esi + 0x1fc]
mov eax, dword [edi]
push 0xffffffffffffff96
push edx
push eax
mov ecx, esi
call fcn.0064fe00
push 0
push edi
mov ecx, esi
call fcn.006524f0
lea ecx, [esp + 0x6c]
push ebp
push ecx
mov ecx, esi
call fcn.00654ad0
mov edx, eax
mov ebx, dword [edx]
test ebx, ebx
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov eax, dword [edx + 8]
mov dword [esp + 0x30], eax
mov ebp, dword [edx + 0xc]
jl 0x65095e
test ecx, ecx
jl 0x65095e
test eax, eax
jl 0x65095e
test ebp, ebp
jl 0x65095e
cmp ebx, eax
jg 0x65095e
cmp ecx, ebp
jg 0x65095e
cmp ebx, eax
jg 0x65095e
mov edi, dword [esp + 0x2c]
cmp edi, ebp
jg 0x650955
push edi
push ebx
mov ecx, esi
call fcn.006577e0
test eax, eax
je 0x650950
push 0xffffffffffffff97
push edi
push ebx
mov ecx, esi
call fcn.0064fe00
push 1
push 0x8f67e0
push edi
push ebx
mov ecx, esi
call fcn.006567e0
push 0
push edi
push ebx
mov ecx, esi
call fcn.00656a00
push 0
push edi
push ebx
mov ecx, esi
call fcn.00656a70
push edi
push ebx
push 1
mov ecx, esi
call fcn.00657550
push 0xffffffffffffff96
push edi
push ebx
mov ecx, esi
call fcn.0064fe00
push 0
push edi
push ebx
mov ecx, esi
call fcn.00652510
inc edi
cmp edi, ebp
jle 0x6508f1
mov eax, dword [esp + 0x30]
inc ebx
cmp ebx, eax
jle 0x6508e9
mov eax, dword [esi + 0x1fc]
mov ecx, esi
push eax
call fcn.0065c550
cmp eax, 0xffffffff
pop ebp
je 0x650987
mov ecx, dword [esi + 0x1fc]
mov edx, dword [esi + 0x1f8]
push ecx
push edx
mov ecx, esi
call fcn.0065d8b0
mov eax, dword [esi + 0x1fc]
mov ecx, esi
push eax
call fcn.0065c5d0
cmp eax, 0xffffffff
je 0x651092
mov ecx, dword [esi + 0x1fc]
mov edx, dword [esi + 0x1f8]
push ecx
push edx
mov ecx, esi
call fcn.0065e1a0
jmp 0x651092
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x651092
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x650a6b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
lea edx, [esp + 0x50]
push ecx
push edx
mov ecx, esi
call fcn.0065d1a0
mov edi, eax
mov eax, dword [edi]
test eax, eax
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov edi, dword [edi + 0xc]
jl 0x650a1c
test ecx, ecx
jl 0x650a1c
test edx, edx
jl 0x650a1c
test edi, edi
jl 0x650a1c
cmp eax, edx
jg 0x650a1c
cmp ecx, edi
jg 0x650a1c
dec ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
mov eax, dword [esi + 0x118]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jle 0x650a34
dec ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
jne 0x650c51
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x110]
cmp eax, ecx
jle 0x650c51
mov edx, eax
mov eax, dword [esi + 0x114]
dec edx
dec eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
jmp 0x651092
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
push ecx
lea eax, [esp + 0xb0]
push edx
push eax
mov ecx, esi
call fcn.0065d1a0
mov ecx, eax
mov eax, dword [ecx]
test eax, eax
mov edi, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
jl 0x650ab3
test edi, edi
jl 0x650ab3
test edx, edx
jl 0x650ab3
test ecx, ecx
jl 0x650ab3
cmp eax, edx
jg 0x650ab3
cmp edi, ecx
jg 0x650ab3
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
mov eax, dword [esi + 0x114]
mov ecx, dword [esp + 0x10]
dec eax
cmp ecx, eax
jge 0x650acc
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
jne 0x650c51
mov edx, dword [esi + 0x10c]
mov eax, dword [esp + 0xc]
dec edx
cmp eax, edx
jge 0x650c51
inc eax
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x118]
mov dword [esp + 0x10], eax
jmp 0x651092
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x651092
mov eax, dword [esi + 0x3c8]
cmp eax, 1
jne 0x650bb4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
push ecx
lea eax, [esp + 0x90]
push edx
push eax
mov ecx, esi
call fcn.0065d1a0
mov edx, eax
mov eax, dword [edx]
test eax, eax
mov edi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
jl 0x650b64
test edi, edi
jl 0x650b64
test ecx, ecx
jl 0x650b64
test edx, edx
jl 0x650b64
cmp eax, ecx
jg 0x650b64
cmp edi, edx
jg 0x650b64
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov eax, dword [esi + 0x114]
mov ecx, dword [esp + 0x10]
dec eax
cmp ecx, eax
jge 0x650b7d
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
jne 0x650c51
mov eax, dword [esi + 0x10c]
mov ecx, dword [esp + 0xc]
dec eax
cmp ecx, eax
jge 0x650c51
mov eax, ecx
mov ecx, dword [esi + 0x118]
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 1
jmp 0x651092
cmp eax, 2
jne 0x650c48
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push edx
lea ecx, [esp + 0x60]
push eax
push ecx
mov ecx, esi
call fcn.0065d1a0
mov edx, eax
mov eax, dword [edx]
test eax, eax
mov edi, dword [edx + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
jl 0x650c00
test edi, edi
jl 0x650c00
test ecx, ecx
jl 0x650c00
test edx, edx
jl 0x650c00
cmp eax, ecx
jg 0x650c00
cmp edi, edx
jg 0x650c00
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x10c]
mov ecx, dword [esp + 0xc]
dec eax
cmp ecx, eax
jge 0x650c19
inc ecx
mov dword [esp + 0xc], ecx
jmp 0x651092
jne 0x650c51
mov eax, dword [esi + 0x114]
mov ecx, dword [esp + 0x10]
dec eax
cmp ecx, eax
jge 0x650c51
mov eax, ecx
mov ecx, dword [esi + 0x110]
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
jmp 0x651092
cmp eax, 3
jne 0x651092
mov ecx, esi
call fcn.006a40f5
jmp 0x651092
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push edx
mov ebx, eax
push eax
lea eax, [esp + 0x84]
push eax
mov ecx, esi
mov dword [esi + 0x1c4], 1
call fcn.0065d1a0
mov edi, eax
mov eax, dword [edi]
test eax, eax
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
jl 0x650cb1
test edx, edx
jl 0x650cb1
test ecx, ecx
jl 0x650cb1
test edi, edi
jl 0x650cb1
cmp eax, ecx
jg 0x650cb1
cmp edx, edi
jg 0x650cb1
inc ecx
mov dword [esp + 0xc], ecx
jmp 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x10c]
inc eax
cmp eax, ecx
mov dword [esp + 0xc], eax
jge 0x650ce7
push eax
mov ecx, esi
call fcn.00657180
test eax, eax
jg 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x10c]
inc eax
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x650cc4
mov dword [esp + 0xc], ebx
jmp 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x110]
mov edi, eax
dec eax
cmp eax, ecx
mov dword [esi + 0x1c4], 1
mov dword [esp + 0xc], eax
jl 0x650d32
push eax
mov ecx, esi
call fcn.00657180
test eax, eax
jg 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x110]
dec eax
cmp eax, ecx
mov dword [esp + 0xc], eax
jge 0x650d0f
mov dword [esp + 0xc], edi
jmp 0x651092
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x651092
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
lea edx, [esp + 0xa0]
push ecx
push edx
mov ecx, esi
mov ebx, eax
call fcn.0065d1a0
mov ecx, eax
mov eax, dword [ecx]
test eax, eax
mov edi, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
jl 0x650d93
test edi, edi
jl 0x650d93
test edx, edx
jl 0x650d93
test ecx, ecx
jl 0x650d93
cmp eax, edx
jg 0x650d93
cmp edi, ecx
jg 0x650d93
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x651092
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x114]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x650dc9
push eax
mov ecx, esi
call fcn.006571b0
test eax, eax
jg 0x651092
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x114]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x650da6
mov dword [esp + 0x10], ebx
jmp 0x651092
mov eax, dword [esi + 0xd8]
test eax, eax
jne 0x651092
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x118]
mov edi, eax
dec eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x650e18
push eax
mov ecx, esi
call fcn.006571b0
test eax, eax
jg 0x651092
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x118]
dec eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x650df5
mov dword [esp + 0x10], edi
jmp 0x651092
lea edx, [esp + 0x44]
mov ecx, esi
push edx
call fcn.006548f0
mov edi, dword [eax]
mov ecx, dword [esi + 0x1c]
push 0
push 3
mov eax, dword [eax + 4]
push 0x115
push ecx
mov dword [esp + 0x38], eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0x34]
mov ecx, esi
push edx
call fcn.006548f0
mov ecx, eax
mov eax, dword [ecx]
sub eax, edi
mov edx, dword [ecx + 4]
mov dword [esp + 0x38], edx
je 0x650e86
mov ecx, dword [esp + 0xc]
add ecx, eax
mov eax, dword [esi + 0x10c]
dec eax
mov dword [esp + 0xc], ecx
cmp ecx, eax
jle 0x651092
mov dword [esp + 0xc], eax
jmp 0x651092
mov eax, dword [esi + 0x10c]
dec eax
mov dword [esp + 0xc], eax
jmp 0x651092
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.006548f0
mov edi, dword [eax]
mov edx, dword [esi + 0x1c]
push 0
push 2
mov ecx, dword [eax + 4]
push 0x115
push edx
mov dword [esp + 0x38], ecx
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x18]
mov ecx, esi
push eax
call fcn.006548f0
mov ecx, eax
mov eax, dword [ecx]
sub eax, edi
mov edx, dword [ecx + 4]
mov dword [esp + 0x1c], edx
je 0x650efa
mov ecx, dword [esp + 0xc]
add ecx, eax
mov eax, dword [esi + 0x110]
cmp ecx, eax
mov dword [esp + 0xc], ecx
jge 0x651092
mov dword [esp + 0xc], eax
jmp 0x651092
mov eax, dword [esi + 0x110]
mov dword [esp + 0xc], eax
jmp 0x651092
push 0x11
call ebx
test ah, 0x80
push 0
push 6
je 0x650f3c
mov ecx, dword [esi + 0x1c]
push 0x115
push ecx
call edi
mov edx, dword [esi + 0x1c]
push 0
push 6
push 0x114
push edx
call edi
mov eax, dword [esi + 0x110]
mov dword [esp + 0xc], eax
jmp 0x650f47
mov ecx, dword [esi + 0x1c]
push 0x114
push ecx
call edi
mov edx, dword [esi + 0x114]
mov eax, dword [esi + 0x118]
dec edx
mov dword [esp + 0x10], eax
cmp eax, edx
jge 0x650f7c
push eax
mov ecx, esi
call fcn.006571b0
test eax, eax
jg 0x650f7c
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x114]
inc eax
dec ecx
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x650f5c
mov edx, dword [esi + 0x10c]
mov eax, dword [esp + 0xc]
dec edx
cmp eax, edx
jge 0x651092
push eax
mov ecx, esi
call fcn.00657180
test eax, eax
jg 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x10c]
inc eax
dec ecx
cmp eax, ecx
mov dword [esp + 0xc], eax
jl 0x650f8f
jmp 0x651092
push 0x11
call ebx
test ah, 0x80
push 0
push 7
je 0x650fec
mov edx, dword [esi + 0x1c]
push 0x115
push edx
call edi
mov eax, dword [esi + 0x1c]
push 0
push 7
push 0x114
push eax
call edi
mov eax, dword [esi + 0x10c]
dec eax
mov dword [esp + 0xc], eax
jmp 0x650ff7
mov ecx, dword [esi + 0x1c]
push 0x114
push ecx
call edi
mov eax, dword [esi + 0x114]
mov edx, dword [esi + 0x118]
dec eax
inc edx
cmp eax, edx
mov dword [esp + 0x10], eax
jle 0x65102d
push eax
mov ecx, esi
call fcn.006571b0
test eax, eax
jg 0x65102d
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x118]
dec eax
inc ecx
cmp eax, ecx
mov dword [esp + 0x10], eax
jg 0x65100d
mov edx, dword [esi + 0x110]
mov eax, dword [esp + 0xc]
inc edx
cmp eax, edx
jle 0x651092
push eax
mov ecx, esi
call fcn.00657180
test eax, eax
jg 0x651092
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x110]
dec eax
inc ecx
cmp eax, ecx
mov dword [esp + 0xc], eax
jg 0x65103c
jmp 0x651092
mov edx, dword [esi]
or ecx, 0xffffffff
mov edi, dword [esi + 0x1c]
or eax, 0xffffffff
push 1
push ecx
mov ecx, dword [esi + 0x1f8]
push eax
mov eax, dword [esi + 0x1fc]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x100]
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x65133d
mov edx, dword [esp + 0xc]
mov eax, dword [esi + 0x1f8]
cmp edx, eax
jne 0x6510b2
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x1fc]
cmp eax, ecx
je 0x65133d
mov eax, dword [esi + 0x1bc]
xor ebx, ebx
cmp eax, ebx
jne 0x651168
mov edx, dword [esi + 0x238]
cmp edx, ebx
je 0x6510ec
mov eax, dword [esi + 0x23c]
cmp eax, ebx
jbe 0x6510ec
mov ecx, edx
mov edi, eax
mov eax, dword [ecx]
cmp eax, ebx
je 0x6510e6
mov eax, dword [eax]
cmp eax, ebx
jne 0x6510e0
add ecx, 4
dec edi
jne 0x6510da
push edx
call fcn.006a244c
mov ecx, dword [esi + 0x248]
add esp, 4
mov dword [esi + 0x238], ebx
mov dword [esi + 0x240], ebx
mov dword [esi + 0x244], ebx
call fcn.006a1e45
mov dword [esi + 0x248], ebx
mov ecx, dword [esi + 0xd8]
neg ecx
sbb ecx, ecx
push 0x10
add ecx, 4
mov dword [esi + 0x1bc], ecx
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x651142
cmp dword [esp + 0x1a0], 9
jne 0x651156
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x1f0], edx
mov dword [esi + 0x1f4], eax
lea ecx, [esp + 0xc]
push ecx
mov ecx, esi
call fcn.00653630
mov dword [esi + 0x1bc], ebx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push edx
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, esi
call fcn.0065d0f0
mov edx, eax
mov eax, dword [edx]
cmp eax, ebx
mov ecx, dword [edx + 4]
jl 0x651195
cmp ecx, ebx
jl 0x651195
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
mov ecx, esi
call fcn.006528a0
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x70]
mov edi, dword [esi + 0x1c]
lea edx, [esp + 0xbc]
push ebx
push edx
push 0x7ef
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x1a4], ebx
call fcn.0064bd70
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x65133d
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push eax
push ecx
mov ecx, esi
call fcn.006579f0
test eax, eax
jne 0x65133d
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
push edx
push eax
mov ecx, esi
call fcn.00657640
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja case.0x65123f.5
xor ecx, ecx
mov cl, byte [eax + 0x651444]
jmp dword [ecx*4 + 0x65142c]
push ebx
push 1
mov edx, dword [esi + 0x1c]
push 0x114
push edx
jmp 0x651317
mov eax, dword [esi + 0x1c]
push ebx
push ebx
push 0x114
push eax
jmp 0x651317
push ebx
push 1
push 0x115
jmp 0x651313
mov edx, dword [esi + 0x1c]
push ebx
push ebx
push 0x115
push edx
jmp 0x651317
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
mov eax, dword [esp + 0x14]
je 0x6512d4
cmp eax, ebx
push ebx
push ebx
je 0x651249
mov eax, dword [esi + 0x1c]
push 0x115
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esi + 0x154]
push 1
push ecx
push ebx
mov ecx, esi
call fcn.00654d20
mov edx, dword [esi + 0x1c]
push 1
push ebx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebx
add esp, 0x190
ret 0xc
cmp eax, ebx
push ebx
push 1
je 0x65130e
mov eax, dword [esi + 0x1c]
push 0x115
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
push ebx
push ebx
mov ecx, esi
call fcn.00654d20
mov edx, dword [esi + 0x1c]
push 1
push ebx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebx
add esp, 0x190
ret 0xc
push 0x114
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esi + 0x1c]
push 1
push ebx
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
pop edi
pop esi
pop ebx
add esp, 0x190
ret 0xc
mov ecx, esi
call fcn.006a40f5
pop edi
pop esi
pop ebx
add esp, 0x190
ret 0xc