Function at 0x41a230
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x17c
mov eax, 0xffff
push ebx
push ebp
mov ebp, ecx
push esi
mov ecx, dword [esp + 0x190]
push edi
cmp ecx, eax
mov ebx, 1
jne 0x41a25e
cmp dword [esp + 0x198], eax
jne 0x41a25e
mov edi, ebx
jmp 0x41a260
xor edi, edi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
mov dword [esp + 0x18], edi
call esi
test ah, 0x80
je 0x41a27c
push 0x79
call esi
test ah, 0x80
je 0x41a28d
push 0x11
call esi
test ah, 0x80
mov dword [esp + 0x10], 0
je 0x41a291
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x190]
test edi, edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
je 0x41a33c
cmp esi, dword [ebp + 0xc]
je 0x41a2d7
cmp esi, dword [ebp + 0x24]
je 0x41a2d7
cmp esi, dword [ebp + 0x10]
jne 0x41b0f6
push 0
push 9
push 0x110a
push esi
call edi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1104
jmp 0x41a2fd
push ebx
push 0xffffffffffffffff
push 0x100c
push esi
call edi
lea ecx, [esp + 0x1c]
test ecx, ecx
je 0x41a2f4
mov dword [esp + 0x1c], ebx
lea ecx, [esp + 0x1c]
jmp 0x41a2f6
xor ecx, ecx
push ecx
push eax
push 0x100e
push esi
call edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add eax, edx
cdq
sub eax, edx
mov edx, dword [esp + 0x20]
sar eax, 1
mov dword [esp + 0x194], eax
lea eax, [ecx + edx]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x198], eax
lea eax, [esp + 0x194]
push eax
push esi
call dword [sym.imp.USER32.dll_ClientToScreen]
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
mov ebx, 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, ebx
jne 0x41a3f3
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 [0x4eb3bc]
test eax, eax
je 0x41a39e
push 8
push 0x4ea3
push esi
call edi
mov eax, dword [0x4eb3c0]
test eax, eax
je 0x41a3b1
push 8
push 0x4ea4
push esi
call edi
mov eax, dword [0x4eb3c4]
test eax, eax
je 0x41a3c4
push 8
push 0x4ea5
push esi
call edi
mov eax, dword [0x4eb3c8]
test eax, eax
je 0x41a3d7
push 8
push 0x4ea6
push esi
call edi
mov eax, dword [0x4eb3cc]
test eax, eax
je 0x41b0ac
push 8
push 0x4ea7
push esi
call edi
jmp 0x41b0ac
cmp esi, dword [ebp + 8]
jne 0x41a494
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 0x41a461
push 8
push 0x4f11
push esi
call edi
mov eax, dword [0x4eb368]
xor ecx, ecx
sub eax, ecx
je 0x41a456
dec eax
je 0x41a44f
dec eax
jne 0x41a45b
mov ecx, 0x4f16
jmp 0x41a45b
mov ecx, 0x4f15
jmp 0x41a45b
mov ecx, 0x4f14
push 8
push ecx
push esi
call edi
mov eax, dword [0x4eb21c]
test eax, eax
je 0x41a474
push 8
push 0x4ea9
push esi
call edi
mov al, byte [0x4eb48a]
test al, al
je 0x41b0ac
push 0
push 0x4e90
push esi
call dword [sym.imp.USER32.dll_RemoveMenu]
jmp 0x41b0ac
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41a8dc
cmp esi, ebx
je 0x41a8dc
mov edx, dword [ebp + 0x208]
cmp esi, dword [edx + 0x50]
jne 0x41a531
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 [0x4eb334]
mov esi, eax
xor eax, eax
cmp ecx, 4
ja case.default.0x41a4e1
jmp dword [ecx*4 + 0x41b104]
mov eax, 0x4eaa
jmp case.default.0x41a4e1
mov eax, 0x4eab
jmp case.default.0x41a4e1
mov eax, 0x4eac
jmp case.default.0x41a4e1
mov eax, 0x4ead
jmp case.default.0x41a4e1
mov eax, 0x4eae
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
push 8
push eax
push esi
call edi
mov eax, dword [0x4eb21c]
test eax, eax
je 0x41b0ac
push 8
push 0x4ea9
push esi
call edi
jmp 0x41b0ac
mov eax, dword [ebp + 0x24]
cmp esi, eax
jne 0x41a6d5
push 2
push 0xffffffffffffffff
push 0x100c
push eax
mov esi, 0x70
call edi
mov edx, dword [ebp + 0x24]
lea ecx, [esp + 0x38]
push ecx
push 0
push 0x1005
push edx
mov dword [esp + 0x48], 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0
call edi
test eax, eax
je 0x41a5d3
mov edi, dword [esp + 0x58]
test edi, edi
je 0x41a584
mov esi, 0x6f
mov eax, dword [ebp + 0x200]
and esi, 0xffff
push esi
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]
test edi, edi
mov esi, eax
je 0x41a663
mov eax, dword [esp + 0x10]
test eax, eax
je 0x41a5d7
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
mov eax, dword [edi]
push ecx
mov ecx, dword [ebp + 0x24]
push edx
push eax
push ecx
jmp 0x41a74b
xor edi, edi
jmp 0x41a584
mov eax, dword [edi + 0xc]
push 0
cmp eax, 1
jne 0x41a610
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 0x41b0ac
jmp 0x41b09e
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 0x41b0ac
mov edi, dword [0x4eb36c]
xor edx, edx
test edi, edi
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
push 8
setne dl
add edx, 0x4f65
mov edi, edx
push edi
push esi
call ebx
mov eax, dword [0x4eb3d4]
cmp eax, 3
ja case.default.0x41a68e
jmp dword [eax*4 + 0x41b118]
mov edi, 0x4f68
push 8
push edi
push esi
call ebx
jmp 0x41b0ac
mov edi, 0x4f69
push 8
push edi
push esi
call ebx
jmp 0x41b0ac
mov edi, 0x4f6a
push 8
push edi
push esi
call ebx
jmp 0x41b0ac
mov edi, 0x4f6c
push 8
push edi
push esi
call ebx
jmp 0x41b0ac
mov eax, dword [ebp + 0x10]
cmp esi, eax
jne 0x41a84d
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x1c]
push ecx
push eax
mov dword [esp + 0x28], edx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x1c]
push edx
push 0
push 0x1111
push eax
call edi
mov ecx, dword [ebp + 0x10]
mov esi, eax
push esi
push ecx
call fcn.00404c10
add esp, 8
test eax, eax
je 0x41b0ef
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x41a770
mov edx, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
push edx
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x10]
push ecx
push edx
push eax
call fcn.00405d40
add esp, 0x10
test eax, eax
jne 0x41b0f6
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17c
ret 0xc
mov ecx, dword [eax]
lea ebx, [esp + 0x10]
add eax, 8
push ebx
mov dword [esp + 0x14], 0x40000177
mov edx, dword [ecx]
push eax
push 1
push ecx
call dword [edx + 0x24]
test eax, eax
jne 0x41b0ef
mov eax, dword [esp + 0x10]
push 0xf
mov ecx, eax
mov ebx, eax
and ecx, 0x10
and eax, 0x20
and ebx, 0x40000000
mov dword [ebp + 0x978], ecx
mov dword [ebp + 0x968], eax
call dword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
je 0x41a7d2
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], 1
test eax, 0x40000
je 0x41a7da
mov dword [esp + 0x18], 0
test ebx, ebx
je 0x41b0ef
mov edx, dword [ebp + 0x10]
push esi
push 8
push 0x110b
push edx
call edi
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 + 0x978]
test eax, eax
jne 0x41a828
push 0
push 0x4e88
push esi
call edi
mov eax, dword [ebp + 0x968]
test eax, eax
jne 0x41a83c
push 0
push 0x4e89
push esi
call edi
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x41b0ac
jmp 0x41b09e
cmp esi, dword [ebp + 0x14]
jne 0x41a875
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 0x41b0ac
cmp esi, dword [ebp + 0x1c]
jne 0x41b0ef
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 0x41b0ac
mov ecx, ebp
call fcn.00418f50
mov edx, dword [ebp + 0xc]
xor ebx, ebx
push ebx
push ebx
push 0x1032
push edx
call edi
test eax, eax
jbe 0x41af9f
cmp dword [esp + 0x10], ebx
je 0x41ab4d
lea ecx, [esp + 0x38]
call fcn.00424d70
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], ebx
push eax
call fcn.004be975
push 0x80
call fcn.004be967
mov ecx, dword [ebp + 0xc]
add esp, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
push ebx
push ebx
push 0x1032
push ecx
mov dword [esp + 0x54], 0x1f
mov dword [esp + 0x5c], 0x40
call edi
cmp eax, 1
jl 0x41a9ab
or esi, 0xffffffff
test eax, eax
jle 0x41a9ab
mov ebx, eax
mov edx, dword [ebp + 0xc]
push 2
push esi
push 0x100c
push edx
call edi
mov ecx, dword [ebp + 0xc]
mov esi, eax
lea eax, [esp + 0x60]
mov dword [esp + 0x60], 4
push eax
push 0
push 0x1005
push ecx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], 0
call edi
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x38]
neg eax
sbb eax, eax
and eax, edx
push eax
call fcn.0043c6f0
dec ebx
jne 0x41a95b
push 0x80
mov dword [esp + 0x20], 0x4cc6f4
call fcn.004be967
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
xor esi, esi
add esp, 4
cmp esi, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], 0x1f
mov dword [esp + 0x30], 0x40
mov dword [esp + 0x2c], 1
mov dword [esp + 0x18], esi
jge 0x41aabe
test esi, esi
jl 0x41a9ff
mov edx, dword [esp + 0x3c]
mov ecx, dword [edx + esi*4]
jmp 0x41aa01
xor ecx, ecx
lea eax, [esp + 0x88]
push 0
push eax
lea eax, [ebp + 0x20c]
push eax
call fcn.00424820
lea ecx, [esp + 0x88]
push ecx
call fcn.0044a200
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x41aaad
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
lea edx, [ecx + 1]
cmp edi, edx
jne 0x41aa99
mov eax, dword [esp + 0x30]
add ecx, eax
lea ecx, [ecx*4 + 4]
push ecx
call fcn.004be967
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.004be975
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 + 0x40]
inc esi
cmp esi, eax
mov dword [esp + 0x18], esi
jl 0x41a9f2
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
push eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x20]
push ecx
push edx
push eax
call fcn.00405b10
add esp, 0x10
test eax, eax
jne 0x41aaeb
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_MessageBeep]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0x4cc6f4
test eax, eax
je 0x41ab2a
mov eax, dword [esp + 0x24]
xor esi, esi
test eax, eax
jle 0x41ab2a
cmp esi, eax
jge 0x41ab16
test esi, esi
jl 0x41ab16
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + esi*4]
jmp 0x41ab18
xor eax, eax
push eax
call fcn.004be975
mov eax, dword [esp + 0x28]
add esp, 4
inc esi
cmp esi, eax
jl 0x41ab09
mov edx, dword [esp + 0x20]
push edx
call fcn.004be975
add esp, 4
lea ecx, [esp + 0x38]
call fcn.00424ec0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17c
ret 0xc
mov eax, dword [ebp + 0x200]
push 0x82
push eax
call dword [sym.imp.USER32.dll_LoadMenuA]
mov ebx, dword [sym.imp.USER32.dll_GetSubMenu]
push 0
push eax
mov dword [esp + 0x1c], eax
call ebx
mov esi, eax
push 0xc
push esi
call ebx
mov ebx, dword [sym.imp.USER32.dll_RemoveMenu]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x978]
test eax, eax
jne 0x41ab9d
mov eax, dword [ebp + 0x97c]
test eax, eax
jne 0x41ab9d
push 0x400
push 0x15
push esi
call ebx
mov eax, dword [ebp + 0x96c]
test eax, eax
jne 0x41abed
mov eax, dword [ebp + 0x974]
test eax, eax
jne 0x41abc5
mov eax, dword [ebp + 0x968]
test eax, eax
jne 0x41abc5
push 0x400
push 0x11
push esi
call ebx
mov eax, dword [ebp + 0x96c]
test eax, eax
jne 0x41abed
mov eax, dword [ebp + 0x974]
test eax, eax
jne 0x41abed
mov eax, dword [ebp + 0x970]
test eax, eax
jne 0x41abed
push 0x400
push 0xd
push esi
call ebx
mov eax, dword [ebp + 0x950]
test eax, eax
jne 0x41ac01
push 0x400
push 0xc
push esi
call ebx
mov eax, dword [ebp + 0x95c]
test eax, eax
jne 0x41ac15
push 0x400
push 0xa
push esi
call ebx
mov eax, dword [ebp + 0x980]
test eax, eax
jne 0x41ac47
mov eax, dword [ebp + 0x954]
test eax, eax
jne 0x41ac47
mov eax, dword [ebp + 0x95c]
test eax, eax
jne 0x41ac47
mov eax, dword [ebp + 0x950]
test eax, eax
jne 0x41ac47
push 0x400
push 8
push esi
call ebx
mov eax, dword [ebp + 0x988]
test eax, eax
jne 0x41ac5b
push 0x400
push 4
push esi
call ebx
mov ecx, ebp
call fcn.0041c220
mov eax, dword [ebp + 0x950]
test eax, eax
je 0x41adea
mov ecx, dword [ebp + 0xc]
push 1
push 0xffffffffffffffff
push 0x100c
push ecx
call edi
cmp eax, 0xffffffff
jne 0x41ac88
xor eax, eax
jmp 0x41acbb
lea edx, [esp + 0x60]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0xc]
push edx
push 0
push 0x1005
push eax
mov dword [esp + 0x70], 4
mov dword [esp + 0x78], 0
call edi
mov ecx, dword [esp + 0x80]
neg eax
sbb eax, eax
and eax, ecx
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 0x41acd9
mov eax, dword [ebp + 0x45c]
test eax, eax
jne 0x41ace7
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 0x41ad86
cmp edi, eax
jge 0x41ad0a
test edi, edi
jl 0x41ad0a
mov eax, dword [ebp + 0x458]
mov eax, dword [eax + edi*4]
jmp 0x41ad0c
xor eax, eax
push str.Open
push eax
call fcn.004cab10
mov eax, dword [ebp + 0x45c]
add esp, 8
cmp edi, eax
jge 0x41ad33
test edi, edi
jl 0x41ad33
mov ecx, dword [ebp + 0x458]
mov eax, dword [ecx + edi*4]
jmp 0x41ad35
xor eax, eax
push str.Edit
push eax
call fcn.004cab10
mov eax, dword [ebp + 0x478]
add esp, 8
cmp edi, eax
jge 0x41ad5c
test edi, edi
jl 0x41ad5c
mov edx, dword [ebp + 0x474]
mov eax, dword [edx + edi*4]
jmp 0x41ad5e
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 0x41acfb
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x41ada6
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 + 0x948]
test eax, eax
jne 0x41adea
mov eax, dword [ebp + 0x94c]
test eax, eax
jne 0x41adea
mov eax, dword [ebp + 0x45c]
push 0
test eax, eax
je 0x41adda
mov edx, dword [ebp + 0x48c]
mov eax, dword [esp + 0x14]
add edx, 0x7530
push edx
push eax
jmp 0x41ade4
mov ecx, dword [esp + 0x14]
push 0x4ec6
push ecx
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
mov eax, dword [ebp + 0x978]
test eax, eax
je 0x41ae03
mov eax, dword [ebp + 0x438]
mov edi, 1
cmp eax, edi
jg 0x41ae05
xor edi, edi
mov eax, dword [ebp + 0x98c]
test eax, eax
jne 0x41ae19
push 0
push 0x4f8c
push esi
call ebx
mov eax, dword [ebp + 0x948]
test eax, eax
jne 0x41ae2d
push 0
push 0x4e84
push esi
call ebx
mov eax, dword [ebp + 0x958]
test eax, eax
jne 0x41ae41
push 0
push 0x4e85
push esi
call ebx
mov eax, dword [ebp + 0x94c]
test eax, eax
jne 0x41ae55
push 0
push 0x4eb0
push esi
call ebx
mov eax, dword [ebp + 0x984]
test eax, eax
jne 0x41ae7d
push 0
push 0x4f44
push esi
call ebx
mov eax, dword [ebp + 0x984]
test eax, eax
jne 0x41ae7d
push 0
push 0x4f47
push esi
call ebx
mov eax, dword [ebp + 0x988]
test eax, eax
jne 0x41ae91
push 0
push 0x4f67
push esi
call ebx
mov eax, dword [ebp + 0x954]
test eax, eax
jne 0x41aea5
push 0
push 0x4ea8
push esi
call ebx
mov eax, dword [ebp + 0x980]
test eax, eax
jne 0x41aeb9
push 0
push 0x4f2c
push esi
call ebx
mov eax, dword [ebp + 0x974]
test eax, eax
jne 0x41aecd
push 0
push 0x4f3f
push esi
call ebx
mov eax, dword [ebp + 0x96c]
test eax, eax
jne 0x41aee1
push 0
push 0x4e87
push esi
call ebx
mov eax, dword [ebp + 0x970]
test eax, eax
jne 0x41aef5
push 0
push 0x4f49
push esi
call ebx
mov eax, dword [ebp + 0x968]
test eax, eax
jne 0x41af09
push 0
push 0x4e89
push esi
call ebx
mov eax, dword [ebp + 0x974]
test eax, eax
jne 0x41af1d
push 0
push 0x4f40
push esi
call ebx
mov eax, dword [ebp + 0x96c]
test eax, eax
jne 0x41af31
push 0
push 0x4f3d
push esi
call ebx
mov eax, dword [ebp + 0x978]
test eax, eax
jne 0x41af45
push 0
push 0x4e88
push esi
call ebx
test edi, edi
jne 0x41af52
push edi
push 0x4f77
push esi
call ebx
mov eax, dword [ebp + 0x97c]
test eax, eax
jne 0x41af66
push 0
push 0x4e8b
push esi
call ebx
mov eax, dword [ebp + 0x948]
test eax, eax
je 0x41af7e
push 0
push 0x4e84
push esi
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
mov eax, dword [ebp + 0x94c]
test eax, eax
je 0x41b0ac
push 0
push 0x4eb0
push esi
call dword [sym.imp.USER32.dll_SetMenuDefaultItem]
jmp 0x41b0ac
mov edx, dword [ebp + 0x200]
push 0x4e8f
push edx
call dword [sym.imp.USER32.dll_LoadMenuA]
push ebx
push eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov esi, eax
mov eax, dword [ebp + 0x990]
cmp eax, ebx
jne 0x41afd1
cmp dword [ebp + 0x98c], ebx
jne 0x41afde
push ebx
push 0x4f1f
push esi
call dword [sym.imp.USER32.dll_RemoveMenu]
mov eax, dword [0x4eb3d0]
xor edi, edi
cmp eax, 4
ja case.default.0x41afea
jmp dword [eax*4 + 0x41b128]
mov edi, 0x4ec9
jmp case.default.0x41afea
mov edi, 0x4e97
jmp case.default.0x41afea
mov edi, 0x4e98
jmp case.default.0x41afea
mov edi, 0x4e99
jmp case.default.0x41afea
mov edi, 0x4e9a
mov ebx, dword [sym.imp.USER32.dll_CheckMenuItem]
push 8
push edi
push esi
call ebx
mov eax, dword [0x4eb200]
inc eax
cmp eax, 6
ja case.default.0x41b029
jmp dword [eax*4 + 0x41b13c]
mov edi, 0x4ec4
jmp case.default.0x41b029
mov edi, 0x4e9b
jmp case.default.0x41b029
mov edi, 0x4e9c
jmp case.default.0x41b029
mov edi, 0x4e9d
jmp case.default.0x41b029
mov edi, 0x4e9e
jmp case.default.0x41b029
mov edi, 0x4e9f
jmp case.default.0x41b029
mov edi, 0x4ea0
push 8
push edi
push esi
call ebx
mov edi, dword [0x4eb208]
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 0x41b09e
mov eax, dword [ebp + 0x990]
test eax, eax
jne 0x41b09e
mov eax, dword [ebp + 0x98c]
test eax, eax
jne 0x41b0ac
push 1
push 0x4f3e
push esi
call dword [sym.imp.USER32.dll_EnableMenuItem]
test esi, esi
je 0x41b0ef
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x198]
mov ecx, dword [esp + 0x194]
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.00418240
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x17c
ret 0xc