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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, ecx
push esi
mov esi, edx
mov dword [ebp - 4], ebx
xor edx, edx
test dword [ebx + 0x10c8], 0xffffffe0
push edi
jbe 0x405b20
lea ecx, [ebx + 0x10a4]
mov eax, dword [esi + edx*4]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
inc edx
mov eax, dword [ebx + 0x10c8]
shr eax, 5
cmp edx, eax
jb 0x405b04
cmp edx, 8
jae 0x405b3b
lea edi, [ebx + 0x10a4]
mov ecx, 8
lea esi, [ebx + 0x1094]
sub ecx, edx
lea edi, [edi + edx*4]
lea esi, [esi + edx*4]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x1084]
lea edi, [ebx + 0x38]
mov dword [ebx], eax
mov eax, dword [ebx + 0x1088]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x108c]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x1090]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x1094]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x1098]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x109c]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x10a0]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x10a4]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x10a8]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x10ac]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x10b0]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x10b4]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x10b8]
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x10bc]
mov dword [edi], eax
mov eax, dword [ebx + 0x10c0]
mov dword [ebx + 0x3c], eax
mov ebx, 0x10
mov dword [ebp - 0xc], edi
mov ecx, dword [edi - 0x34]
lea edi, [edi + 4]
mov edx, dword [edi - 4]
mov esi, ecx
mov eax, ecx
rol esi, 0xe
ror eax, 7
xor esi, eax
shr ecx, 3
xor esi, ecx
mov eax, edx
mov ecx, edx
rol eax, 0xd
rol ecx, 0xf
xor ecx, eax
shr edx, 0xa
xor ecx, edx
add esi, ecx
add esi, dword [edi - 0x3c]
add esi, dword [edi - 0x18]
add esi, ebx
inc ebx
mov dword [edi + 4], esi
cmp ebx, 0x110
jb 0x405bd4
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebx + 0x400]
mov dword [ebx], eax
mov eax, dword [ebx + 0x404]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x408]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x40c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x410]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x414]
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0x418]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x41c]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx + 0x420]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 0x424]
mov dword [ebx + 0x24], eax
mov eax, dword [ebx + 0x428]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x42c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x430]
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x434]
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x438]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx + 0x43c]
mov dword [ebx + 0x3c], eax
mov ebx, 0x10
nop
mov ecx, dword [edi - 0x34]
lea edi, [edi + 4]
mov edx, dword [edi - 4]
mov esi, ecx
mov eax, ecx
rol esi, 0xe
ror eax, 7
xor esi, eax
shr ecx, 3
xor esi, ecx
mov eax, edx
rol eax, 0xd
mov ecx, edx
rol ecx, 0xf
xor eax, ecx
shr edx, 0xa
xor eax, edx
add eax, 0x100
add eax, esi
add eax, dword [edi - 0x3c]
add eax, dword [edi - 0x18]
add eax, ebx
inc ebx
mov dword [edi + 4], eax
cmp ebx, 0x400
jb 0x405cb0
mov ebx, dword [ebp - 4]
mov esi, 0x40
mov dword [ebx + 0x1080], 0
mov eax, dword [ebx + 0x7c0]
mov dword [ebx + 0x1000], eax
mov eax, dword [ebx + 0x7c4]
mov dword [ebx + 0x1004], eax
mov eax, dword [ebx + 0x7c8]
mov dword [ebx + 0x1008], eax
mov eax, dword [ebx + 0x7cc]
mov dword [ebx + 0x100c], eax
mov eax, dword [ebx + 0x7d0]
mov dword [ebx + 0x1010], eax
mov eax, dword [ebx + 0x7d4]
mov dword [ebx + 0x1014], eax
mov eax, dword [ebx + 0x7d8]
mov dword [ebx + 0x1018], eax
mov eax, dword [ebx + 0x7dc]
mov dword [ebx + 0x101c], eax
mov eax, dword [ebx + 0x7e0]
mov dword [ebx + 0x1020], eax
mov eax, dword [ebx + 0x7e4]
mov dword [ebx + 0x1024], eax
mov eax, dword [ebx + 0x7e8]
mov dword [ebx + 0x1028], eax
mov eax, dword [ebx + 0x7ec]
mov dword [ebx + 0x102c], eax
mov eax, dword [ebx + 0x7f0]
mov dword [ebx + 0x1030], eax
mov eax, dword [ebx + 0x7f4]
mov dword [ebx + 0x1034], eax
mov eax, dword [ebx + 0x7f8]
mov dword [ebx + 0x1038], eax
mov eax, dword [ebx + 0x7fc]
mov dword [ebx + 0x103c], eax
mov eax, dword [ebx + 0xfc0]
mov dword [ebx + 0x1040], eax
mov eax, dword [ebx + 0xfc4]
mov dword [ebx + 0x1044], eax
mov eax, dword [ebx + 0xfc8]
mov dword [ebx + 0x1048], eax
mov eax, dword [ebx + 0xfcc]
mov dword [ebx + 0x104c], eax
mov eax, dword [ebx + 0xfd0]
mov dword [ebx + 0x1050], eax
mov eax, dword [ebx + 0xfd4]
mov dword [ebx + 0x1054], eax
mov eax, dword [ebx + 0xfd8]
mov dword [ebx + 0x1058], eax
mov eax, dword [ebx + 0xfdc]
mov dword [ebx + 0x105c], eax
mov eax, dword [ebx + 0xfe0]
mov dword [ebx + 0x1060], eax
mov eax, dword [ebx + 0xfe4]
mov dword [ebx + 0x1064], eax
mov eax, dword [ebx + 0xfe8]
mov dword [ebx + 0x1068], eax
mov eax, dword [ebx + 0xfec]
mov dword [ebx + 0x106c], eax
mov eax, dword [ebx + 0xff0]
mov dword [ebx + 0x1070], eax
mov eax, dword [ebx + 0xff4]
mov dword [ebx + 0x1074], eax
mov eax, dword [ebx + 0xff8]
mov dword [ebx + 0x1078], eax
mov eax, dword [ebx + 0xffc]
mov dword [ebx + 0x107c], eax
mov ecx, ebx
call fcn.004050d0
sub esi, 1
jne 0x405e88
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret