Function at 0x49be00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbc8
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov eax, ebx
cmp eax, 0x206
jg 0x49be7f
je 0x49bef0
cmp eax, 0x102
jg 0x49be59
je 0x49c081
sub eax, 2
je 0x49bed4
sub eax, 0xd
je 0x49ca23
sub eax, 0x38
je case.0x49be8d.1126
sub eax, 0xb9
je 0x49bf44
jmp case.0x49be8d.1127
sub eax, 0x104
je 0x49bf28
add eax, 0xfffffff1
sub eax, 3
jb 0x49bef0
add eax, 0xffffff16
sub eax, 5
jb 0x49bef0
jmp case.0x49be8d.1127
add eax, 0xfffffb9b
cmp eax, 0xf
ja case.0x49be8d.1127
jmp dword [eax*4 + 0x49be94]
mov edx, dword [ebp + 0x14]
push edx
push edi
push ebx
mov ecx, dword [ebp + 8]
push ecx
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x49be8d.1127
mov eax, dword [ebp + 0x14]
push eax
push edi
push ebx
mov edx, dword [ebp + 8]
push edx
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x49be8d.1127
mov ecx, dword [ebp + 0x14]
push ecx
push edi
push ebx
mov eax, dword [ebp + 8]
push eax
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp 0x49ca4c
mov edx, dword [ebp + 0x14]
push edx
push edi
push ebx
mov ecx, dword [ebp + 8]
push ecx
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
jmp case.0x49be8d.1127
push 0x10
call sub.USER32.DLL_GetKeyState
movsx eax, ax
and eax, 0x8000
mov dword [ebp - 0x10], eax
push 0x11
call sub.USER32.DLL_GetKeyState
movsx edx, ax
and edx, 0x8000
mov ecx, dword [0x4d9ce0]
mov dword [ebp - 0x14], edx
push ecx
push 0x4d9bd4
call sym.ollydbg.exe__Getsortedbyselection
add esp, 8
mov esi, eax
test esi, esi
jne 0x49bf8a
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x49bfb3
cmp word [0x4d9e03], 0
jne 0x49bf9c
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x24], edx
jmp 0x49bfb3
cmp word [0x4d9e03], 2
jne 0x49bfae
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x24], ecx
jmp 0x49bfb3
xor eax, eax
mov dword [ebp - 0x24], eax
cmp edi, 0xd
jne 0x49bfe7
cmp dword [ebp - 0x10], 0
jne 0x49bfe7
cmp dword [ebp - 0x14], 0
jne 0x49bfe7
movzx edx, word [0x4d9e03]
shl edx, 0x10
push 0
or edx, 0
push edx
push 0x46f
mov ecx, dword [ebp + 8]
push ecx
call fcn.0049be00
jmp 0x49c07a
cmp edi, 0x20
jne 0x49c006
cmp dword [ebp - 0x14], 0
jne 0x49c006
push 0
push 2
push 0x46e
mov eax, dword [ebp + 8]
push eax
call fcn.0049be00
jmp 0x49c07a
cmp dword [ebp - 0x24], 0
je 0x49c063
cmp dword [ebp - 0x24], 0xffffffff
je 0x49c063
cmp dword [ebp - 0x14], 0
jne 0x49c063
cmp edi, 0x71
je 0x49c028
cmp edi, 0x73
jne 0x49c063
cmp dword [ebp - 0x10], 0
je 0x49c063
lea edx, [ebp - 0xc]
push edx
lea ecx, [ebp - 8]
push ecx
push 1
push 0x4d9bd0
call sym.ollydbg.exe__Gettableselectionxy
add esp, 0x10
mov eax, dword [ebp - 0xc]
push eax
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [0x4d9e09]
push ecx
push 0
mov eax, dword [ebp - 0x10]
push eax
push edi
mov edx, dword [ebp - 0x24]
push edx
call fcn.00419974
add esp, 0x1c
jmp 0x49c07a
mov ecx, dword [ebp + 0x14]
push ecx
push edi
push ebx
mov eax, dword [ebp + 8]
push eax
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
xor eax, eax
jmp 0x49ca4c
cmp edi, 0x2d
jne 0x49c094
push 2
push 0
call fcn.0049b460
add esp, 8
jmp 0x49c0a5
cmp edi, 0x2b
jne 0x49c0a5
push 3
push 0
call fcn.0049b460
add esp, 8
xor eax, eax
jmp 0x49ca4c
mov edx, dword [0x4d9ce0]
push edx
push 0x4d9bd4
call sym.ollydbg.exe__Getsortedbyselection
movsx edi, word [0x4d9e03]
add esp, 8
mov esi, eax
mov ebx, dword [0x4d9cf0]
call sub.USER32.DLL_CreatePopupMenu
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x49c3c8
test esi, esi
je 0x49c34b
test ebx, ebx
je 0x49c34b
xor eax, eax
mov dword [ebp - 0x18], eax
cmp dword [esi + 0x10], 0
je 0x49c119
test edi, edi
jne 0x49c119
push str.Tree_for_calling_procedure_tEnter
push 1
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [esi + 0x10], 0
je 0x49c13c
test edi, edi
jne 0x49c13c
push str.Follow_command_in_Disassembler
push 2
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [ebx + 0xc], 0
je 0x49c160
cmp edi, 1
jne 0x49c160
push 0x4c9790
push 3
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [esi + 0x14], 0
je 0x49c18a
cmp dword [esi + 0x14], 0xffffffff
je 0x49c18a
cmp edi, 2
jne 0x49c18a
push str.Tree_for_called_procedure_tEnter
push 4
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [esi + 0x14], 0
je 0x49c1b4
cmp dword [esi + 0x14], 0xffffffff
je 0x49c1b4
cmp edi, 2
jne 0x49c1b4
push 0x4c97cf
push 5
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [esi + 0x14], 0
je 0x49c1de
cmp dword [esi + 0x14], 0xffffffff
je 0x49c1de
cmp edi, 3
jne 0x49c1de
push 0x4c9790
push 5
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [esi + 0x14], 0
je 0x49c20d
test byte [esi + 9], 8
je 0x49c20d
cmp edi, 2
je 0x49c1f4
cmp edi, 3
jne 0x49c20d
push str.Show_first_call_in_Disassembler
push 6
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
test edi, edi
jne 0x49c219
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x24], ecx
jmp 0x49c22b
cmp edi, 2
jne 0x49c226
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x24], eax
jmp 0x49c22b
xor edx, edx
mov dword [ebp - 0x24], edx
test edi, edi
jne 0x49c243
cmp dword [esi + 0x10], 0
je 0x49c243
mov ecx, dword [esi + 0x10]
push ecx
call fcn.00419424
pop ecx
test eax, eax
jne 0x49c268
cmp edi, 2
jne 0x49c2c0
cmp dword [esi + 0x14], 0
je 0x49c2c0
cmp dword [esi + 0x14], 0xffffffff
je 0x49c2c0
test byte [esi + 9], 0x10
jne 0x49c2c0
mov eax, dword [esi + 0x14]
push eax
call fcn.00419424
pop ecx
test eax, eax
je 0x49c2c0
cmp dword [ebp - 0x18], 0
je 0x49c283
push 0x4c96fd
push 0
push 0x800
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
push 0x4c9807
push 0x1f
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call sub.USER32.DLL_AppendMenuA
push 0x4c981d
push 0x20
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
push 0x4c983e
push 0x21
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
test edi, edi
jne 0x49c330
cmp dword [ebx + 0x10], 0
je 0x49c330
mov ecx, dword [ebx + 0x10]
push ecx
call fcn.00419424
pop ecx
test eax, eax
je 0x49c330
cmp dword [ebp - 0x18], 0
je 0x49c2f3
push 0x4c96fd
push 0
push 0x800
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
push str.Set_breakpoint_on_every_call
push 0x29
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
push str.Set_log_breakpoint_on_every_call
push 0x2a
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call sub.USER32.DLL_AppendMenuA
push str.Remove_breakpoints_from_all_calls
push 0x2b
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
mov dword [ebp - 0x18], 1
cmp dword [ebp - 0x18], 0
je 0x49c34b
push 0x4c96fd
push 0
push 0x800
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4d9e20], 0
je 0x49c368
push str.Hide_indirect_calls_tSpace
push 0x32
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call sub.USER32.DLL_AppendMenuA
jmp 0x49c37a
push str.Show_indirect_calls_tSpace
push 0x32
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4d9e30], 0
jle 0x49c39e
cmp dword [0x5077d0], 0
jle 0x49c39e
push str.Previous_tMinus
push 0x33
push 0
mov edx, dword [ebp - 0x34]
push edx
call sub.USER32.DLL_AppendMenuA
cmp dword [0x4d9e30], 0
jle 0x49c3c8
mov ecx, dword [0x5077cc]
dec ecx
cmp ecx, dword [0x5077d0]
jle 0x49c3c8
push str.Next_tPlus
push 0x34
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_AppendMenuA
mov edx, dword [ebp - 0x34]
push edx
push 0
push 0x465
mov ecx, dword [ebp + 8]
push ecx
push 0x4d9bd0
call sym.ollydbg.exe__Tablefunction
add esp, 0x14
mov edi, eax
cmp dword [ebp - 0x34], 0
je 0x49c3f5
mov eax, dword [ebp - 0x34]
push eax
call sub.USER32.DLL_DestroyMenu
lea edx, [ebp - 0xc]
push edx
lea ecx, [ebp - 8]
push ecx
push 1
push 0x4d9bd0
call sym.ollydbg.exe__Gettableselectionxy
add esp, 0x10
cmp edi, 1
jne 0x49c424
push 1
mov eax, dword [esi + 0x10]
push eax
call fcn.0049b460
add esp, 8
jmp 0x49c8e8
cmp edi, 2
jne 0x49c442
push 0xd
push 0
push 0
mov edx, dword [esi + 0x10]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x49c8e8
cmp edi, 3
jne 0x49c460
push 0xd
push 0
push 0
mov ecx, dword [ebx + 0xc]
push ecx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x49c8e8
cmp edi, 4
jne 0x49c478
push 1
mov eax, dword [esi + 0x14]
push eax
call fcn.0049b460
add esp, 8
jmp 0x49c8e8
cmp edi, 5
jne 0x49c496
push 0xd
push 0
push 0
mov edx, dword [esi + 0x14]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x49c8e8
cmp edi, 6
jne 0x49c524
lea ecx, [ebp - 0x2c]
lea eax, [ebp - 0x28]
push ecx
push eax
mov edx, dword [ebx + 0xc]
push edx
call sym.ollydbg.exe__Getproclimits
add esp, 0xc
test eax, eax
je 0x49c4c4
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebx + 0xc]
inc eax
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.0049b09c
pop ecx
jmp 0x49c501
lea edx, [eax + eax*8]
mov ecx, dword [0x4d9e28]
mov ecx, dword [ecx + edx]
cmp ecx, dword [esi + 0x14]
jne 0x49c500
mov eax, dword [0x4d9e28]
push 0xd
push 0
push 0
mov edx, dword [eax + edx + 4]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x49c8e8
inc eax
cmp eax, dword [0x4d9e30]
jge 0x49c8e8
lea edx, [eax + eax*8]
mov ecx, dword [0x4d9e28]
mov edx, dword [ecx + edx + 4]
cmp edx, dword [ebp - 0x2c]
jb 0x49c4d0
jmp 0x49c8e8
cmp edi, 0x1f
jne 0x49c54e
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov eax, dword [0x4d9e09]
push eax
push 0
push 0
push 0x71
mov edx, dword [ebp - 0x24]
push edx
call fcn.00419974
add esp, 0x1c
jmp 0x49c8e8
cmp edi, 0x20
jne 0x49c579
mov ecx, dword [ebp - 0xc]
push ecx
mov eax, dword [ebp - 8]
push eax
mov edx, dword [0x4d9e09]
push edx
push 0
push 1
push 0x71
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.00419974
add esp, 0x1c
jmp 0x49c8e8
cmp edi, 0x21
jne 0x49c5a4
mov eax, dword [ebp - 0xc]
push eax
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [0x4d9e09]
push ecx
push 0
push 1
push 0x73
mov eax, dword [ebp - 0x24]
push eax
call fcn.00419974
add esp, 0x1c
jmp 0x49c8e8
cmp edi, 0x29
je 0x49c5b7
cmp edi, 0x2a
je 0x49c5b7
cmp edi, 0x2b
jne 0x49c8ab
push 0x4c96fd
call sym.ollydbg.exe__Infoline
pop ecx
mov edx, dword [0x4d54d8]
push edx
call sub.USER32.DLL_SetCursor
mov dword [ebp - 0x38], eax
xor ecx, ecx
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x20], ecx
xor eax, eax
mov dword [ebp - 4], eax
mov esi, ecx
jmp 0x49c80b
mov edx, dword [ebx + 0x10]
push edx
call fcn.00419424
pop ecx
test eax, eax
je 0x49c805
cmp edi, 0x29
jne 0x49c663
push 0
push 0
push 0x20200
mov ecx, dword [ebx + 0x10]
push ecx
call sym.ollydbg.exe__Setbreakpointext
add esp, 0x10
push 0x38
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x3c
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x3b
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x30
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
inc esi
jmp 0x49c805
cmp edi, 0x2a
jne 0x49c7dd
cmp dword [ebp - 0x1c], 0
je 0x49c721
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0xc]
mov eax, dword [0x4d5398]
push edx
lea edx, [ebp - 0x30]
mov ecx, dword [ebp - 8]
push ecx
push eax
push 0xff
push edx
mov ecx, dword [ebx + 0x10]
push ecx
call fcn.00442690
add esp, 0x18
test eax, eax
jl 0x49c820
dec eax
jne 0x49c6cd
push 1
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletebreakpoints
add esp, 0xc
mov edi, 0x35
inc dword [ebp - 0x20]
jmp 0x49c805
lea eax, [ebp - 0x138]
push eax
push 0x38
mov edx, dword [ebx + 0x10]
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
lea ecx, [ebp - 0x338]
push ecx
push 0x3c
mov eax, dword [ebx + 0x10]
push eax
call sym.ollydbg.exe__Findname
add esp, 0xc
lea edx, [ebp - 0x238]
push edx
push 0x3b
mov ecx, dword [ebx + 0x10]
push ecx
call sym.ollydbg.exe__Findname
add esp, 0xc
lea eax, [ebp - 0x438]
push eax
push 0x30
mov edx, dword [ebx + 0x10]
push edx
call sym.ollydbg.exe__Findname
add esp, 0xc
lea ecx, [ebp - 0x138]
push ecx
push 0x38
mov eax, dword [ebx + 0x10]
push eax
call sym.ollydbg.exe__Insertname
add esp, 0xc
lea edx, [ebp - 0x338]
push edx
push 0x3c
mov ecx, dword [ebx + 0x10]
push ecx
call sym.ollydbg.exe__Insertname
add esp, 0xc
lea eax, [ebp - 0x238]
push eax
push 0x3b
mov edx, dword [ebx + 0x10]
push edx
call sym.ollydbg.exe__Insertname
add esp, 0xc
lea ecx, [ebp - 0x438]
push ecx
push 0x30
mov eax, dword [ebx + 0x10]
push eax
call sym.ollydbg.exe__Insertname
add esp, 0xc
mov edx, dword [ebp - 0x30]
push edx
push 0
push 0x24200
mov ecx, dword [ebx + 0x10]
push ecx
call sym.ollydbg.exe__Setbreakpointext
add esp, 0x10
test eax, eax
je 0x49c7da
push 0x38
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x3c
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x3b
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
push 0x30
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletenamerange
add esp, 0xc
jmp 0x49c805
inc esi
jmp 0x49c805
cmp edi, 0x2b
jne 0x49c805
mov ecx, dword [ebx + 0x10]
push ecx
call sym.ollydbg.exe__Getbreakpointtype
pop ecx
test al, 8
jne 0x49c805
push 1
mov eax, dword [ebx + 0x10]
mov edx, eax
inc edx
push edx
push eax
call sym.ollydbg.exe__Deletebreakpoints
add esp, 0xc
inc dword [ebp - 0x20]
inc dword [ebp - 4]
add ebx, 0x18
mov ecx, dword [ebp - 4]
cmp ecx, dword [0x4d9cd8]
jge 0x49c820
cmp dword [ebx + 0x10], 0
jne 0x49c5e9
cmp edi, 0x2b
jne 0x49c85e
cmp dword [ebp - 0x20], 0
jne 0x49c838
push str.No_breakpoints_to_remove
call sym.ollydbg.exe__Infoline
pop ecx
jmp 0x49c88f
cmp dword [ebp - 0x20], 1
jne 0x49c84b
push str.1_breakpoint_removed
call sym.ollydbg.exe__Infoline
pop ecx
jmp 0x49c88f
mov eax, dword [ebp - 0x20]
push eax
push str._i_breakpoints_removed
call sym.ollydbg.exe__Infoline
add esp, 8
jmp 0x49c88f
test esi, esi
jne 0x49c86f
push str.No_calls
call sym.ollydbg.exe__Infoline
pop ecx
jmp 0x49c88f
cmp esi, 1
jne 0x49c881
push str.1_breakpoint_set
call sym.ollydbg.exe__Infoline
pop ecx
jmp 0x49c88f
push esi
push str._i_breakpoints_set
call sym.ollydbg.exe__Infoline
add esp, 8
mov edx, dword [ebp - 0x38]
push edx
call sub.USER32.DLL_SetCursor
push 0
push 0
push 0x474
call sym.ollydbg.exe__Broadcast
add esp, 0xc
jmp 0x49c8e8
cmp edi, 0x32
jne 0x49c8c4
push 0
push 2
push 0x46e
mov ecx, dword [ebp + 8]
push ecx
call fcn.0049be00
jmp 0x49c8e8
cmp edi, 0x33
jne 0x49c8d7
push 2
push 0
call fcn.0049b460
add esp, 8
jmp 0x49c8e8
cmp edi, 0x34
jne 0x49c8e8
push 3
push 0
call fcn.0049b460
add esp, 8
xor eax, eax
jmp 0x49ca4c
mov edx, dword [0x4d9ce0]
push edx
push 0x4d9bd4
call sym.ollydbg.exe__Getsortedbyselection
add esp, 8
mov esi, eax
test esi, esi
jne 0x49c910
xor eax, eax
jmp 0x49ca4c
mov edx, edi
shr edx, 0x10
test dx, dx
jne 0x49c933
cmp dword [esi + 0x10], 0
je 0x49c933
push 1
mov ecx, dword [esi + 0x10]
push ecx
call fcn.0049b460
add esp, 8
jmp 0x49c9b3
mov eax, edi
shr eax, 0x10
cmp ax, 1
jne 0x49c963
cmp dword [esi + 0xc], 0
je 0x49c963
cmp dword [0x4d9ce0], 0
jne 0x49c963
push 0xd
push 0
push 0
mov edx, dword [esi + 0xc]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
jmp 0x49c9b3
mov ecx, edi
shr ecx, 0x10
cmp cx, 2
jne 0x49c98a
cmp dword [esi + 0x14], 0
je 0x49c98a
cmp dword [esi + 0x14], 0xffffffff
je 0x49c98a
push 1
mov eax, dword [esi + 0x14]
push eax
call fcn.0049b460
add esp, 8
jmp 0x49c9b3
shr edi, 0x10
cmp di, 3
jne 0x49c9b3
cmp dword [esi + 0x14], 0
je 0x49c9b3
cmp dword [esi + 0x14], 0xffffffff
je 0x49c9b3
push 0xd
push 0
push 0
mov edx, dword [esi + 0x14]
push edx
push 0
call sym.ollydbg.exe__Setcpu
add esp, 0x14
mov eax, 1
jmp 0x49ca4c
cmp edi, 2
jne 0x49ca00
cmp dword [0x4d9e20], 0
sete dl
and edx, 1
mov dword [0x4d9e20], edx
cmp dword [0x4d9e20], 0
je 0x49c9ea
mov dword [0x4d9da4], str.Calls
jmp 0x49c9f4
mov dword [0x4d9da4], str.Calls_directly
push 0
push 0
call fcn.0049b460
add esp, 8
xor eax, eax
jmp 0x49ca4c
push 0
push 0
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_InvalidateRect
xor eax, eax
jmp 0x49ca4c
or dword [0x4d54cc], 0x2000
xor eax, eax
jmp 0x49ca4c
push 0x49b9f8
push 0x4d9bd0
mov edx, dword [ebp + 8]
push edx
call sym.ollydbg.exe__Painttable
add esp, 0xc
xor eax, eax
jmp 0x49ca4c
mov edx, dword [ebp + 0x14]
push edx
push edi
push ebx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_DefMDIChildProcA
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10