Function at 0x469360
Capabilities:
Log keystrokes

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500f59
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x100
mov eax, dword [0x53f084]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4c], ecx
mov esi, dword [ebx + 8]
xor edx, edx
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], 0
mov eax, dword [ecx + 4]
add eax, 0xfffffff8
cmp eax, 0x72
ja case.0x4693c5.10
movzx eax, byte [eax + 0x469780]
jmp dword [eax*4 + 0x469744]
mov edx, 0x253a
jmp case.0x4693c5.10
mov edx, 0x2545
jmp case.0x4693c5.10
mov edx, 0x2539
jmp case.0x4693c5.10
mov edx, 0x253f
jmp case.0x4693c5.10
mov edx, 0x2540
jmp case.0x4693c5.10
mov edx, 0x253e
jmp case.0x4693c5.10
mov edx, 0x253c
jmp case.0x4693c5.10
mov edx, 0x253b
jmp case.0x4693c5.10
mov edx, 0x253d
jmp case.0x4693c5.10
mov edx, 0x2541
jmp case.0x4693c5.10
mov edx, 0x2542
jmp case.0x4693c5.10
mov edx, 0x2548
jmp case.0x4693c5.10
mov edx, 0x2546
jmp case.0x4693c5.10
mov edx, 0x2547
xor eax, eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov dword [ebp - 4], eax
mov dword [ebp - 0x58], 1
test edx, edx
jne 0x4694a1
mov eax, dword [ecx + 4]
cmp eax, 0x30
jl 0x46945d
movzx ecx, ax
cmp eax, 0x39
jle 0x469469
push 2
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
movzx ecx, ax
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 0x14]
cmp edx, edi
jae 0x46948f
lea eax, [edx + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edi, 8
jb 0x469482
mov eax, dword [esi]
mov word [eax + edx*2], cx
xor ecx, ecx
mov word [eax + edx*2 + 2], cx
jmp 0x4694e1
push ecx
mov byte [ebp - 0x50], 0
push dword [ebp - 0x50]
push ecx
mov ecx, esi
call fcn.00411970
jmp 0x4694e1
lea ecx, [ebp - 0x44]
call fcn.0042f7e0
mov edi, eax
cmp esi, edi
je 0x4694d9
mov ecx, esi
call fcn.00405080
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [esi], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x44]
call fcn.00405080
xor eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
mov dword [ebp - 4], 1
mov byte [ebp - 0x45], al
call dword [sym.imp.KERNEL32.dll_GetThreadLocale]
and eax, 0x3ff
dec eax
cmp eax, 0x5f
ja case.0x469517.2
movzx eax, byte [eax + 0x4697fc]
jmp dword [eax*4 + 0x4697f4]
cmp dword [esi + 0x10], 1
jne case.0x469517.2
mov ecx, dword [esi + 0x14]
mov eax, esi
cmp ecx, 8
jb 0x469530
mov eax, dword [esi]
movzx eax, word [eax]
cmp eax, 0x41
jb 0x46953d
cmp eax, 0x5a
jbe case.0x469517.2
add eax, 0xffffff9f
cmp ax, 0x19
jbe case.0x469517.2
mov eax, esi
cmp ecx, 8
jb 0x46954f
mov eax, dword [esi]
movzx eax, word [eax]
add eax, 0xffffffd0
cmp ax, 9
jbe case.0x469517.2
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x45], 1
cmp eax, esi
je case.0x469517.2
mov eax, esi
cmp ecx, 8
jb 0x46956f
mov eax, dword [esi]
push 1
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405110
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 8]
mov eax, ecx
shr eax, 1
test al, 1
je 0x4695d7
push esi
mov edx, 0x254b
lea ecx, [ebp - 0x44]
call fcn.0042f810
mov edi, eax
add esp, 4
cmp esi, edi
je 0x4695c9
mov ecx, esi
call fcn.00405080
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [esi], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x44]
call fcn.00405080
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 8]
mov eax, ecx
shr eax, 2
test al, 1
je 0x4695e7
mov edx, 0x2549
jmp 0x4695f4
shr ecx, 3
test cl, 1
je 0x469638
mov edx, 0x254a
push esi
lea ecx, [ebp - 0x44]
call fcn.0042f810
mov edi, eax
add esp, 4
cmp esi, edi
je 0x469630
mov ecx, esi
call fcn.00405080
movups xmm0, xmmword [edi]
xor eax, eax
movups xmmword [esi], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
lea ecx, [ebp - 0x44]
call fcn.00405080
cmp byte [ebp - 0x45], 0
je 0x469718
cmp dword [0x543fdc], 1
mov edi, dword [ebp - 0x1c]
jne 0x469696
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], edi
test edi, edi
jg 0x469696
push str.key_length___0
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x4c]
call fcn.00418340
add esp, 4
test eax, eax
je 0x469696
push eax
push 3
push 0x90
push str.f:my_lab_tabexplorerextab_masterlibrary_view_accelerator.cpp
lea ecx, [ebp - 0x110]
call fcn.0040ec90
lea ecx, [ebp - 0x110]
call fcn.0040f1c0
lea edx, [ebp - 0x54]
mov dword [ebp - 0x54], 0x51b1a0
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x50], 1
call fcn.00411770
mov byte [ebp - 4], 2
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x4696bd
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040a0d0
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.00405080
mov ecx, dword [esi + 0x10]
mov eax, esi
mov edx, ecx
sub edx, edi
dec edx
cmp ecx, edx
cmovb edx, ecx
cmp dword [esi + 0x14], 8
jb 0x4696ec
mov eax, dword [esi]
push edx
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040a0d0
movups xmm0, xmmword [ebp - 0x2c]
movups xmm1, xmmword [esi]
movq xmm2, qword [esi + 0x10]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x1c]
movq qword [esi + 0x10], xmm0
movups xmmword [ebp - 0x2c], xmm1
movq qword [ebp - 0x1c], xmm2
lea ecx, [ebp - 0x2c]
call fcn.00405080
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d170a
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4