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

Disassembly:
sub esp, 0x148
fldz
push ebx
push ebp
fst qword [esp + 0x20]
xor ebp, ebp
mov dword [esp + 0x10], ebp
xor eax, eax
mov dword [esp + 8], ebp
fstp qword [esp + 0x20]
mov word [esp + 0x1c], ax
mov eax, dword [esp + 0x158]
push esi
xor ecx, ecx
push edi
add eax, 2
movzx edx, byte [eax - 2]
movzx esi, byte [eax - 1]
shl edx, 8
or edx, esi
movzx esi, byte [eax]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
or edx, esi
mov dword [esp + ecx*4 + 0x58], edx
inc ecx
add eax, 4
cmp ecx, 0x10
jne 0x402c81
mov esi, dword [esp + 0x15c]
fldz
add esi, 8
mov ecx, 9
lea edi, [esp + 0x34]
mov dword [esp + 0x20], esi
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [esp + 0x14], ebp
mov word [esp + 0x1c], ax
push 0x100
fstp dword [esp + 0x18]
call fcn.0040b819
push 0x100
mov edi, eax
push 0x425828
push edi
call fcn.0040b8f0
mov eax, dword [0x4278c4]
sub eax, 0x423004
lea esi, [edi + 0x100]
add esp, 0x10
add eax, 0x425828
mov ecx, edi
cmp edi, esi
je 0x402d1a
mov dl, byte [eax]
xor byte [ecx], dl
inc ecx
inc eax
cmp ecx, esi
jne 0x402d10
lea eax, [esp + 0x34]
xor ebx, ebx
sub eax, 4
lea esi, [esp + 0x58]
sub esi, 8
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
or edx, 0xffffffff
jmp 0x402d40
inc dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, 0x1c1e0e5e
sub ecx, eax
mov ax, word [esp + 0x24]
add dword [esp + 0x10], edx
cwde
cmp eax, ecx
jle 0x402d7d
mov cx, word [0x425a00]
movsx edx, cx
sub edx, 0x6ac482c0
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul qword [esp + 0x28]
fstp qword [esp + 0x28]
cmp ebx, 0xf
jle 0x402db4
mov eax, dword [esi]
mov ecx, dword [esi - 0x34]
mov edx, eax
rol edx, 0xf
mov ebp, eax
rol ebp, 0xd
xor edx, ebp
shr eax, 0xa
xor edx, eax
mov eax, ecx
rol eax, 0xe
mov ebp, ecx
ror ebp, 7
xor eax, ebp
shr ecx, 3
xor eax, ecx
add edx, eax
add edx, dword [esi - 0x38]
add edx, dword [esi - 0x14]
mov dword [esi + 8], edx
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x48]
mov eax, ecx
ror eax, 0xb
mov edx, ecx
rol edx, 7
xor eax, edx
mov edx, ecx
ror edx, 6
xor eax, edx
mov edx, dword [esp + 0x4c]
xor ebp, edx
and ebp, ecx
mov ecx, dword [esp + 0x34]
xor ebp, edx
add eax, ebp
add eax, dword [edi + ebx*4]
mov ebx, ecx
add eax, dword [esi + 8]
mov edx, ecx
add eax, dword [esp + 0x50]
add dword [esp + 0x40], eax
ror ebx, 0xd
rol edx, 0xa
xor ebx, edx
mov edx, ecx
ror edx, 2
xor ebx, edx
mov edx, dword [esp + 0x38]
mov ebp, edx
or ebp, ecx
and ebp, dword [esp + 0x3c]
and edx, ecx
mov ecx, dword [esp + 0x14]
add ebx, eax
or ebp, edx
add ebp, ebx
mov dword [esp + 0x50], ebp
mov eax, 8
or edx, 0xffffffff
mov ebx, dword [ecx + eax*4]
mov dword [esp + eax*4 + 0x34], ebx
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
lea ebx, [ebx + ebp - 0x3a47a1bb]
mov dword [esp + 0x18], ebx
add dword [esp + 0x18], edx
sub eax, 1
jne 0x402e24
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x54]
inc ebx
add esi, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], ebx
cmp ebx, 0x40
jne 0x402d40
fldz
push 0x100
push 0
mov dword [esp + 0x1c], 0
fstp dword [esp + 0x18]
push edi
call fcn.0040b750
push edi
call fcn.0040b6bb
mov cx, word [0x4244e8]
fld dword [esp + 0x20]
mov edx, dword [0x425950]
movsx eax, cx
mov ecx, dword [esp + 0x30]
sub eax, edx
add eax, 0x45f7d427
mov dword [esp + 0x24], eax
add esp, 0x10
pop edi
fisub dword [esp + 0x10]
pop esi
pop ebp
xor eax, eax
pop ebx
fstp dword [esp]
fld dword [0x41f4f8]
fstp dword [0x425f04]
mov edx, dword [esp + eax*4 + 0x24]
add dword [ecx], edx
inc eax
add ecx, 4
cmp eax, 8
jne 0x402ec4
inc word [0x42313c]
mov ax, word [0x42313c]
movsx ecx, ax
add ecx, 0x32afe966
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd qword [esp + 0x18]
fstp qword [esp + 0x18]
add esp, 0x148
ret