Function at 0x46c940
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
mov eax, 8
call fcn.004dcd80
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0xc]
mov edx, dword [eax]
push ebx
mov ebx, dword [eax + 4]
push ebp
mov ebp, dword [eax + 8]
push esi
mov esi, dword [eax + 0xc]
je 0x46cd91
mov eax, dword [esp + 0x1c]
add eax, 0x10
push edi
nop
sub dword [esp + 0x24], 1
mov edi, dword [eax - 0x10]
mov ecx, esi
xor ecx, ebp
and ecx, ebx
xor ecx, esi
add ecx, edi
add ecx, edx
mov edi, dword [eax - 0xc]
rol ecx, 3
mov edx, ebp
xor edx, ebx
and edx, ecx
xor edx, ebp
add edx, edi
add edx, esi
mov edi, dword [eax - 8]
rol edx, 7
mov esi, ebx
xor esi, ecx
and esi, edx
xor esi, ebx
add esi, edi
add esi, ebp
mov ebp, dword [eax - 4]
rol esi, 0xb
mov edi, edx
xor edi, ecx
and edi, esi
xor edi, ecx
add edi, ebp
mov ebp, dword [eax]
add edi, ebx
rol edi, 0x13
mov ebx, edx
xor ebx, esi
and ebx, edi
xor ebx, edx
add ebx, ebp
mov ebp, dword [eax + 4]
add ebx, ecx
rol ebx, 3
mov ecx, esi
xor ecx, edi
and ecx, ebx
xor ecx, esi
add ecx, ebp
mov ebp, dword [eax + 8]
add ecx, edx
mov edx, edi
xor edx, ebx
rol ecx, 7
and edx, ecx
xor edx, edi
add edx, ebp
mov ebp, dword [eax + 0xc]
add edx, esi
rol edx, 0xb
mov esi, ecx
xor esi, ebx
and esi, edx
xor esi, ebx
add esi, ebp
mov ebp, dword [eax + 0x10]
add esi, edi
rol esi, 0x13
mov edi, ecx
xor edi, edx
and edi, esi
xor edi, ecx
add edi, ebp
mov ebp, dword [eax + 0x14]
add edi, ebx
mov ebx, edx
xor ebx, esi
rol edi, 3
and ebx, edi
xor ebx, edx
add ebx, ebp
add ebx, ecx
rol ebx, 7
mov ebp, dword [eax + 0x18]
mov ecx, esi
xor ecx, edi
and ecx, ebx
xor ecx, esi
add ecx, ebp
add ecx, edx
mov ebp, dword [eax + 0x1c]
rol ecx, 0xb
mov edx, ebx
xor edx, edi
and edx, ecx
xor edx, edi
add edx, ebp
add edx, esi
rol edx, 0x13
mov ebp, dword [eax + 0x20]
mov esi, ebx
xor esi, ecx
and esi, edx
xor esi, ebx
add esi, ebp
add esi, edi
mov edi, dword [eax + 0x24]
rol esi, 3
mov ebp, ecx
xor ebp, edx
and ebp, esi
xor ebp, ecx
add ebp, edi
mov edi, edx
add ebp, ebx
mov ebx, dword [eax + 0x28]
xor edi, esi
rol ebp, 7
and edi, ebp
xor edi, edx
add edi, ebx
mov ebx, dword [eax + 0x2c]
add edi, ecx
rol edi, 0xb
mov ecx, ebp
xor ecx, esi
and ecx, edi
xor ecx, esi
add ecx, ebx
add ecx, edx
rol ecx, 0x13
mov edx, edi
or edx, ecx
and edx, ebp
mov ebx, edi
and ebx, ecx
or edx, ebx
add edx, dword [eax - 0x10]
mov ebx, ecx
lea esi, [edx + esi + 0x5a827999]
rol esi, 3
and ebx, esi
mov edx, ecx
or edx, esi
mov dword [esp + 0x14], edx
and edx, edi
or edx, ebx
add edx, dword [eax]
mov dword [esp + 0x20], ebx
lea ebp, [edx + ebp + 0x5a827999]
mov edx, dword [esp + 0x14]
rol ebp, 5
and edx, ebp
or edx, ebx
add edx, dword [eax + 0x10]
mov dword [esp + 0x10], ebp
lea edi, [edx + edi + 0x5a827999]
rol edi, 9
mov edx, edi
or edx, esi
mov ebx, edi
and edx, ebp
and ebx, esi
or edx, ebx
add edx, dword [eax + 0x20]
mov ebx, edi
lea ecx, [edx + ecx + 0x5a827999]
rol ecx, 0xd
and ebx, ecx
mov edx, edi
or edx, ecx
and edx, ebp
or edx, ebx
add edx, dword [eax - 0xc]
mov ebx, ecx
lea esi, [edx + esi + 0x5a827999]
rol esi, 3
and ebx, esi
mov edx, ecx
or edx, esi
mov ebp, edx
and ebp, edi
or ebp, ebx
add ebp, dword [eax + 4]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
lea ebx, [ebx + ebp + 0x5a827999]
rol ebx, 5
and edx, ebx
or edx, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
add edx, dword [eax + 0x14]
lea edx, [edx + edi + 0x5a827999]
rol edx, 9
mov edi, edx
or edi, esi
and edi, ebx
mov ebp, edx
and ebp, esi
or edi, ebp
add edi, dword [eax + 0x24]
lea edi, [edi + ecx + 0x5a827999]
rol edi, 0xd
mov ecx, edx
or ecx, edi
and ecx, ebx
mov ebx, edx
and ebx, edi
or ecx, ebx
add ecx, dword [eax - 8]
mov ebx, edi
lea esi, [ecx + esi + 0x5a827999]
rol esi, 3
and ebx, esi
mov ecx, edi
or ecx, esi
mov ebp, ecx
and ebp, edx
or ebp, ebx
add ebp, dword [eax + 8]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
lea ebx, [ebx + ebp + 0x5a827999]
rol ebx, 5
and ecx, ebx
or ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
add ecx, dword [eax + 0x18]
lea ecx, [ecx + edx + 0x5a827999]
rol ecx, 9
mov edx, ecx
or edx, esi
and edx, ebx
mov ebp, ecx
and ebp, esi
or edx, ebp
add edx, dword [eax + 0x28]
lea edi, [edx + edi + 0x5a827999]
rol edi, 0xd
mov edx, ecx
or edx, edi
and edx, ebx
mov ebx, ecx
and ebx, edi
or edx, ebx
add edx, dword [eax - 4]
mov ebx, edi
lea esi, [edx + esi + 0x5a827999]
rol esi, 3
and ebx, esi
mov edx, edi
or edx, esi
mov ebp, edx
and ebp, ecx
or ebp, ebx
add ebp, dword [eax + 0xc]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
lea ebx, [ebx + ebp + 0x5a827999]
rol ebx, 5
and edx, ebx
or edx, dword [esp + 0x20]
add edx, dword [eax + 0x1c]
lea ecx, [edx + ecx + 0x5a827999]
rol ecx, 9
mov edx, ecx
or edx, esi
and edx, ebx
mov ebp, ecx
and ebp, esi
or edx, ebp
add edx, dword [eax + 0x2c]
lea edi, [edx + edi + 0x5a827999]
rol edi, 0xd
mov edx, ebx
xor edx, ecx
xor edx, edi
add edx, dword [eax - 0x10]
lea esi, [edx + esi + 0x6ed9eba1]
rol esi, 3
mov edx, ecx
xor edx, edi
xor edx, esi
add edx, dword [eax + 0x10]
lea ebx, [edx + ebx + 0x6ed9eba1]
rol ebx, 9
mov edx, ebx
xor edx, edi
xor edx, esi
add edx, dword [eax]
lea ecx, [edx + ecx + 0x6ed9eba1]
rol ecx, 0xb
mov edx, ebx
xor edx, ecx
mov ebp, edx
xor ebp, esi
add ebp, dword [eax + 0x20]
lea edi, [edi + ebp + 0x6ed9eba1]
rol edi, 0xf
xor edx, edi
add edx, dword [eax - 8]
lea edx, [edx + esi + 0x6ed9eba1]
mov esi, ecx
xor esi, edi
rol edx, 3
xor esi, edx
add esi, dword [eax + 0x18]
lea ebx, [esi + ebx + 0x6ed9eba1]
rol ebx, 9
mov esi, ebx
xor esi, edi
xor esi, edx
add esi, dword [eax + 8]
lea ebp, [esi + ecx + 0x6ed9eba1]
rol ebp, 0xb
mov ecx, ebx
xor ecx, ebp
mov esi, ecx
xor esi, edx
add esi, dword [eax + 0x28]
lea esi, [esi + edi + 0x6ed9eba1]
rol esi, 0xf
xor ecx, esi
add ecx, dword [eax - 0xc]
lea ecx, [ecx + edx + 0x6ed9eba1]
rol ecx, 3
mov edx, ebp
xor edx, esi
xor edx, ecx
add edx, dword [eax + 0x14]
add eax, 0x40
lea edi, [edx + ebx + 0x6ed9eba1]
rol edi, 9
mov edx, edi
xor edx, esi
xor edx, ecx
add edx, dword [eax - 0x3c]
lea ebx, [edx + ebp + 0x6ed9eba1]
rol ebx, 0xb
mov edx, edi
xor edx, ebx
mov ebp, edx
xor ebp, ecx
add ebp, dword [eax - 0x1c]
lea esi, [esi + ebp + 0x6ed9eba1]
rol esi, 0xf
xor edx, esi
add edx, dword [eax - 0x44]
lea edx, [edx + ecx + 0x6ed9eba1]
rol edx, 3
mov ecx, ebx
xor ecx, esi
xor ecx, edx
add ecx, dword [eax - 0x24]
lea edi, [ecx + edi + 0x6ed9eba1]
rol edi, 9
mov ecx, edi
xor ecx, esi
xor ecx, edx
add ecx, dword [eax - 0x34]
lea ebp, [ecx + ebx + 0x6ed9eba1]
rol ebp, 0xb
mov ecx, edi
xor ecx, ebp
xor ecx, edx
add ecx, dword [eax - 0x14]
lea esi, [ecx + esi + 0x6ed9eba1]
mov ecx, dword [esp + 0x1c]
add dword [ecx], edx
add dword [ecx + 8], ebp
add dword [ecx + 0xc], edi
mov edx, dword [ecx]
mov ebp, dword [ecx + 8]
rol esi, 0xf
add dword [ecx + 4], esi
cmp dword [esp + 0x24], 0
mov ebx, dword [ecx + 4]
mov esi, dword [ecx + 0xc]
jne 0x46c970
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret