Function at 0x4142f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4d6606
push eax
mov dword fs:[0], esp
sub esp, 0x15c
mov eax, 0xffff
push ebx
push ebp
mov ebp, ecx
push esi
mov ecx, dword [esp + 0x17c]
push edi
cmp ecx, eax
mov edi, 1
jne 0x414333
cmp dword [esp + 0x184], eax
jne 0x414333
mov ebx, edi
jmp 0x414335
xor ebx, ebx
mov esi, dword [sym.imp.user32.dll_GetKeyState]
push 0x10
mov dword [esp + 0x18], ebx
call esi
test ah, 0x80
je 0x414351
push 0x79
call esi
test ah, 0x80
je 0x414362
push 0x11
call esi
test ah, 0x80
mov dword [esp + 0x10], 0
je 0x414366
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x17c]
test ebx, ebx
mov ebx, dword [sym.imp.user32.dll_SendMessageA]
je 0x414411
cmp esi, dword [ebp + 0xc]
je 0x4143ac
cmp esi, dword [ebp + 0x24]
je 0x4143ac
cmp esi, dword [ebp + 0x10]
jne 0x4150cf
push 0
push 9
push 0x110a
push esi
call ebx
mov dword [esp + 0x38], eax
lea eax, [esp + 0x38]
push eax
push 0
push 0x1104
jmp 0x4143d2
push edi
push 0xffffffffffffffff
push 0x100c
push esi
call ebx
lea ecx, [esp + 0x38]
test ecx, ecx
je 0x4143c9
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x38]
jmp 0x4143cb
xor ecx, ecx
push ecx
push eax
push 0x100e
push esi
call ebx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
add eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x3c]
sar eax, 1
mov dword [esp + 0x180], eax
lea eax, [ecx + edx]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x184], eax
lea eax, [esp + 0x180]
push eax
push esi
call dword [sym.imp.user32.dll_ClientToScreen]
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x180]
mov edi, dword [ebp + 0xc]
push ecx
push edx
call dword [sym.imp.user32.dll_WindowFromPoint]
push eax
call dword [sym.imp.user32.dll_GetParent]
cmp eax, edi
jne 0x4144c8
mov eax, dword [ebp + 0x200]
push 0x4eaf
push eax
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov edi, dword [sym.imp.user32.dll_CheckMenuItem]
mov esi, eax
mov eax, dword [0x4fb8ac]
test eax, eax
je 0x414473
push 8
push 0x4ea3
push esi
call edi
mov eax, dword [0x4fb8b0]
test eax, eax
je 0x414486
push 8
push 0x4ea4
push esi
call edi
mov eax, dword [0x4fb8b4]
test eax, eax
je 0x414499
push 8
push 0x4ea5
push esi
call edi
mov eax, dword [0x4fb8b8]
test eax, eax
je 0x4144ac
push 8
push 0x4ea6
push esi
call edi
mov eax, dword [0x4fb8bc]
test eax, eax
je 0x415085
push 8
push 0x4ea7
push esi
call edi
jmp 0x415085
cmp esi, dword [ebp + 8]
jne 0x414569
mov ecx, dword [ebp + 0x200]
push 0x4eca
push ecx
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov edi, dword [sym.imp.user32.dll_CheckMenuItem]
mov esi, eax
mov eax, dword [ebp + 0x430]
test eax, eax
je 0x414536
push 8
push 0x4f11
push esi
call edi
mov eax, dword [0x4fb858]
xor ecx, ecx
sub eax, ecx
je 0x41452b
dec eax
je 0x414524
dec eax
jne 0x414530
mov ecx, 0x4f16
jmp 0x414530
mov ecx, 0x4f15
jmp 0x414530
mov ecx, 0x4f14
push 8
push ecx
push esi
call edi
mov eax, dword [0x4fb70c]
test eax, eax
je 0x414549
push 8
push 0x4ea9
push esi
call edi
mov al, byte [0x4fb97e]
test al, al
je 0x415085
push 0
push 0x4e90
push esi
call dword [sym.imp.user32.dll_RemoveMenu]
jmp 0x415085
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x414973
cmp esi, edi
je 0x414973
mov edx, dword [ebp + 0x208]
cmp esi, dword [edx + 0x50]
jne 0x414606
mov eax, dword [ebp + 0x200]
push 0x4e85
push eax
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov ecx, dword [0x4fb824]
mov esi, eax
xor eax, eax
cmp ecx, 4
ja case.default.0x4145b6
jmp dword [ecx*4 + 0x4150ec]
mov eax, 0x4eaa
jmp case.default.0x4145b6
mov eax, 0x4eab
jmp case.default.0x4145b6
mov eax, 0x4eac
jmp case.default.0x4145b6
mov eax, 0x4ead
jmp case.default.0x4145b6
mov eax, 0x4eae
mov edi, dword [sym.imp.user32.dll_CheckMenuItem]
push 8
push eax
push esi
call edi
mov eax, dword [0x4fb70c]
test eax, eax
je 0x415085
push 8
push 0x4ea9
push esi
call edi
jmp 0x415085
cmp esi, dword [ebp + 0x24]
jne 0x414774
push 0xffffffffffffffff
mov ecx, ebp
mov esi, 0x70
call fcn.00418060
mov edi, eax
test edi, edi
je 0x414628
mov esi, 0x6f
mov ecx, dword [ebp + 0x200]
and esi, 0xffff
push esi
push ecx
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
test edi, edi
mov esi, eax
je 0x414703
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414677
mov edx, dword [esp + 0x184]
mov eax, dword [esp + 0x180]
mov ecx, dword [edi]
push edx
mov edx, dword [ebp + 0x24]
push eax
push ecx
push edx
jmp 0x4147ea
mov eax, dword [edi + 0xc]
push 0
cmp eax, 1
jne 0x4146b0
push 0x4eb0
push esi
call dword [sym.imp.user32.dll_RemoveMenu]
push 0
push 0x4f18
push esi
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
push 0xf
call dword [sym.imp.user32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x415085
jmp 0x415077
mov edi, dword [sym.imp.user32.dll_RemoveMenu]
push 0x4f18
push esi
call edi
push 0
push 0x4f44
push esi
call edi
push 0
push 0x4f47
push esi
call edi
push 0
push 0x4f67
push esi
call edi
push 0
push 0x4f3e
push esi
call edi
push 0x400
push 4
push esi
call edi
push 0
push 0x4eb0
push esi
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
jmp 0x415085
mov edx, dword [0x4fb85c]
xor eax, eax
test edx, edx
mov ebx, dword [sym.imp.user32.dll_CheckMenuItem]
push 8
setne al
add eax, 0x4f65
mov edi, eax
push edi
push esi
call ebx
mov eax, dword [0x4fb8c4]
cmp eax, 3
ja case.default.0x41472d
jmp dword [eax*4 + 0x415100]
mov edi, 0x4f68
push 8
push edi
push esi
call ebx
jmp 0x415085
mov edi, 0x4f69
push 8
push edi
push esi
call ebx
jmp 0x415085
mov edi, 0x4f6a
push 8
push edi
push esi
call ebx
jmp 0x415085
mov edi, 0x4f6c
push 8
push edi
push esi
call ebx
jmp 0x415085
mov eax, dword [ebp + 0x10]
cmp esi, eax
jne 0x4148e4
mov ecx, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x38]
push ecx
push eax
mov dword [esp + 0x44], edx
call dword [sym.imp.user32.dll_ScreenToClient]
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x38]
push edx
push 0
push 0x1111
push eax
call ebx
mov ecx, dword [ebp + 0x10]
mov esi, eax
push esi
push ecx
call fcn.00404b60
add esp, 8
test eax, eax
je 0x4150c8
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x414807
mov edx, dword [esp + 0x184]
mov ecx, dword [esp + 0x180]
push edx
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
call fcn.00405dc0
add esp, 0x10
test eax, eax
jne 0x4150cf
push 0xffffffffffffffff
call dword [sym.imp.user32.dll_MessageBeep]
jmp 0x4150cf
mov ecx, dword [eax]
lea edi, [esp + 0x10]
add eax, 8
push edi
mov dword [esp + 0x14], 0x40000177
mov edx, dword [ecx]
push eax
push 1
push ecx
call dword [edx + 0x24]
test eax, eax
jne 0x4150c8
mov eax, dword [esp + 0x10]
push 0xf
mov ecx, eax
mov edi, eax
and ecx, 0x10
and eax, 0x20
and edi, 0x40000000
mov dword [ebp + 0x82c], ecx
mov dword [ebp + 0x81c], eax
call dword [sym.imp.user32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x414869
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 1
test eax, 0x40000
je 0x414871
mov dword [esp + 0x18], 0
test edi, edi
je 0x4150c8
mov edx, dword [ebp + 0x10]
push esi
push 8
push 0x110b
push edx
call ebx
mov eax, dword [ebp + 0x200]
push 0x71
push eax
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov edi, dword [sym.imp.user32.dll_RemoveMenu]
mov esi, eax
mov eax, dword [ebp + 0x82c]
test eax, eax
jne 0x4148bf
push 0
push 0x4e88
push esi
call edi
mov eax, dword [ebp + 0x81c]
test eax, eax
jne 0x4148d3
push 0
push 0x4e89
push esi
call edi
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x415085
jmp 0x415077
cmp esi, dword [ebp + 0x14]
jne 0x41490c
mov ecx, dword [ebp + 0x200]
push 0x72
push ecx
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov esi, eax
jmp 0x415085
cmp esi, dword [ebp + 0x1c]
jne 0x4150c8
mov edx, dword [ebp + 0x200]
push 0x73
push edx
call dword [sym.imp.user32.dll_LoadMenuA]
push 0
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov esi, eax
mov eax, dword [ebp + 0xd4]
neg eax
sbb eax, eax
push 0
and eax, 0x8b
add eax, 0x4ebd
push eax
push esi
call dword [sym.imp.user32.dll_RemoveMenu]
mov ecx, dword [ebp + 0xd4]
push 0
neg ecx
sbb ecx, ecx
and cl, 0x75
add ecx, 0x4f48
push ecx
push esi
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
jmp 0x415085
mov ecx, ebp
call fcn.00413090
mov edx, dword [ebp + 0xc]
xor edi, edi
push edi
push edi
push 0x1032
push edx
call ebx
test eax, eax
jbe 0x414f78
cmp dword [esp + 0x10], edi
je 0x414b6a
lea ecx, [esp + 0x48]
call fcn.0041e520
lea eax, [esp + 0x48]
mov ecx, ebp
push eax
mov dword [esp + 0x178], edi
call fcn.00412540
push 0x80
mov dword [esp + 0x20], 0x4d86f4
call fcn.004c7e90
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 0x1f
mov dword [esp + 0x30], pe_nt_image_headers32
mov eax, dword [esp + 0x50]
xor esi, esi
cmp eax, edi
mov byte [esp + 0x174], 1
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], esi
jle 0x414ad0
cmp esi, eax
jge 0x414a17
test esi, esi
jl 0x414a17
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + esi*4]
jmp 0x414a19
xor ecx, ecx
lea edx, [esp + 0x68]
push 0
lea eax, [ebp + 0x20c]
push edx
push eax
call fcn.0041df30
lea eax, [esp + 0x68]
push eax
call fcn.00442c90
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x414abf
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
lea edx, [ecx + 1]
cmp edi, edx
jne 0x414aab
mov eax, dword [esp + 0x30]
add eax, ecx
lea ecx, [eax*4 + 4]
push ecx
call fcn.004c7e90
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov ebx, eax
lea ecx, [edx*4 + 4]
mov edi, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
push ecx
call fcn.004c7e56
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
add esp, 8
add eax, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
inc esi
cmp esi, eax
mov dword [esp + 0x18], esi
jl 0x414a0a
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x180]
push eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x20]
push ecx
push edx
push eax
call fcn.00405b90
add esp, 0x10
test eax, eax
jne 0x414afd
push 0xffffffffffffffff
call dword [sym.imp.user32.dll_MessageBeep]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x174], 0
test eax, eax
mov dword [esp + 0x1c], 0x4d86f4
je 0x414b44
mov eax, dword [esp + 0x24]
xor esi, esi
test eax, eax
jle 0x414b44
cmp esi, eax
jge 0x414b30
test esi, esi
jl 0x414b30
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + esi*4]
jmp 0x414b32
xor eax, eax
push eax
call fcn.004c7e56
mov eax, dword [esp + 0x28]
add esp, 4
inc esi
cmp esi, eax
jl 0x414b23
mov edx, dword [esp + 0x20]
push edx
call fcn.004c7e56
add esp, 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x174], 0xffffffff
call fcn.0041e630
jmp 0x4150cf
mov eax, dword [ebp + 0x200]
push 0x82
push eax
call dword [sym.imp.user32.dll_LoadMenuA]
mov edi, dword [sym.imp.user32.dll_GetSubMenu]
push 0
push eax
mov dword [esp + 0x1c], eax
call edi
mov esi, eax
push 0xc
push esi
call edi
mov ebx, dword [sym.imp.user32.dll_RemoveMenu]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x82c]
test eax, eax
jne 0x414bba
mov eax, dword [ebp + 0x830]
test eax, eax
jne 0x414bba
push 0x400
push 0x15
push esi
call ebx
mov eax, dword [ebp + 0x820]
test eax, eax
jne 0x414c0a
mov eax, dword [ebp + 0x828]
test eax, eax
jne 0x414be2
mov eax, dword [ebp + 0x81c]
test eax, eax
jne 0x414be2
push 0x400
push 0x11
push esi
call ebx
mov eax, dword [ebp + 0x820]
test eax, eax
jne 0x414c0a
mov eax, dword [ebp + 0x828]
test eax, eax
jne 0x414c0a
mov eax, dword [ebp + 0x824]
test eax, eax
jne 0x414c0a
push 0x400
push 0xd
push esi
call ebx
mov eax, dword [ebp + 0x804]
test eax, eax
jne 0x414c1e
push 0x400
push 0xc
push esi
call ebx
mov eax, dword [ebp + 0x810]
test eax, eax
jne 0x414c32
push 0x400
push 0xa
push esi
call ebx
mov eax, dword [ebp + 0x834]
test eax, eax
jne 0x414c64
mov eax, dword [ebp + 0x808]
test eax, eax
jne 0x414c64
mov eax, dword [ebp + 0x810]
test eax, eax
jne 0x414c64
mov eax, dword [ebp + 0x804]
test eax, eax
jne 0x414c64
push 0x400
push 8
push esi
call ebx
mov eax, dword [ebp + 0x83c]
test eax, eax
jne 0x414c78
push 0x400
push 4
push esi
call ebx
mov ecx, ebp
call fcn.00415f70
mov eax, dword [ebp + 0x804]
test eax, eax
je 0x414dc3
mov ecx, ebp
call fcn.00412510
mov edx, dword [eax + 8]
xor ecx, ecx
test edx, edx
sete cl
mov eax, ecx
test eax, eax
mov dword [esp + 0x18], eax
je 0x414cb2
mov eax, dword [ebp + 0x45c]
test eax, eax
jne 0x414cc0
mov edx, dword [esp + 0x10]
push 0x400
push 0
push edx
call ebx
mov eax, dword [ebp + 0x45c]
xor edi, edi
test eax, eax
jle 0x414d5f
cmp edi, eax
jge 0x414ce3
test edi, edi
jl 0x414ce3
mov eax, dword [ebp + 0x458]
mov eax, dword [eax + edi*4]
jmp 0x414ce5
xor eax, eax
push 0x4ee600
push eax
call fcn.004d52d0
mov eax, dword [ebp + 0x45c]
add esp, 8
cmp edi, eax
jge 0x414d0c
test edi, edi
jl 0x414d0c
mov ecx, dword [ebp + 0x458]
mov eax, dword [ecx + edi*4]
jmp 0x414d0e
xor eax, eax
push 0x4ee5f8
push eax
call fcn.004d52d0
mov eax, dword [ebp + 0x478]
add esp, 8
cmp edi, eax
jge 0x414d35
test edi, edi
jl 0x414d35
mov edx, dword [ebp + 0x474]
mov eax, dword [edx + edi*4]
jmp 0x414d37
xor eax, eax
mov ecx, dword [esp + 0x10]
push eax
lea eax, [edi + 0x7530]
push eax
push 0x400
push edi
push ecx
call dword [sym.imp.user32.dll_InsertMenuA]
mov eax, dword [ebp + 0x45c]
inc edi
cmp edi, eax
jl 0x414cd4
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x414d7f
mov edi, dword [esp + 0x10]
push 0
push 0x4ec6
push edi
call ebx
push 0
push 0x4ec7
push edi
call ebx
mov eax, dword [ebp + 0x7fc]
test eax, eax
jne 0x414dc3
mov eax, dword [ebp + 0x800]
test eax, eax
jne 0x414dc3
mov eax, dword [ebp + 0x45c]
push 0
test eax, eax
je 0x414db3
mov edx, dword [ebp + 0x48c]
mov eax, dword [esp + 0x14]
add edx, 0x7530
push edx
push eax
jmp 0x414dbd
mov ecx, dword [esp + 0x14]
push 0x4ec6
push ecx
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
mov eax, dword [ebp + 0x82c]
test eax, eax
je 0x414ddc
mov eax, dword [ebp + 0x438]
mov edi, 1
cmp eax, edi
jg 0x414dde
xor edi, edi
mov eax, dword [ebp + 0x844]
test eax, eax
jne 0x414df2
push 0
push 0x4f8c
push esi
call ebx
mov eax, dword [ebp + 0x7fc]
test eax, eax
jne 0x414e06
push 0
push 0x4e84
push esi
call ebx
mov eax, dword [ebp + 0x80c]
test eax, eax
jne 0x414e1a
push 0
push 0x4e85
push esi
call ebx
mov eax, dword [ebp + 0x800]
test eax, eax
jne 0x414e2e
push 0
push 0x4eb0
push esi
call ebx
mov eax, dword [ebp + 0x840]
test eax, eax
jne 0x414e56
push 0
push 0x4f44
push esi
call ebx
mov eax, dword [ebp + 0x840]
test eax, eax
jne 0x414e56
push 0
push 0x4f47
push esi
call ebx
mov eax, dword [ebp + 0x83c]
test eax, eax
jne 0x414e6a
push 0
push 0x4f67
push esi
call ebx
mov eax, dword [ebp + 0x808]
test eax, eax
jne 0x414e7e
push 0
push 0x4ea8
push esi
call ebx
mov eax, dword [ebp + 0x834]
test eax, eax
jne 0x414e92
push 0
push 0x4f2c
push esi
call ebx
mov eax, dword [ebp + 0x828]
test eax, eax
jne 0x414ea6
push 0
push 0x4f3f
push esi
call ebx
mov eax, dword [ebp + 0x820]
test eax, eax
jne 0x414eba
push 0
push 0x4e87
push esi
call ebx
mov eax, dword [ebp + 0x824]
test eax, eax
jne 0x414ece
push 0
push 0x4f49
push esi
call ebx
mov eax, dword [ebp + 0x81c]
test eax, eax
jne 0x414ee2
push 0
push 0x4e89
push esi
call ebx
mov eax, dword [ebp + 0x828]
test eax, eax
jne 0x414ef6
push 0
push 0x4f40
push esi
call ebx
mov eax, dword [ebp + 0x820]
test eax, eax
jne 0x414f0a
push 0
push 0x4f3d
push esi
call ebx
mov eax, dword [ebp + 0x82c]
test eax, eax
jne 0x414f1e
push 0
push 0x4e88
push esi
call ebx
test edi, edi
jne 0x414f2b
push edi
push 0x4f77
push esi
call ebx
mov eax, dword [ebp + 0x830]
test eax, eax
jne 0x414f3f
push 0
push 0x4e8b
push esi
call ebx
mov eax, dword [ebp + 0x7fc]
test eax, eax
je 0x414f57
push 0
push 0x4e84
push esi
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
mov eax, dword [ebp + 0x800]
test eax, eax
je 0x415085
push 0
push 0x4eb0
push esi
call dword [sym.imp.user32.dll_SetMenuDefaultItem]
jmp 0x415085
mov edx, dword [ebp + 0x200]
push 0x4e8f
push edx
call dword [sym.imp.user32.dll_LoadMenuA]
push edi
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.user32.dll_GetSubMenu]
mov esi, eax
mov eax, dword [ebp + 0x848]
cmp eax, edi
jne 0x414faa
cmp dword [ebp + 0x844], edi
jne 0x414fb7
push edi
push 0x4f1f
push esi
call dword [sym.imp.user32.dll_RemoveMenu]
mov eax, dword [0x4fb8c0]
xor edi, edi
cmp eax, 4
ja case.default.0x414fc3
jmp dword [eax*4 + 0x415110]
mov edi, 0x4ec9
jmp case.default.0x414fc3
mov edi, 0x4e97
jmp case.default.0x414fc3
mov edi, 0x4e98
jmp case.default.0x414fc3
mov edi, 0x4e99
jmp case.default.0x414fc3
mov edi, 0x4e9a
mov ebx, dword [sym.imp.user32.dll_CheckMenuItem]
push 8
push edi
push esi
call ebx
mov eax, dword [0x4fb6f0]
inc eax
cmp eax, 6
ja case.default.0x415002
jmp dword [eax*4 + 0x415124]
mov edi, 0x4ec4
jmp case.default.0x415002
mov edi, 0x4e9b
jmp case.default.0x415002
mov edi, 0x4e9c
jmp case.default.0x415002
mov edi, 0x4e9d
jmp case.default.0x415002
mov edi, 0x4e9e
jmp case.default.0x415002
mov edi, 0x4e9f
jmp case.default.0x415002
mov edi, 0x4ea0
push 8
push edi
push esi
call ebx
mov edi, dword [0x4fb6f8]
xor ecx, ecx
test edi, edi
setne cl
add ecx, 0x4ea1
push 8
push ecx
push esi
call ebx
push 0xf
call dword [sym.imp.user32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x415077
mov eax, dword [ebp + 0x848]
test eax, eax
jne 0x415077
mov eax, dword [ebp + 0x844]
test eax, eax
jne 0x415085
push 1
push 0x4f3e
push esi
call dword [sym.imp.user32.dll_EnableMenuItem]
test esi, esi
je 0x4150c8
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x180]
push 0
push edx
push 0
push eax
push ecx
push 2
push esi
call dword [sym.imp.user32.dll_TrackPopupMenu]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.user32.dll_DestroyMenu]
mov eax, dword [ebp + 0x10]
push 0
push 8
push 0x110b
push eax
call dword [sym.imp.user32.dll_PostMessageA]
mov ecx, ebp
call fcn.004127b0
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x168
ret 0xc