Function at 0x401000
Capabilities:
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
xor ecx, edi
call sub.user32.dll_GetInputState
or ecx, esi
cmp eax, 0xfffffeff
jne 0x4010a1
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
ret
or ecx, edi
add ecx, 0x37f74fcd
add ebx, 0x37f7ee39
call sub.user32.dll_GetMessageExtraInfo
xor edi, 0x37f88e09
and ecx, edi
inc esi
xor ebx, 0x37fa0e92
sub esi, edi
or edi, ecx
cmp eax, 0xffffff12
jne 0x401150
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
ret
mov ebx, esi
or edi, ecx
call sub.user32.dll_GetMessageExtraInfo
xor esi, ecx
sub edi, 0x38007a84
add ebx, edi
xor edi, ecx
or edi, esi
xor esi, edi
bswap esi
cmp eax, 0xfffffee2
jne 0x4011cc
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
ret
xor ecx, edi
xchg edi, ebx
xor esi, ebx
xor edi, esi
call sub.user32.dll_GetMessageExtraInfo
sub ebx, edi
bswap esi
add esi, 0x3808d757
dec esi
mov ecx, edi
mov edi, 0x380a1589
sub ecx, esi
or edi, ebx
cmp eax, 0xfffffedc
jne 0x40128c
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.user32.dll_LoadKeyboardLayoutA
call sub.ole32.dll_ReadFmtUserTypeStg
call sub.ole32.dll_ReadFmtUserTypeStg
ret
jmp 0x494349
add ecx, esi
and esi, ecx
shl edi, 0x1f
add edi, ecx
sub esi, ecx
shl ecx, 8
add ecx, 0x399be82a
and esi, 0x399c543f
jmp 0x494969
call fcn.00494a19
and esi, edx
mov esi, ecx
rol ebx, 0x14
sub edx, 0x3effef4d
or ebx, ecx
xchg edx, ebx
add edx, esi
mov ecx, ebx
jmp 0x4953e1
call fcn.00494a19
nop
bswap ebx
add esi, ecx
ror esi, 0x1e
or edx, ecx
xor esi, 0x3f120476
neg esi
and ebx, ecx
jmp 0x495576
pop edi
xchg edx, ecx
sub ebx, 0x3f13ebbc
shr edx, 4
not edx
or edx, 0x3f155f0a
xor ebx, 0x3f15d00f
jmp 0x4961c4
jmp loc.0049a98c
mov edi, 0x123b2f04
mov ecx, esi
mov ecx, esi
and edx, 0x3f553d19
add edx, 0x3f55b70e
xor ecx, 0x3f562526
or ebx, esi
sub ecx, edx
or edx, ecx
sub ebx, esi
shr ecx, 2
jmp 0x49449e
push 0x39aa97e5
sub esi, edx
add ecx, 0x3f683037
or ecx, ebx
xchg ecx, esi
add edx, ebx
or edx, ebx
sub esi, ecx
and esi, 0x3f6ae222
shr esi, 0xe
jmp 0x496054
pop edi
add edx, ebx
not ecx
rol ecx, 0x13
sub esi, ecx
add ecx, edx
neg esi
dec edx
add esi, edx
and edx, ecx
jmp 0x496a52
push 0x39a51255
xchg ecx, ebx
or ecx, edx
or edx, esi
shl edx, 0x14
add ebx, edx
sub edx, ecx
sub edx, 0x3fa6523a
add esi, edx
jmp 0x496920
push 0x39af92ed
and ecx, ebx
mov esi, ecx
dec edx
rol edx, 0x17
mov esi, ebx
mov ebx, edx
and edx, 0x3fe20752
xchg ebx, esi
or ecx, esi
jmp 0x49550b
push 0x39abc7bf
or edx, 0x4048e387
xor edx, ebx
rol esi, 9
or ecx, edx
xor ecx, edx
add edx, 0x404b3662
jmp 0x494719
call edi
and ecx, ebx
and esi, ecx
xor edx, 0x40ac4f86
and ecx, esi
jmp 0x495910
push 0x39a7282f
and ebx, 0x40bf4c86
xchg esi, ecx
or ebx, ecx
xchg edx, ebx
and ecx, edx
xor ecx, esi
not esi
xor edx, ecx
sub ebx, ecx
jmp 0x496c51
mov edi, 0x2774562b
xor edx, ebx
xor esi, edx
xchg ebx, edx
and edx, esi
jmp 0x494516
push 0x39a6d2c9
xchg ebx, ecx
xchg ebx, esi
shl ebx, 0x14
jmp 0x495193
pop edi
xchg ebx, ecx
inc ebx
mov ebx, edx
inc edx
mov esi, ebx
xchg edx, ebx
sub ebx, edx
or ebx, esi
dec ebx
mov ecx, ebx
ror ecx, 0x1c
xor edx, 0x40f255db
sub esi, ecx
jmp 0x494534
call edi
dec ebx
ror esi, 0x1b
add ecx, 0x410f555e
add ecx, ebx
or ebx, ecx
and edx, 0x4110a8c4
dec ecx
bswap ebx
add ecx, edx
mov ebx, ecx
or esi, edx
mov edx, ecx
jmp 0x496073
mov edi, 0x2774562b
sub ecx, esi
sub esi, ecx
ror ebx, 0x17
neg ecx
xor ecx, edx
mov esi, 0x413b8786
or edx, ebx
xchg ecx, edx
jmp 0x494553
call edi
add esi, ecx
xchg esi, ecx
xor edx, esi
and ecx, esi
sub ecx, ebx
and edx, esi
add edx, ebx
or ecx, edx
xor ebx, esi
and edx, ebx
xor edx, ecx
jmp 0x494826
pop edi
nop
nop
sub ecx, ebx
sub ebx, edx
shl edx, 2
inc ebx
xor ebx, ecx
mov edx, ecx
xchg esi, ecx
jmp 0x49520f
push 0x39af3aec
mov ecx, edx
not esi
neg edx
not esi
mov ecx, edx
ror edx, 0x1d
and edx, ecx
jmp 0x494b29
pop edi
xchg edx, esi
neg ecx
mov esi, 0x4268f315
xor edx, ebx
or esi, ebx
inc edx
and ecx, ebx
add ecx, ebx
jmp 0x495bb8
push 0x39aae9c2
add edx, 0x42e52a2d
xor edx, ecx
or esi, edx
mov ecx, ebx
add ecx, esi
mov ecx, ebx
dec ebx
or ecx, edx
and ebx, esi
jmp 0x4965e0
pop edi
sub ecx, ebx
sub ebx, esi
rol esi, 0x1f
sub ecx, 0x42eb6511
sub ecx, edx
shr edx, 0xe
jmp 0x4952f5
pop edi
shl ebx, 0x1d
add edx, ecx
xor ebx, 0x431a0180
and edx, esi
mov esi, 0x431affdb
and ecx, esi
add edx, ecx
jmp 0x495d23
push 0x39ab5820
mov ebx, edx
shr edx, 0xe
or edx, esi
mov edx, esi
mov edx, 0x43aa5a19
dec edx
sub esi, ecx
bswap esi
sub ebx, ecx
jmp 0x494e3e
push 0x39aa36bb
or ebx, 0x43e219fa
or ebx, edx
mov ecx, ebx
bswap ebx
mov ebx, ecx
xor esi, ecx
xchg ecx, edx
and ecx, edx
sub ebx, ecx
add edx, esi
xor ebx, 0x43e6ff41
jmp 0x4947c3
pop edi
and edx, esi
mov esi, 0x44068e32
xor edx, 0x4406fddf
xor esi, 0x44078106
mov ecx, edx
jmp 0x49677c
mov edi, 0x2774562b
dec ecx
xor ecx, esi
xchg ebx, edx
sub ecx, ebx
jmp 0x49696e
call fcn.00494a19
dec esi
bswap edx
and edx, esi
add ebx, esi
sub edx, ecx
bswap edx
sub ebx, esi
xor edx, ecx
xor edx, ebx
jmp 0x4950f1
pop edi
xchg ecx, esi
and edx, ecx
xor esi, ebx
and ecx, 0x444302d0
add edx, ecx
jmp 0x496890
push 0x39a77c1a
add ebx, esi
xchg esi, ebx
and ebx, esi
or ecx, esi
xchg esi, ebx
xor ebx, esi
or ecx, edx
neg esi
and ecx, ebx
bswap edx
xchg ebx, ecx
xor ebx, ecx
xor ebx, 0x449f11c1
jmp 0x4951fd