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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x14]
push ebx
mov ebx, dword [ecx]
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x18]
push esi
mov esi, dword [ecx + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ecx + 0x1c]
push edi
mov dword [ebp - 0x20], eax
mov edi, edx
xor eax, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 8], eax
jmp 0x403a0a
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov edx, dword [edi]
add edi, 4
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], edi
mov edi, esi
ror edi, 0xb
mov dword [ecx + eax*4], edx
mov eax, esi
rol eax, 7
xor edi, eax
mov eax, esi
ror eax, 6
xor edi, eax
mov eax, dword [ebp - 4]
xor eax, dword [ebp - 0x10]
and eax, esi
mov esi, ebx
xor eax, dword [ebp - 4]
add edi, eax
ror esi, 0xd
mov eax, dword [ebp - 8]
add edi, dword [eax*4 + 0x41f8f8]
mov eax, ebx
rol eax, 0xa
add edi, edx
add edi, dword [ebp - 0x20]
xor esi, eax
mov eax, ebx
ror eax, 2
xor esi, eax
mov eax, dword [ebp - 0xc]
mov edx, eax
and eax, dword [ebp - 0x18]
or edx, dword [ebp - 0x18]
and edx, ebx
or edx, eax
mov eax, dword [ebp - 4]
add esi, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
add edx, edi
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], ebx
lea ebx, [esi + edi]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], esi
cmp esi, 0x10
jl 0x403a04
lea eax, [esi + 0xe]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], eax
mov ecx, ebx
mov ebx, dword [ebp - 0x28]
add eax, 3
and eax, 0xf
and esi, 0xf
mov edi, dword [ebx + eax*4]
mov eax, dword [ebp - 0x24]
and eax, 0xf
mov edx, dword [ebx + eax*4]
lea ebx, [ebx + esi*4]
mov esi, edx
mov eax, edx
rol eax, 0xd
shr edx, 0xa
rol esi, 0xf
xor esi, eax
mov eax, edi
xor esi, edx
ror eax, 7
mov edx, edi
shr edi, 3
rol edx, 0xe
xor edx, eax
mov eax, dword [ebp - 0x24]
xor edx, edi
add eax, 0xfffffffb
and eax, 0xf
add esi, edx
mov edx, dword [ebp - 0x28]
add esi, dword [edx + eax*4]
mov edx, dword [ebp - 0x14]
mov edi, edx
add dword [ebx], esi
mov eax, edx
rol eax, 7
mov esi, ecx
ror edi, 0xb
xor edi, eax
ror esi, 0xd
mov eax, edx
ror eax, 6
xor edi, eax
mov eax, dword [ebp - 4]
xor eax, dword [ebp - 0x10]
and eax, edx
xor eax, dword [ebp - 4]
add edi, eax
mov eax, dword [ebp - 8]
add edi, dword [eax*4 + 0x41f8f8]
mov eax, ecx
add edi, dword [ebx]
mov ebx, dword [ebp - 0x18]
add edi, dword [ebp - 0x20]
rol eax, 0xa
xor esi, eax
mov dword [ebp - 0x18], ecx
mov eax, ecx
ror eax, 2
xor esi, eax
mov eax, dword [ebp - 0xc]
mov edx, eax
and eax, ebx
or edx, ebx
and edx, ecx
or edx, eax
mov eax, dword [ebp - 4]
add esi, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], ebx
add edx, edi
mov ebx, ecx
mov dword [ebp - 0x14], edx
lea ecx, [esi + edi]
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 8]
inc esi
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 8], esi
mov dword [ebp - 0x24], eax
cmp esi, 0x40
jl 0x403ab5
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
pop edi
pop esi
add dword [ecx], eax
mov eax, dword [ebp - 0xc]
add dword [ecx + 8], eax
mov eax, dword [ebp - 0x1c]
add dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x10]
add dword [ecx + 0x14], eax
mov eax, dword [ebp - 4]
add dword [ecx + 0x18], eax
add dword [ecx + 4], ebx
add dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x20]
add dword [ecx + 0x1c], eax
pop ebx
mov esp, ebp
pop ebp
ret