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

Disassembly:
call sub.user32.dll_GetMessagePos
cmp eax, 0xffffff09
jne 0x4010a7
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
ret
call sub.user32.dll_GetMessageExtraInfo
cmp eax, 0xffffff0c
jne 0x401112
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
ret
call sub.user32.dll_GetMessagePos
cmp eax, 0xfffffed7
jne 0x401173
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
ret
call sub.kernel32.dll_GetVersion
cmp eax, 0xffffff1c
jne 0x4011ed
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
ret
call sub.kernel32.dll_GetVersion
cmp eax, 0xfffffeed
jne 0x401253
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.advapi32.dll_ConvertSecurityDescriptorToAccessNamedW
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
call sub.kernel32.dll_GetExitCodeThread
ret
jmp 0x47519c
bswap edi
mov edx, esi
and edx, ecx
jmp 0x477a51
push 0x8ff0c140
mov ecx, edi
mov edx, edi
nop
ror esi, 0x11
or ecx, 0x943ba2a7
bswap ecx
bswap esi
sub ecx, edi
shl edx, 0x11
inc edx
sub edi, ecx
dec esi
jmp 0x475f7f
push 0x8ff152a0
xor ecx, 0x949b3584
xor edi, ecx
rol edi, 0xc
xchg esi, ecx
and ecx, edx
jmp 0x478268
jmp loc.0047b000
push 0x8ff10bc5
add ecx, esi
xchg ecx, edi
and esi, edx
xchg edi, ecx
mov ecx, edx
or edi, ecx
mov edi, edx
add esi, 0x95c16dbc
sub edx, 0x95c1d1e1
or ecx, edi
jmp 0x4755b7
mov ebx, 0x123b2f04
not esi
rol esi, 0x1c
add esi, 0x95cec48f
mov esi, ecx
or ecx, edx
add ecx, esi
jmp 0x475911
call fcn.00477ca0
shr edx, 8
xor esi, 0x96935be5
xchg esi, edi
shl ecx, 0x12
xchg esi, edi
mov esi, edx
xchg esi, ecx
neg edx
neg edi
jmp 0x476dc2
call ebx
and edi, edx
ror edi, 0x13
sub edx, esi
ror edi, 1
not edx
dec ecx
or esi, edx
rol edi, 0x1b
and esi, edx
rol esi, 0x1f
shr edx, 0x1f
add edi, ecx
shl edx, 7
mov ecx, esi
inc edi
mov edx, 0x9759fef8
jmp 0x477f6b
push 0x8ff07279
inc edi
xor ecx, edi
and edx, edi
sub esi, ecx
add ecx, edi
inc esi
xor esi, ecx
neg ecx
or edx, edi
and edx, edi
sub esi, ecx
ror esi, 2
xor ecx, 0x98099e1f
inc ecx
jmp 0x475280
push 0x8fedaec7
not edi
sub esi, 0x987c55db
or esi, edi
add esi, edx
add ecx, 0x987d9672
xor edi, esi
sub edx, esi
sub edx, edi
add edx, ecx
jmp 0x477d65
mov ebx, 0x2774562b
or edx, edi
shr edx, 0x16
shl ecx, 0x15
add edx, esi
xchg edx, edi
or esi, edx
xor edi, esi
shl esi, 6
add esi, ecx
jmp 0x47664a
pop ebx
mov esi, edx
sub esi, edi
mov edi, ecx
and ecx, edx
xor ecx, 0x992b34fe
or ecx, edx
neg edx
mov ecx, 0x992c5fca
and edx, esi
jmp 0x4774a1
push 0x8ff1a077
xor esi, 0x997ee548
sub ecx, edi
or esi, ecx
sub esi, ecx
xor ecx, edx
inc ecx
and esi, 0x998143e1
bswap edx
sub edx, ecx
jmp 0x476025