Function at 0x411880
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, ecx
mov eax, dword [esi + 0x2bc]
mov ecx, dword [esi + 0x2c0]
test eax, eax
js 0x4118ad
cmp eax, dword [esi + 0x10c]
jge 0x4118ad
test ecx, ecx
js 0x4118ad
cmp ecx, dword [esi + 0x114]
jl 0x4118bb
mov ecx, esi
call sub.mfc100.dll_Ordinal_3390
pop esi
mov esp, ebp
pop ebp
ret 0xc
push ebx
mov ebx, dword [esi + 0x2bc]
push edi
mov edi, dword [esi + 0x2c0]
xor eax, eax
push 0x11
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je case.0x4118fe.46
mov eax, dword [ebp + 8]
add eax, 0xffffffd3
cmp eax, 0x3e
ja case.0x4118fe.46
movzx edx, byte [eax + 0x412528]
jmp dword [edx*4 + 0x412510]
mov eax, dword [esi]
mov edx, dword [eax + 0x194]
mov ecx, esi
call edx
jmp case.0x4118fe.46
push 0
mov ecx, esi
call fcn.0040dba0
mov eax, dword [esi + 0x20]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp case.0x4118fe.46
mov edx, dword [esi]
mov eax, dword [edx + 0x188]
jmp 0x411948
mov edx, dword [esi]
mov eax, dword [edx + 0x18c]
jmp 0x411948
mov edx, dword [esi]
mov eax, dword [edx + 0x190]
mov ecx, esi
call eax
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
mov eax, dword [ebp + 8]
je 0x411982
cmp eax, 0x2d
jne 0x411982
mov edx, dword [esi]
mov eax, dword [edx + 0x190]
mov ecx, esi
call eax
mov ecx, esi
call sub.mfc100.dll_Ordinal_3390
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp eax, 0x2e
jne 0x411998
mov edx, dword [esi]
mov eax, dword [edx + 0x168]
mov ecx, esi
call eax
jmp 0x412204
cmp eax, 0x28
jne 0x4119ee
mov eax, dword [esi + 0x10c]
mov ecx, ebx
inc ebx
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jge 0x4119dc
lea ecx, [ecx]
test ebx, ebx
js 0x4119d0
cmp ebx, eax
jge 0x4119d0
cmp ebx, dword [esi + 0x124]
jge 0x4119e6
mov edx, dword [esi + 0x120]
cmp dword [edx + ebx*4], 0
jg 0x412178
inc ebx
cmp ebx, dword [esi + 0x10c]
jl 0x4119b0
mov dword [ebp - 0x20], ebx
mov ebx, ecx
mov dword [ebp - 0x20], ebx
jmp 0x412204
mov dword [ebp - 0x20], ebx
call sub.mfc100.dll_Ordinal_2061
cmp eax, 0x26
jne 0x411a3f
mov eax, ebx
dec ebx
mov dword [ebp - 0x20], ebx
cmp ebx, dword [esi + 0x110]
jl 0x411d4f
test ebx, ebx
js 0x411a29
cmp ebx, dword [esi + 0x10c]
jge 0x411a29
cmp ebx, dword [esi + 0x124]
jge 0x4119e6
mov ecx, dword [esi + 0x120]
cmp dword [ecx + ebx*4], 0
jg 0x412178
dec ebx
cmp ebx, dword [esi + 0x110]
jge 0x411a05
mov dword [ebp - 0x20], ebx
mov ebx, eax
mov dword [ebp - 0x20], ebx
jmp 0x412204
cmp eax, 0x27
je 0x412307
mov eax, dword [ebp + 8]
cmp eax, 9
jne 0x411ae1
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, 0x8000
test dx, ax
je 0x4122cd
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x411972
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], edi
dec edi
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x1c], edi
cmp eax, 9
jne 0x4121d2
mov eax, dword [esi + 0x118]
dec eax
cmp edi, eax
jne 0x4121cb
mov eax, dword [esi + 0x110]
cmp ebx, eax
jle 0x4121cb
dec ebx
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jle 0x4121b8
push ebx
mov ecx, esi
call fcn.00407290
test eax, eax
jg 0x4121ae
dec ebx
cmp ebx, dword [esi + 0x110]
jg 0x411ac3
jmp 0x4121b5
cmp eax, 0x25
je 0x411a83
cmp eax, 0x22
jne 0x411d68
cmp dword [esi + 0x2c4], 0
jl 0x411b18
cmp dword [esi + 0x2c8], 0
jl 0x411b18
mov edx, dword [esi + 0x2c4]
mov eax, dword [esi + 0x2c8]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp 0x411c14
push 1
mov ecx, esi
call sub.mfc100.dll_Ordinal_6133
push 0
mov ecx, esi
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_6133
mov ecx, dword [esi + 0x118]
xor edx, edx
mov dword [esi + 0x2c8], ecx
test eax, eax
jle 0x411ba4
mov ecx, dword [esi + 0x114]
dec ecx
mov dword [ebp - 0xc], ecx
lea esp, [esp]
mov ecx, dword [esi + 0x2c8]
cmp ecx, dword [ebp - 0xc]
jge 0x411ba1
lea edi, [ecx + 1]
mov dword [esi + 0x2c8], edi
test ecx, ecx
js 0x411b98
cmp ecx, dword [esi + 0x114]
jge 0x411b98
mov edi, dword [esi + 0x478]
mov ecx, dword [edi + ecx*4]
test ecx, ecx
js 0x4119e9
cmp ecx, dword [esi + 0x138]
jge 0x4119e9
mov edi, dword [esi + 0x134]
mov ecx, dword [edi + ecx*4]
jmp 0x411b9b
or ecx, 0xffffffff
add edx, ecx
cmp edx, eax
jl 0x411b50
mov edi, dword [ebp - 0x1c]
mov edx, dword [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x2c4], edx
cmp dword [ebp - 0x14], ecx
jle 0x411c02
mov eax, dword [esi + 0x10c]
dec eax
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x2c4]
cmp eax, dword [ebp - 0xc]
jge 0x411c02
lea edx, [eax + 1]
mov dword [esi + 0x2c4], edx
test eax, eax
js 0x411bf8
cmp eax, dword [esi + 0x10c]
jge 0x411bf8
cmp eax, dword [esi + 0x124]
jge 0x4119e9
mov edx, dword [esi + 0x120]
mov eax, dword [edx + eax*4]
jmp 0x411bfb
or eax, 0xffffffff
add ecx, eax
cmp ecx, dword [ebp - 0x14]
jl 0x411bc1
mov eax, dword [esi + 0x2c4]
mov ecx, dword [esi + 0x2c8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov edx, dword [esi + 0x20]
push 0
push 3
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [esi + 0x2c4], 0
mov dword [ebp - 8], 1
jl 0x411c44
cmp dword [esi + 0x2c8], 0
jge 0x411d27
push 1
mov ecx, esi
call sub.mfc100.dll_Ordinal_6133
push 0
mov ecx, esi
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_6133
mov edx, dword [esi + 0x118]
mov dword [esi + 0x2c8], edx
xor edx, edx
test eax, eax
jle 0x411cc9
mov ecx, dword [esi + 0x114]
dec ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x2c8]
cmp ecx, dword [ebp - 0xc]
jge 0x411cc6
lea edi, [ecx + 1]
mov dword [esi + 0x2c8], edi
test ecx, ecx
js 0x411cbd
cmp ecx, dword [esi + 0x114]
jge 0x411cbd
mov edi, dword [esi + 0x478]
mov ecx, dword [edi + ecx*4]
test ecx, ecx
js 0x4119e9
cmp ecx, dword [esi + 0x138]
jge 0x4119e9
mov edi, dword [esi + 0x134]
mov ecx, dword [edi + ecx*4]
jmp 0x411cc0
or ecx, 0xffffffff
add edx, ecx
cmp edx, eax
jl 0x411c75
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x2c4], eax
cmp dword [ebp - 0x14], ecx
jle 0x411d27
mov edx, dword [esi + 0x10c]
lea edi, [edx - 1]
mov eax, dword [esi + 0x2c4]
cmp eax, edi
jge 0x411d24
lea ebx, [eax + 1]
mov dword [esi + 0x2c4], ebx
test eax, eax
js 0x411d17
cmp eax, edx
jge 0x411d17
cmp eax, dword [esi + 0x124]
jge 0x4119e9
mov ebx, dword [esi + 0x120]
mov eax, dword [ebx + eax*4]
jmp 0x411d1a
or eax, 0xffffffff
mov ebx, dword [ebp - 0x20]
add ecx, eax
cmp ecx, dword [ebp - 0x14]
jl 0x411ce5
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x2c4]
sub eax, dword [ebp - 0x28]
mov ecx, dword [esi + 0x2c8]
mov dword [ebp - 0x14], ecx
je 0x411d59
add ebx, eax
mov eax, dword [esi + 0x10c]
dec eax
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jle 0x412204
mov ebx, eax
mov dword [ebp - 0x20], ebx
jmp 0x412204
mov ebx, dword [esi + 0x10c]
dec ebx
mov dword [ebp - 0x20], ebx
jmp 0x412204
cmp eax, 0x21
jne 0x411fe6
cmp dword [esi + 0x2c4], 0
jl 0x411d9a
cmp dword [esi + 0x2c8], 0
jl 0x411d9a
mov edx, dword [esi + 0x2c4]
mov eax, dword [esi + 0x2c8]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
jmp 0x411e94
push 1
mov ecx, esi
call sub.mfc100.dll_Ordinal_6133
push 0
mov ecx, esi
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_6133
mov ecx, dword [esi + 0x118]
xor edx, edx
mov dword [esi + 0x2c8], ecx
test eax, eax
jle 0x411e24
mov ecx, dword [esi + 0x114]
dec ecx
mov dword [ebp - 0xc], ecx
jmp 0x411dd0
mov ecx, dword [esi + 0x2c8]
cmp ecx, dword [ebp - 0xc]
jge 0x411e21
lea edi, [ecx + 1]
mov dword [esi + 0x2c8], edi
test ecx, ecx
js 0x411e18
cmp ecx, dword [esi + 0x114]
jge 0x411e18
mov edi, dword [esi + 0x478]
mov ecx, dword [edi + ecx*4]
test ecx, ecx
js 0x4119e9
cmp ecx, dword [esi + 0x138]
jge 0x4119e9
mov edi, dword [esi + 0x134]
mov ecx, dword [edi + ecx*4]
jmp 0x411e1b
or ecx, 0xffffffff
add edx, ecx
cmp edx, eax
jl 0x411dd0
mov edi, dword [ebp - 0x1c]
mov edx, dword [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x2c4], edx
cmp dword [ebp - 0x14], ecx
jle 0x411e82
mov edx, dword [esi + 0x10c]
lea edi, [edx - 1]
mov eax, dword [esi + 0x2c4]
cmp eax, edi
jge 0x411e7f
lea ebx, [eax + 1]
mov dword [esi + 0x2c4], ebx
test eax, eax
js 0x411e72
cmp eax, edx
jge 0x411e72
cmp eax, dword [esi + 0x124]
jge 0x4119e9
mov ebx, dword [esi + 0x120]
mov eax, dword [ebx + eax*4]
jmp 0x411e75
or eax, 0xffffffff
mov ebx, dword [ebp - 0x20]
add ecx, eax
cmp ecx, dword [ebp - 0x14]
jl 0x411e40
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x2c4]
mov ecx, dword [esi + 0x2c8]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
mov edx, dword [esi + 0x20]
push 0
push 2
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [esi + 0x2c4], 0
mov dword [ebp - 8], 1
jl 0x411ec4
cmp dword [esi + 0x2c8], 0
jge 0x411fa7
push 1
mov ecx, esi
call sub.mfc100.dll_Ordinal_6133
push 0
mov ecx, esi
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_6133
mov edx, dword [esi + 0x118]
mov dword [esi + 0x2c8], edx
xor edx, edx
test eax, eax
jle 0x411f49
mov ecx, dword [esi + 0x114]
dec ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x2c8]
cmp ecx, dword [ebp - 0xc]
jge 0x411f46
lea edi, [ecx + 1]
mov dword [esi + 0x2c8], edi
test ecx, ecx
js 0x411f3d
cmp ecx, dword [esi + 0x114]
jge 0x411f3d
mov edi, dword [esi + 0x478]
mov ecx, dword [edi + ecx*4]
test ecx, ecx
js 0x4119e9
cmp ecx, dword [esi + 0x138]
jge 0x4119e9
mov edi, dword [esi + 0x134]
mov ecx, dword [edi + ecx*4]
jmp 0x411f40
or ecx, 0xffffffff
add edx, ecx
cmp edx, eax
jl 0x411ef5
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x2c4], eax
cmp dword [ebp - 0x14], ecx
jle 0x411fa7
mov edx, dword [esi + 0x10c]
lea edi, [edx - 1]
mov eax, dword [esi + 0x2c4]
cmp eax, edi
jge 0x411fa4
lea ebx, [eax + 1]
mov dword [esi + 0x2c4], ebx
test eax, eax
js 0x411f97
cmp eax, edx
jge 0x411f97
cmp eax, dword [esi + 0x124]
jge 0x4119e9
mov ebx, dword [esi + 0x120]
mov eax, dword [ebx + eax*4]
jmp 0x411f9a
or eax, 0xffffffff
mov ebx, dword [ebp - 0x20]
add ecx, eax
cmp ecx, dword [ebp - 0x14]
jl 0x411f65
mov edi, dword [ebp - 0x1c]
mov eax, dword [esi + 0x2c4]
sub eax, dword [ebp - 0x28]
mov ecx, dword [esi + 0x2c8]
mov dword [ebp - 0x14], ecx
je 0x411fd8
add ebx, eax
mov eax, dword [esi + 0x110]
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jge 0x412204
mov ebx, eax
mov dword [ebp - 0x20], ebx
jmp 0x412204
mov ebx, dword [esi + 0x110]
mov dword [ebp - 0x20], ebx
jmp 0x412204
cmp eax, 0x24
jne 0x4120b4
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov edx, 0x8000
push 0
push 6
test dx, ax
je 0x41203b
mov eax, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x115
push eax
call edi
mov ecx, dword [esi + 0x20]
push 0
push 6
push 0x114
push ecx
call edi
mov ebx, dword [esi + 0x110]
mov eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x20], ebx
jmp 0x412051
mov edx, dword [esi + 0x20]
push 0x114
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 4], 1
mov eax, dword [esi + 0x114]
mov edi, dword [esi + 0x118]
dec eax
mov dword [ebp - 0x1c], edi
cmp edi, eax
jge 0x412080
push edi
mov ecx, esi
call fcn.004082f0
test eax, eax
jg 0x41207d
mov ecx, dword [esi + 0x114]
inc edi
dec ecx
cmp edi, ecx
jl 0x412065
mov dword [ebp - 0x1c], edi
mov edx, dword [esi + 0x10c]
dec edx
cmp ebx, edx
jge 0x412204
nop
push ebx
mov ecx, esi
call fcn.00407290
test eax, eax
jg 0x412178
mov eax, dword [esi + 0x10c]
inc ebx
dec eax
cmp ebx, eax
jl 0x412090
mov dword [ebp - 0x20], ebx
jmp 0x412204
cmp eax, 0x23
jne 0x412180
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
push 0
push 7
test cx, ax
je 0x41210b
mov edx, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x115
push edx
call edi
mov eax, dword [esi + 0x20]
push 0
push 7
push 0x114
push eax
call edi
mov ebx, dword [esi + 0x10c]
mov eax, 1
sub ebx, eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x20], ebx
jmp 0x412121
mov ecx, dword [esi + 0x20]
push 0x114
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 4], 1
mov edi, dword [esi + 0x114]
mov edx, dword [esi + 0x118]
dec edi
inc edx
mov dword [ebp - 0x1c], edi
cmp edi, edx
jle 0x412151
push edi
mov ecx, esi
call fcn.004082f0
test eax, eax
jg 0x41214e
mov eax, dword [esi + 0x118]
dec edi
inc eax
cmp edi, eax
jg 0x412136
mov dword [ebp - 0x1c], edi
mov ecx, dword [esi + 0x110]
inc ecx
cmp ebx, ecx
jle 0x412204
push ebx
mov ecx, esi
call fcn.00407290
test eax, eax
jg 0x412178
mov edx, dword [esi + 0x110]
dec ebx
inc edx
cmp ebx, edx
jg 0x412160
mov dword [ebp - 0x20], ebx
jmp 0x412204
cmp eax, 0x71
jne 0x411972
mov edx, dword [esi]
mov edx, dword [edx + 0x1c4]
or eax, 0xffffffff
or ecx, eax
push 1
push ecx
mov ecx, dword [esi + 0x2bc]
push eax
mov eax, dword [esi + 0x2c0]
push eax
push ecx
mov ecx, esi
call edx
jmp 0x412204
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x20], ebx
mov edi, dword [esi + 0x114]
dec edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x10], 1
jmp 0x4121d2
mov ecx, esi
call sub.mfc100.dll_Ordinal_3390
cmp edi, dword [esi + 0x118]
jl 0x4121f8
lea ebx, [ebx]
push edi
mov ecx, esi
call fcn.004082f0
test eax, eax
jg 0x412201
dec edi
cmp edi, dword [esi + 0x118]
jge 0x4121e0
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0xc], 0
jne 0x412204
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edi
cmp ebx, dword [esi + 0x2bc]
jne 0x412218
cmp edi, dword [esi + 0x2c0]
je 0x41243e
cmp dword [esi + 0x290], 0
jne 0x412292
lea ecx, [esi + 0x300]
call fcn.004074c0
mov eax, dword [esi + 0xb8]
neg eax
sbb eax, eax
add eax, 4
push 0x10
mov dword [esi + 0x290], eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x41225b
cmp dword [ebp + 8], 9
jne 0x412267
mov dword [esi + 0x2b4], ebx
mov dword [esi + 0x2b8], edi
push 0xffffffffffffff9c
push edi
push ebx
mov ecx, esi
call fcn.00408df0
lea edx, [ebp - 0x20]
push edx
mov ecx, esi
call fcn.00410860
push 0xffffffffffffff9b
push edi
push ebx
mov ecx, esi
call fcn.00408df0
mov dword [esi + 0x290], 0
push edi
push ebx
lea eax, [ebp - 0x28]
push eax
mov ecx, esi
call fcn.0040ff80
push edi
push ebx
mov ecx, esi
call fcn.0040a580
test eax, eax
jne 0x412403
mov eax, dword [ebp + 8]
add eax, 0xfffffff7
cmp eax, 0x1f
ja case.0x4122c6.10
movzx ecx, byte [eax + 0x412580]
jmp dword [ecx*4 + 0x412568]
cmp byte [esi + 0x496], 0
je 0x412307
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.mfc100.dll_Ordinal_4345
test eax, eax
je 0x41243e
mov edx, dword [eax + 0x20]
push 0
push 0
push 0x28
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov dword [ebp - 0x14], edi
inc edi
cmp dword [ebp + 8], 9
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x1c], edi
jne 0x412372
cmp edi, dword [esi + 0x114]
jne 0x41236b
mov eax, dword [esi + 0x10c]
lea ecx, [eax - 1]
cmp ebx, ecx
jge 0x41236b
inc ebx
mov dword [ebp - 0x20], ebx
cmp ebx, eax
jge 0x412359
push ebx
mov ecx, esi
call fcn.00407290
test eax, eax
jg 0x41234f
inc ebx
cmp ebx, dword [esi + 0x10c]
jl 0x412338
jmp 0x412356
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x20], ebx
mov edi, dword [esi + 0x118]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x10], 1
jmp 0x412372
mov ecx, esi
call sub.mfc100.dll_Ordinal_3390
mov ecx, dword [esi + 0x114]
cmp edi, ecx
jge 0x4121f8
test edi, edi
js 0x4123ad
cmp edi, ecx
jge 0x4123ad
mov edx, dword [esi + 0x478]
mov eax, dword [edx + edi*4]
test eax, eax
js 0x4123bb
cmp eax, dword [esi + 0x138]
jge 0x4123bb
mov edx, dword [esi + 0x134]
cmp dword [edx + eax*4], 0
jg 0x412201
inc edi
cmp edi, dword [esi + 0x114]
jl 0x412380
jmp 0x4121f5
mov dword [ebp - 0x1c], edi
call sub.mfc100.dll_Ordinal_2061
mov edx, dword [esi + 0x20]
push 0
push 1
push 0x114
push edx
jmp 0x4123df
push 0
push 0
mov eax, dword [esi + 0x20]
push 0x114
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 4], 1
push edi
push ebx
mov ecx, esi
call fcn.0040a260
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
push edi
push ebx
mov ecx, esi
call fcn.0040a260
cmp dword [ebp - 4], 0
je 0x412425
mov edx, dword [esi + 0x20]
push 0
push 8
push 0x114
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp dword [ebp - 8], 0
je 0x41243e
mov eax, dword [esi + 0x20]
push 0
push 8
push 0x115
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esi + 0x20]
push 0
push 1
push 0x115
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 8], 1
jmp case.0x4122c6.10
mov edx, dword [esi + 0x20]
push 0
push 0
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 8], 1
jmp case.0x4122c6.10
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
push 0
test cx, ax
je 0x4124d9
cmp dword [ebp - 0x10], 0
push 0
je 0x4124cb
mov edx, dword [esi + 0x20]
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0x148]
push 1
push eax
push 0
mov ecx, esi
mov dword [ebp - 8], 1
call fcn.00406fc0
jmp case.0x4122c6.10
mov ecx, dword [esi + 0x20]
push 0x114
push ecx
jmp 0x4123df
cmp dword [ebp - 0x10], 0
push 1
je 0x4123d6
mov edx, dword [esi + 0x20]
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
push 0
push 0
mov ecx, esi
mov dword [ebp - 8], 1
call fcn.00406fc0
jmp case.0x4122c6.10