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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, eax
or edi, 7
mov esi, ecx
cmp edi, 0x7ffffffe
jbe 0x407b3c
mov edi, eax
jmp 0x407b63
mov ebx, dword [esi + 0x14]
mov eax, 0xaaaaaaab
mul edi
mov ecx, ebx
shr ecx, 1
shr edx, 1
cmp ecx, edx
jbe 0x407b63
mov eax, SysReAllocString
sub eax, ecx
lea edi, [ecx + ebx]
cmp ebx, eax
jbe 0x407b63
mov edi, SysReAllocString
lea eax, [edi + 1]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov ebx, dword [ebp + 0xc]
mov edx, eax
mov dword [ebp + 8], edx
test ebx, ebx
je 0x407b99
cmp dword [esi + 0x14], 8
jb 0x407b85
mov ecx, dword [esi]
jmp 0x407b87
mov ecx, esi
test ebx, ebx
je 0x407b99
lea eax, [ebx + ebx]
push eax
push ecx
push edx
call fcn.00472fa0
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x407ba7
push dword [esi]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 8]
mov dword [esi], eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
cmp edi, 8
jb 0x407bc4
xor ecx, ecx
mov word [eax + ebx*2], cx
pop edi
pop esi
pop ebx
pop ebp
or ecx, eax
dec ebx
call fcn.0049171b
mov ebx, 0x9de64912
sub eax, 0xab63f771
rol ecx, 9
add ecx, 0xd1885baf
mov dword [0x4f4d00], eax
sub eax, 0xd5cfb1e7
call fcn.004649f0
or ecx, ecx
mov dword [0x4f4d2c], ebx
and edx, 0xf55f6ecc
shr ebx, 0x19
rol ecx, 0x1f
ror eax, 0x1b
mov ecx, 0xae201348
rol ecx, 0x13
xchg eax, edx
mov edi, 0xcb056410
or edx, esp
sub ebx, dword [0x4edff3]
mov edx, 0xaf570765
sub edi, 0x44097b8a
mov ecx, 0x3789198b
and edi, 0xa98b3ee7
add dword [0x4f4cf0], eax
rol edi, 8
cmp ebx, edi
jbe 0x407c42
shl ebx, 0xf
dec edi
rol edx, 3
mov edx, 0xfd86b960
xor ebx, ebp
add edx, ebx
or edx, esi
sub edi, 0xc97a85aa
and ebx, edx
xor esi, dword [0x4ed5a3]
neg eax
xor ebx, 0x67b12039
or ebx, 0xb3cd41b8
dec ecx
jne 0x407c2c
invalid
mov ecx, 0x4a7ed790
test esp, edi
ja 0x407c7c
mov eax, ebx
shr ebx, 0x19
sub edx, 0xa038e3cb
mov dword [0x4f4c85], edi
shr eax, 0x1b
mov edi, dword [0x4ed7b6]
rol ebx, 0x1b
or edx, 0xbb7bd976
rol esi, 0xf
dec ecx
jne 0x407c76
mov ecx, 0x72d8abea
test dword [0x4ec8e0], ecx
jns 0x407cb4
rol edi, 5
and edi, 0x17729718
not ebx
and dword [0x4f4ccd], eax
not ebx
and ebx, dword [0x4ecd74]
inc edx
call fcn.0047e62a
dec ebx
not edx
and dword [0x4f4caf], ecx
mov eax, dword [0x4ee1dc]
add dword [0x4f4daa], esi
dec edx
dec ecx
jne 0x407ca9
call fcn.00416067
sub eax, ecx
cmp dword [0x4ed225], 0xee51df18
jns 0x407d03
or ebx, dword [0x4ed761]
mov esi, 0xc4446b6b
rol edx, 0x13
sub ecx, dword [0x4f4eda]
add byte [ecx], ch
adc eax, 0x4f4db0
or dword [0x4f4c60], 0x27a99e1c
or ecx, dword [0x4f4f2e]
and dword [0x4f4d4c], 0x9829623e
xor esi, 0x1425f88
xor ecx, 0x9fa1e5ff
sub ebx, ecx
or ebx, dword [0x4f4f15]
sub ebx, dword [0x4f4e22]
call fcn.0041640e
call fcn.004717b2
add ebx, ecx
xor ecx, 0x9fa1e5ff
xor esi, 0x1425f88
mov dword [0x4f4c93], 0x6a0096e0
sub dword [0x4f4d2f], 0x79986b21
mov dword [0x4f4c91], edx
ror edx, 0x13
sub esi, 0xe233b54b
rol esi, 0x17
sub eax, 0x66fd809a
add edx, esi
call fcn.0045358c
xor ecx, 0x8ca5a5e1
call fcn.00409ec8
sub ebx, dword [0x4f4ece]
not esi
xchg eax, edx
add dword [0x4f4c90], ebx
sub eax, 0xe9d30783
add eax, dword [0x4f4f42]
xchg ecx, eax
add dword [0x4f4d5a], ebx
xor eax, dword [0x4f4eb7]
xchg ecx, eax
add eax, 0xe9d30783
sub dword [0x4f4cac], edx
xchg eax, edx
not esi
xor ecx, 0x8ca5a5e1
sub edx, esi
add eax, 0x66fd809a
ror esi, 0x17
sub esi, 0xe210b620
add edx, 0x6e1dc0c3
or dword [0x4f4c5e], esi