Function at 0x5205b0
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 0x5ac9e9
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x100
mov eax, dword [0x60f074]
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.0x520615.10
movzx eax, byte [eax + 0x5209d8]
jmp dword [eax*4 + 0x52099c]
mov edx, 0x253a
jmp case.0x520615.10
mov edx, 0x2545
jmp case.0x520615.10
mov edx, 0x2539
jmp case.0x520615.10
mov edx, 0x253f
jmp case.0x520615.10
mov edx, 0x2540
jmp case.0x520615.10
mov edx, 0x253e
jmp case.0x520615.10
mov edx, 0x253c
jmp case.0x520615.10
mov edx, 0x253b
jmp case.0x520615.10
mov edx, 0x253d
jmp case.0x520615.10
mov edx, 0x2541
jmp case.0x520615.10
mov edx, 0x2542
jmp case.0x520615.10
mov edx, 0x2548
jmp case.0x520615.10
mov edx, 0x2546
jmp case.0x520615.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 0x5206f1
mov eax, dword [ecx + 4]
cmp eax, 0x30
jl 0x5206ad
movzx ecx, ax
cmp eax, 0x39
jle 0x5206b9
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 0x5206df
lea eax, [edx + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edi, 8
jb 0x5206d2
mov eax, dword [esi]
mov word [eax + edx*2], cx
xor ecx, ecx
mov word [eax + edx*2 + 2], cx
jmp 0x520731
push ecx
mov byte [ebp - 0x50], 0
push dword [ebp - 0x50]
push ecx
mov ecx, esi
call fcn.0045a080
jmp 0x520731
lea ecx, [ebp - 0x44]
call fcn.004e67f0
mov edi, eax
cmp esi, edi
je 0x520729
mov ecx, esi
call fcn.00405c10
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.00405c10
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.0x520767.2
movzx eax, byte [eax + 0x520a54]
jmp dword [eax*4 + 0x520a4c]
cmp dword [esi + 0x10], 1
jne case.0x520767.2
mov ecx, dword [esi + 0x14]
mov eax, esi
cmp ecx, 8
jb 0x520780
mov eax, dword [esi]
movzx eax, word [eax]
cmp eax, 0x41
jb 0x52078d
cmp eax, 0x5a
jbe case.0x520767.2
add eax, 0xffffff9f
cmp ax, 0x19
jbe case.0x520767.2
mov eax, esi
cmp ecx, 8
jb 0x52079f
mov eax, dword [esi]
movzx eax, word [eax]
add eax, 0xffffffd0
cmp ax, 9
jbe case.0x520767.2
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x45], 1
cmp eax, esi
je case.0x520767.2
mov eax, esi
cmp ecx, 8
jb 0x5207bf
mov eax, dword [esi]
push 1
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405c70
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 8]
mov eax, ecx
shr eax, 1
test al, 1
je 0x520827
push esi
mov edx, 0x254b
lea ecx, [ebp - 0x44]
call fcn.004e6820
mov edi, eax
add esp, 4
cmp esi, edi
je 0x520819
mov ecx, esi
call fcn.00405c10
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.00405c10
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 8]
mov eax, ecx
shr eax, 2
test al, 1
je 0x520837
mov edx, 0x2549
jmp 0x520844
shr ecx, 3
test cl, 1
je 0x520888
mov edx, 0x254a
push esi
lea ecx, [ebp - 0x44]
call fcn.004e6820
mov edi, eax
add esp, 4
cmp esi, edi
je 0x520880
mov ecx, esi
call fcn.00405c10
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.00405c10
cmp byte [ebp - 0x45], 0
je 0x520970
cmp dword [0x61a268], 1
mov edi, dword [ebp - 0x1c]
jne 0x5208ee
cmp dword [0x61a250], 3
jg 0x5208ee
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], edi
test edi, edi
jg 0x5208ee
push str.key_length___0
lea edx, [ebp - 0x50]
lea ecx, [ebp - 0x4c]
call fcn.0040b7b0
add esp, 4
test eax, eax
je 0x5208ee
push eax
push ecx
push 0x90
push str.f:my_lab_tabexplorerextab_masterlibrary_view_accelerator.cpp
lea ecx, [ebp - 0x110]
call fcn.0046bff0
lea ecx, [ebp - 0x110]
call fcn.0046c520
lea edx, [ebp - 0x54]
mov dword [ebp - 0x54], 0x5d3654
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x50], 1
call fcn.00471650
mov byte [ebp - 4], 2
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x520915
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00426620
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.00405c10
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 0x520944
mov eax, dword [esi]
push edx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00426620
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.00405c10
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.00550156
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4