Function at 0x4a14cc
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
sub esp, 0x54
push 0x154
mov eax, 0x62d44b
call fcn.0058c0ed
mov edi, ecx
xor ebx, ebx
cmp byte [edi + 0x8c], bl
jne 0x4a2bc5
cmp byte [edi + 0x6c], bl
je 0x4a1510
mov ecx, dword [edi + 0x68]
cmp dword [ecx + 0x1b8], 0xffffffff
je 0x4a1510
push dword [ebp + 0x68]
push dword [ebp + 0x64]
call fcn.00504b89
jmp 0x4a2bc5
lea eax, [ebp + 0x64]
push eax
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [edi + 0xa4]
lea ecx, [ebp]
call fcn.004c85fc
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp]
call fcn.005656a6
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xa4]
push eax
mov ecx, edi
call fcn.00567059
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x9c]
mov ecx, edi
setne byte [ebp + 0x4f]
mov byte [edi + 0x60], 1
call fcn.0049ef01
mov esi, eax
neg esi
sbb esi, esi
push 0x70
lea ecx, [ebp + 0x54]
inc esi
call fcn.0050b7ca
push dword [eax]
push 0x401
push esi
push dword [ebp + 4]
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push ebx
push ebx
push 0x455
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
neg eax
sbb eax, eax
inc eax
push 0x7c
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x54], eax
call fcn.0050b7ca
push dword [eax]
push 0x408
push dword [ebp + 0x54]
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp + 4]
call esi
xor eax, eax
cmp byte [ebp + 0x4f], bl
push 0x72
sete al
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x54], eax
call fcn.0050b7ca
push dword [eax]
push 0x402
push dword [ebp + 0x54]
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.00401493
xor eax, eax
cmp byte [ebp + 0x4f], bl
push 0x71
sete al
lea ecx, [ebp + 0x40]
mov dword [ebp + 0x54], eax
call fcn.0050b7ca
push dword [eax]
push 0x403
push dword [ebp + 0x54]
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.00401493
cmp byte [edi + 0x8d], bl
je 0x4a1698
push 0x275
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x44e
push ebx
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x1fd
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x44c
push ebx
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x73
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x404
push ebx
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp + 4]
call esi
push 0x75
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x406
push ebx
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp + 4]
call esi
cmp byte [edi + 0x8d], bl
jne 0x4a1741
cmp byte [edi + 0xa1], bl
je 0x4a1741
push 0x1fe
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x44d
push ebx
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp + 4]
call esi
push 0x65e0b0
push 0x52c
push ebx
push dword [ebp + 4]
call esi
push 0x65b2d8
push 0x52d
push ebx
push dword [ebp + 4]
call esi
push str.style
push 0x52e
push ebx
push dword [ebp + 4]
call esi
push str.case
push 0x52f
push ebx
push dword [ebp + 4]
call esi
push str.hilite
push 0x530
push ebx
push dword [ebp + 4]
call esi
push 0x6401e8
push ebx
push 0x800
push dword [ebp + 4]
call esi
push dword [edi + 0xa4]
lea ecx, [ebp - 0x4c]
call fcn.004c85fc
mov byte [ebp - 4], 1
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x4c]
call fcn.005656a6
push 0x78
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40a
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x79
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40b
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x7a
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40c
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x281
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x413
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x48]
call esi
push 0x127
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40d
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x128
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40e
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x129
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x40f
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x12a
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x410
push ebx
push dword [ebp - 0x48]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x48]
call esi
call fcn.0054f69d
push eax
lea ecx, [ebp + 0x3c]
call fcn.004018a6
push 0x212
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 2
call fcn.0050b7ca
mov eax, dword [eax]
push 0x28
push eax
lea eax, [ebp + 0x3c]
push eax
mov byte [ebp - 4], 3
call fcn.00401e49
mov ecx, dword [ebp + 0x54]
add esp, 0xc
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401493
push dword [ebp + 0x3c]
push 0x450
push ebx
push dword [ebp - 0x48]
call esi
push 0x212
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
mov eax, dword [eax]
push 0x50
push eax
lea eax, [ebp + 0x3c]
push eax
mov byte [ebp - 4], 4
call fcn.00401e49
mov ecx, dword [ebp + 0x54]
add esp, 0xc
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401493
push dword [ebp + 0x3c]
push 0x451
push ebx
push dword [ebp - 0x48]
call esi
push 0x212
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
mov eax, dword [eax]
push 0x78
push eax
lea eax, [ebp + 0x3c]
push eax
mov byte [ebp - 4], 5
call fcn.00401e49
mov ecx, dword [ebp + 0x54]
add esp, 0xc
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401493
push dword [ebp + 0x3c]
push 0x452
push ebx
push dword [ebp - 0x48]
call esi
push 0x212
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
mov eax, dword [eax]
push 0xf0
push eax
lea eax, [ebp + 0x3c]
push eax
mov byte [ebp - 4], 6
call fcn.00401e49
mov ecx, dword [ebp + 0x54]
add esp, 0xc
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.00401493
push dword [ebp + 0x3c]
push 0x453
push ebx
push dword [ebp - 0x48]
call esi
call fcn.0048d59a
cmp byte [eax + 0xc90], bl
je 0x4a1a4f
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x48]
call esi
push 0x65e08c
push 0x411
push ebx
push dword [ebp - 0x48]
call esi
push 0x65e06c
push 0x412
push ebx
push dword [ebp - 0x48]
call esi
push 0x77
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0x48]
push 0x10
push dword [ebp + 4]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x7a
push 1
push dword [ebp - 0x48]
lea ecx, [ebp]
call fcn.004c84ac
push dword [edi + 0xa4]
lea ecx, [ebp - 0x2c]
call fcn.004c85fc
mov byte [ebp - 4], 7
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x2c]
call fcn.005656a6
call fcn.0054f69d
push eax
lea ecx, [ebp - 0x94]
call fcn.004018a6
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0xcf4]
mov byte [ebp - 4], 8
mov dword [ebp + 0x48], 0x68a
mov dword [ebp + 0x34], eax
cmp eax, ebx
je 0x4a1b2f
mov ecx, dword [edi + 0xb4]
lea eax, [ebp + 0x34]
push eax
add ecx, 0xcf0
call fcn.00408d0c
push eax
lea ecx, [ebp + 0x38]
call fcn.00402e5b
push dword [ebp + 0x38]
mov byte [ebp - 4], 9
push dword [ebp + 0x48]
push ebx
push dword [ebp - 0x28]
call esi
push ecx
lea eax, [ebp + 0x38]
mov dword [ebp + 0x2c], esp
mov ecx, esp
push eax
call fcn.00402e5b
push ebx
push dword [ebp + 0x48]
lea ecx, [ebp - 0x2c]
call fcn.004c84e8
mov ecx, dword [ebp + 0x38]
inc dword [ebp + 0x48]
add ecx, 0xfffffff0
mov byte [ebp - 4], 8
call fcn.00401493
cmp dword [ebp + 0x34], ebx
jne 0x4a1acf
mov eax, dword [edi + 0xb4]
cmp dword [eax + 0xcfc], ebx
jle 0x4a1b4d
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x28]
call esi
lea eax, [edi + 0xa8]
push eax
lea ecx, [ebp + 0x48]
mov dword [ebp + 0x38], ebx
call fcn.00402e5b
mov eax, dword [ebp + 0x48]
mov eax, dword [eax - 0xc]
cmp eax, 3
mov byte [ebp - 4], 0xa
jle 0x4a1c5d
mov dword [ebp + 0x44], 0x590
push ebx
push 0x643204
lea ecx, [ebp + 0x48]
call fcn.0040bb49
push eax
lea eax, [ebp + 0x50]
push eax
lea ecx, [ebp + 0x48]
call fcn.00403286
mov eax, dword [ebp + 0x50]
cmp dword [eax - 0xc], 0x20
mov byte [ebp - 4], 0xb
jle 0x4a1bcb
push 0x20
lea eax, [ebp + 0x54]
push eax
lea ecx, [ebp + 0x50]
call fcn.00403286
push eax
lea ecx, [ebp + 0x50]
mov byte [ebp - 4], 0xc
call fcn.00401dd7
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xb
call fcn.00401493
push dword [ebp + 0x50]
push dword [ebp + 0x44]
push ebx
push dword [ebp - 0x28]
call esi
push ecx
lea eax, [ebp + 0x50]
mov dword [ebp + 0x2c], esp
mov ecx, esp
push eax
call fcn.00402e5b
push ebx
push dword [ebp + 0x44]
lea ecx, [ebp - 0x2c]
call fcn.004c84e8
push ebx
push 0x643204
lea ecx, [ebp + 0x48]
call fcn.0040bb49
inc eax
push eax
lea eax, [ebp + 0x40]
push eax
lea ecx, [ebp + 0x48]
call fcn.0040d75e
push eax
lea ecx, [ebp + 0x48]
mov byte [ebp - 4], 0xd
call fcn.00401dd7
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.00401493
mov ecx, dword [ebp + 0x50]
inc dword [ebp + 0x38]
inc dword [ebp + 0x44]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xa
call fcn.00401493
mov eax, dword [ebp + 0x48]
cmp dword [eax - 0xc], 3
jg 0x4a1b79
cmp dword [ebp + 0x38], ebx
jle 0x4a1c5d
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x28]
call esi
push 0x140
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x43c
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push dword [edi + 0xb0]
lea ecx, [ebp - 0x2c]
push ebx
push 0x43c
call fcn.004c8545
push ebx
push ebx
push 0x43c
lea ecx, [ebp - 0x2c]
call fcn.004c8528
push 0x141
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x43d
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push dword [edi + 0xb0]
lea ecx, [ebp - 0x2c]
push ebx
push 0x43d
call fcn.004c8545
push 0xff
push ebx
push 0x43d
lea ecx, [ebp - 0x2c]
call fcn.004c8528
push 0x142
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x43e
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push dword [edi + 0xb0]
lea ecx, [ebp - 0x2c]
push ebx
push 0x43e
call fcn.004c8545
push 0x8000
push ebx
push 0x43e
lea ecx, [ebp - 0x2c]
call fcn.004c8528
push 0x143
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x43f
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push dword [edi + 0xb0]
lea ecx, [ebp - 0x2c]
push ebx
push 0x43f
call fcn.004c8545
push 0xff0000
push ebx
push 0x43f
lea ecx, [ebp - 0x2c]
call fcn.004c8528
push 0x144
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x440
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push dword [edi + 0xb0]
lea ecx, [ebp - 0x2c]
push ebx
push 0x440
call fcn.004c8545
push 0xf6ffff
push ebx
push 0x440
lea ecx, [ebp - 0x2c]
call fcn.004c8528
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x28]
call esi
push 0x76
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x407
push ebx
push dword [ebp - 0x28]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd6
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0x28]
push 0x10
push 0x52c
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x29
push 1
push dword [ebp - 0x28]
lea ecx, [ebp]
call fcn.004c84ac
push dword [edi + 0xa4]
lea ecx, [ebp - 0x8c]
call fcn.004c85fc
mov byte [ebp - 4], 0xe
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x8c]
call fcn.005656a6
push 0xd3
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x41e
push ebx
push dword [ebp - 0x88]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd4
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x41f
push ebx
push dword [ebp - 0x88]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x88]
call esi
push 0x65e068
push 0x420
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e060
push 0x421
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e058
push 0x422
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e050
push 0x423
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e048
push 0x424
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e040
push 0x425
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e038
push 0x426
push ebx
push dword [ebp - 0x88]
call esi
push 0x65e030
push 0x427
push ebx
push dword [ebp - 0x88]
call esi
push 0xd8
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0x88]
push 0x10
push 0x52d
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xa2
push 1
push dword [ebp - 0x88]
lea ecx, [ebp]
call fcn.004c84ac
push dword [edi + 0xa4]
lea ecx, [ebp - 0xe4]
call fcn.004c85fc
mov byte [ebp - 4], 0xf
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0xe4]
call fcn.005656a6
push 0x138
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x428
push ebx
push dword [ebp - 0xe0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x139
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x429
push ebx
push dword [ebp - 0xe0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x13a
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x42a
push ebx
push dword [ebp - 0xe0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x13b
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x42b
push ebx
push dword [ebp - 0xe0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd7
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0xe0]
push 0x10
push 0x52e
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0x59
push 1
push dword [ebp - 0xe0]
lea ecx, [ebp]
call fcn.004c84ac
push dword [edi + 0xa4]
lea ecx, [ebp - 0xc4]
call fcn.004c85fc
mov byte [ebp - 4], 0x10
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0xc4]
call fcn.005656a6
push 0xcf
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x432
push ebx
push dword [ebp - 0xc0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd0
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x433
push ebx
push dword [ebp - 0xc0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd1
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x434
push ebx
push dword [ebp - 0xc0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd2
lea ecx, [ebp + 0x54]
call fcn.0050b7ca
push dword [eax]
push 0x435
push ebx
push dword [ebp - 0xc0]
call esi
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
push 0xd9
lea ecx, [ebp + 0x40]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0xc0]
push 0x10
push 0x52f
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, dword [ebp + 0x40]
add ecx, 0xfffffff0
call fcn.00401493
push 0xcf
push 1
push dword [ebp - 0xc0]
lea ecx, [ebp]
call fcn.004c84ac
push dword [edi + 0xa4]
lea ecx, [ebp - 0x6c]
call fcn.004c85fc
mov byte [ebp - 4], 0x11
call dword [sym.imp.USER32.dll_CreatePopupMenu]
push eax
lea ecx, [ebp - 0x6c]
call fcn.005656a6
push 0x127
lea ecx, [ebp + 0x20]
call fcn.0050b7ca
push dword [eax]
push 0x446
push ebx
push dword [ebp - 0x68]
call esi
mov ecx, dword [ebp + 0x20]
add ecx, 0xfffffff0
call fcn.00401493
push 0x6401e8
push ebx
push 0x800
push dword [ebp - 0x68]
call esi
push 0x6401e8
push 0x447
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe60]
push ebx
push 0x447
lea ecx, [ebp - 0x6c]
call fcn.004c8545
push 0x6401e8
push 0x448
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe64]
lea ecx, [ebp - 0x6c]
push ebx
push 0x448
call fcn.004c8545
push 0x6401e8
push 0x449
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe68]
lea ecx, [ebp - 0x6c]
push ebx
push 0x449
call fcn.004c8545
push 0x6401e8
push 0x44a
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe6c]
lea ecx, [ebp - 0x6c]
push ebx
push 0x44a
call fcn.004c8545
push 0x6401e8
push 0x44b
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe70]
lea ecx, [ebp - 0x6c]
push ebx
push 0x44b
call fcn.004c8545
push 0x6401e8
push 0x454
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe74]
lea ecx, [ebp - 0x6c]
push ebx
push 0x454
call fcn.004c8545
push 0x6401e8
push 0x455
push ebx
push dword [ebp - 0x68]
call esi
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe78]
lea ecx, [ebp - 0x6c]
push ebx
push 0x455
call fcn.004c8545
push 0x19b
lea ecx, [ebp + 0x34]
call fcn.0050b7ca
push dword [eax]
push dword [ebp - 0x68]
push 0x10
push 0x530
push dword [ebp + 4]
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov ecx, dword [ebp + 0x34]
add ecx, 0xfffffff0
call fcn.00401493
push 0x71
push 1
push dword [ebp - 0x68]
lea ecx, [ebp]
call fcn.004c84ac
xor esi, esi
call fcn.0048d59a
cmp byte [eax + 0xc90], bl
je 0x4a238b
mov esi, 0x8008
push ebx
push edi
push dword [ebp + 0x68]
or esi, 0x102
push dword [ebp + 0x64]
lea ecx, [ebp]
push esi
call fcn.00553dad
mov esi, eax
lea ecx, [ebp]
mov dword [ebp + 0x34], esi
call fcn.005656fe
lea ecx, [ebp - 0x4c]
call fcn.005656fe
lea ecx, [ebp - 0x2c]
call fcn.005656fe
lea ecx, [ebp - 0x8c]
call fcn.005656fe
lea ecx, [ebp - 0xe4]
call fcn.005656fe
lea ecx, [ebp - 0xc4]
call fcn.005656fe
lea ecx, [ebp - 0x6c]
call fcn.005656fe
lea eax, [esi - 0x401]
mov byte [edi + 0x60], bl
cmp eax, 0x54
ja case.0x4a2401.1029
movzx eax, byte [eax + 0x4a2cbc]
jmp dword [eax*4 + 0x4a2bdc]
mov ecx, edi
call fcn.0049f456
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049ef66
jmp case.0x4a2401.1029
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setl al
movzx eax, al
push eax
mov ecx, edi
call fcn.0049ffa2
jmp case.0x4a2401.1029
cmp byte [edi + 0x6c], bl
je 0x4a246d
push ebx
push ebx
push 0xe
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x4a246d
mov ecx, dword [edi + 0x68]
call fcn.004f1db8
test al, al
je 0x4a246d
mov ecx, dword [edi + 0x68]
call fcn.005004ef
jmp case.0x4a2401.1029
push ebx
mov ecx, edi
call fcn.005672ee
test eax, eax
je case.0x4a2401.1029
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
setl al
movzx eax, al
push eax
mov ecx, edi
call fcn.0049f4fc
jmp case.0x4a2401.1029
push ebx
push ebx
push 0xe
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
push ebx
mov ecx, edi
call fcn.00566fce
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.004a12fc
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049f465
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049e9fb
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049ea39
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049ea77
jmp case.0x4a2401.1029
push ebx
push ebx
mov ecx, edi
call fcn.0049f1ef
jmp case.0x4a2401.1029
push ebx
push 1
jmp 0x4a24f4
push 0x200
push 2
jmp 0x4a24f4
push ebx
push 3
jmp 0x4a24f4
push ebx
mov ecx, edi
call fcn.0049e93b
jmp case.0x4a2401.1029
push 1
jmp 0x4a2514
mov ecx, edi
call fcn.0049eab5
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049f36d
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049f28e
jmp case.0x4a2401.1029
push 8
mov ecx, edi
call fcn.0049e970
jmp case.0x4a2401.1029
push 0xa
jmp 0x4a254a
push 0xc
jmp 0x4a254a
push 0xe
jmp 0x4a254a
push 0x12
jmp 0x4a254a
push 0x18
jmp 0x4a254a
push 0x24
jmp 0x4a254a
push 0x3c
jmp 0x4a254a
mov ecx, edi
call fcn.0049eaf3
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049eb40
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049eb8d
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049ebda
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049fc21
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.0049fcdf
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.004a01d7
jmp case.0x4a2401.1029
mov ecx, edi
call fcn.004a03b6
jmp case.0x4a2401.1029
push ebx
mov ecx, edi
call fcn.0049f198
jmp case.0x4a2401.1029
push 0xff
jmp 0x4a25d3
push 0x8000
jmp 0x4a25d3
push 0xff0000
jmp 0x4a25d3
push 0xffffff
jmp 0x4a25d3
push 0xffffffffffffffff
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe60]
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe64]
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe68]
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe6c]
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe70]
jmp 0x4a2948
call fcn.0054f69d
push eax
lea ecx, [ebp + 0x44]
call fcn.004018a6
lea eax, [ebp + 0x44]
push eax
push dword [edi + 0x94]
mov ecx, edi
push dword [edi + 0x90]
mov byte [ebp - 4], 0x12
call fcn.005674f6
push ecx
lea eax, [ebp + 0x44]
mov dword [ebp + 0x2c], esp
mov ecx, esp
push eax
call fcn.00402e5b
mov ecx, edi
call fcn.0049fe93
mov ecx, dword [ebp + 0x44]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x11
call fcn.00401493
jmp case.0x4a2401.1029
cmp byte [edi + 0xa1], bl
je case.0x4a2401.1029
mov ecx, edi
call fcn.004a1058
jmp case.0x4a2401.1029
push 0x6401e8
lea ecx, [ebp + 0x50]
call fcn.00402035
lea eax, [ebp + 0x50]
push eax
push dword [edi + 0x94]
mov ecx, edi
push dword [edi + 0x90]
mov byte [ebp - 4], 0x13
call fcn.005674f6
lea eax, [ebp - 0x90]
push eax
push ebx
push 0x43c
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
lea edx, [ebp - 0x98]
push edx
push 0x65e020
push eax
call dword [ecx]
mov eax, dword [ebp - 0x98]
mov ecx, dword [eax]
lea edx, [ebp + 0x20]
push edx
push dword [edi + 0x94]
push dword [edi + 0x90]
push eax
call dword [ecx + 0x60]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
push ebx
push SafeArrayAllocData
push eax
call dword [ecx + 0x64]
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
lea edx, [ebp + 0x40]
push edx
push eax
call dword [ecx + 0x40]
push 2
pop esi
push 7
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp + 0x50]
call fcn.00403286
push 0x65d990
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.004027cb
mov ecx, dword [ebp - 0xa0]
neg eax
sbb al, al
inc al
add ecx, 0xfffffff0
mov byte [ebp + 0x4f], al
mov byte [ebp - 4], 0x13
call fcn.00401493
cmp byte [ebp + 0x4f], bl
jne 0x4a27a6
push ebx
push 0x65e018
lea ecx, [ebp + 0x50]
call fcn.0040bb49
cmp eax, 0xffffffff
jne 0x4a27a9
xor esi, esi
inc esi
call fcn.0054f69d
push eax
lea ecx, [ebp + 0x44]
call fcn.004018a6
lea eax, [ebp + 0x44]
push eax
mov eax, dword [edi + 0x94]
push dword [ebp + 0x40]
add eax, esi
push eax
mov ecx, edi
mov byte [ebp - 4], 0x15
call fcn.005674f6
push ebx
lea ecx, [ebp - 0x160]
call fcn.004a7382
lea eax, [ebp + 0x44]
push eax
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x16
call fcn.00401dd7
lea eax, [ebp + 0x50]
push eax
lea ecx, [ebp - 0xe8]
call fcn.00401dd7
mov eax, dword [ebp + 0x44]
cmp dword [eax - 0xc], ebx
jne 0x4a2817
lea eax, [ebp + 0x50]
push eax
lea ecx, [ebp - 0xec]
call fcn.00401dd7
lea ecx, [ebp - 0x160]
call fcn.00566c09
cmp eax, 1
jne 0x4a28f2
push dword [ebp + 0x40]
mov ecx, edi
push dword [edi + 0x90]
call fcn.00566fce
push ecx
lea eax, [ebp - 0xe8]
mov dword [ebp + 0x2c], esp
mov ecx, esp
push eax
call fcn.00402e5b
lea eax, [ebp + 0x24]
push eax
mov ecx, edi
call fcn.004a0c1e
push eax
lea ecx, [ebp + 0x2c]
mov byte [ebp - 4], 0x17
call fcn.00402e5b
mov ecx, dword [ebp + 0x24]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x19
call fcn.00401493
push ecx
lea eax, [ebp - 0xec]
mov dword [ebp + 0x30], esp
mov ecx, esp
push eax
call fcn.00402e5b
lea eax, [ebp + 0x54]
push eax
mov ecx, edi
call fcn.004a0b7a
mov byte [ebp - 4], 0x1a
call fcn.0054f69d
push eax
lea ecx, [ebp + 0x30]
call fcn.004018a6
push dword [ebp + 0x54]
mov esi, dword [ebp + 0x2c]
push esi
lea eax, [ebp + 0x30]
push str._rtf1colortbl___red0green102_blue204__field_fldinstHYPERLINK___s___fldrsltcf1ul__s
push eax
mov byte [ebp - 4], 0x1b
call fcn.00401e49
add esp, 0xc
lea eax, [ebp + 0x30]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
call fcn.00402e5b
mov ecx, edi
call fcn.004a0762
mov ecx, dword [ebp + 0x30]
add ecx, 0xfffffff0
call fcn.00401493
mov ecx, dword [ebp + 0x54]
add ecx, 0xfffffff0
call fcn.00401493
lea ecx, [esi - 0x10]
call fcn.00401493
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0x15
call fcn.0049fc00
mov ecx, dword [ebp + 0x44]
add ecx, 0xfffffff0
call fcn.00401493
mov ecx, dword [ebp + 0x50]
jmp 0x4a2699
push 0x28
mov ecx, edi
call fcn.0049f670
jmp case.0x4a2401.1029
push 0x50
jmp 0x4a2916
push 0x78
jmp 0x4a2916
push 0xf0
jmp 0x4a2916
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe74]
jmp 0x4a2948
mov eax, dword [edi + 0xb4]
push dword [eax + 0xe78]
mov ecx, edi
call fcn.0049f137
mov esi, dword [ebp + 0x34]
lea eax, [esi - 0x68a]
cmp eax, 4
ja 0x4a2a13
mov eax, dword [edi + 0xb4]
mov ecx, dword [eax + 0xcf4]
mov dword [ebp + 0x54], ecx
lea ecx, [ebp + 0x54]
push ecx
lea ecx, [eax + 0xcf0]
add esi, 0xfffff976
call fcn.00408d0c
push eax
lea ecx, [ebp + 0x50]
call fcn.00402e5b
cmp esi, ebx
mov byte [ebp - 4], 0x1c
jle 0x4a29b7
mov ecx, dword [edi + 0xb4]
lea eax, [ebp + 0x54]
push eax
add ecx, 0xcf0
call fcn.00408d0c
push eax
lea ecx, [ebp + 0x50]
call fcn.00401dd7
dec esi
jne 0x4a2996
push ecx
lea eax, [ebp + 0x50]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
call fcn.00402e5b
mov ecx, dword [edi + 0xb4]
call fcn.0040cabd
push ecx
lea eax, [ebp + 0x50]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
call fcn.00402e5b
mov ecx, dword [edi + 0xb4]
call fcn.0040ca59
push ecx
lea eax, [ebp + 0x50]
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
call fcn.00402e5b
mov ecx, edi
call fcn.0049fd9d
mov ecx, dword [ebp + 0x50]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x11
call fcn.00401493
mov esi, dword [ebp + 0x34]
mov eax, 0x590
cmp esi, eax
jb 0x4a2b45
mov ecx, dword [ebp + 0x38]
add ecx, eax
cmp esi, ecx
jae 0x4a2b45
mov dword [ebp + 0x30], eax
lea eax, [edi + 0xa8]
push eax
lea ecx, [ebp + 0x50]
call fcn.00402e5b
mov eax, dword [ebp + 0x50]
mov byte [ebp - 4], 0x1d
cmp dword [eax - 0xc], ebx
je 0x4a2b3a
mov esi, 0x643204
mov eax, dword [ebp + 0x30]
push ebx
lea ecx, [ebp + 0x50]
push esi
cmp dword [ebp + 0x34], eax
je 0x4a2aa0
call fcn.0040bb49
inc eax
push eax
lea eax, [ebp + 0x2c]
push eax
lea ecx, [ebp + 0x50]
call fcn.0040d75e
push eax
lea ecx, [ebp + 0x50]
mov byte [ebp - 4], 0x20
call fcn.00401dd7
mov ecx, dword [ebp + 0x2c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1d
call fcn.00401493
mov eax, dword [ebp + 0x50]
inc dword [ebp + 0x30]
cmp dword [eax - 0xc], ebx
jne 0x4a2a54
jmp 0x4a2b3a
call fcn.0040bb49
push ecx
mov ecx, esp
mov dword [ebp + 0x28], esp
push eax
push ecx
lea ecx, [ebp + 0x50]
call fcn.00403286
mov ecx, edi
call fcn.0049fd9d
push ebx
push esi
lea ecx, [ebp + 0x50]
call fcn.0040bb49
push eax
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x50]
call fcn.00403286
push ecx
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1e
call fcn.00402e5b
mov ecx, dword [edi + 0xb4]
call fcn.0040cabd
mov ecx, dword [ebp + 0x24]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0x1d
call fcn.00401493
push ebx
push esi
lea ecx, [ebp + 0x50]
call fcn.0040bb49
push eax
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x50]
call fcn.00403286
push ecx
mov dword [ebp + 0x28], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 0x1f
call fcn.00402e5b
mov ecx, dword [edi + 0xb4]
call fcn.0040ca59
mov ecx, dword [ebp + 0x24]
add ecx, 0xfffffff0
call fcn.00401493
mov ecx, dword [ebp + 0x50]
add ecx, 0xfffffff0
call fcn.00401493
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
call fcn.0040bd21
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0xf
call fcn.0040bd21
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xe
call fcn.0040bd21
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 0xa
call fcn.0040bd21
mov ecx, dword [ebp + 0x48]
add ecx, 0xfffffff0
call fcn.00401493
mov ecx, dword [ebp - 0x94]
add ecx, 0xfffffff0
call fcn.00401493
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
call fcn.0040bd21
mov ecx, dword [ebp + 0x3c]
add ecx, 0xfffffff0
call fcn.00401493
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], bl
call fcn.0040bd21
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp]
call fcn.0040bd21
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x58
leave
ret 0xc