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

Disassembly:
sub esp, 0x14c
mov eax, dword [0x106499c8]
xor eax, esp
mov dword [esp + 0x148], eax
mov edx, dword [esp + 0x158]
mov eax, dword [esp + 0x154]
mov ecx, dword [edx + 4]
add dword [edx + 0x20], eax
push ebx
mov ebx, dword [edx + 0x14]
push ebp
mov ebp, dword [edx]
mov dword [esp + 8], ebx
mov ebx, dword [edx + 0x18]
push esi
mov dword [esp + 0x20], ecx
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x10], ebx
mov ebx, dword [edx + 0x1c]
mov esi, eax
push edi
mov edi, dword [edx + 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [edx + 0x10]
shr esi, 2
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 0x50], edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ecx
cmp dword [edx + 0x20], eax
jae 0x101831d8
inc dword [edx + 0x24]
mov eax, dword [esp + 0x24]
test esi, esi
je 0x1018342c
lea edx, [esi - 1]
shr edx, 4
inc edx
mov dword [esp + 0x30], edx
mov edx, 8
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], eax
lea eax, [ebx + 0x3c]
lea ecx, [esp + 0x58]
xor esi, esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x4c], edi
cmp ecx, eax
ja 0x10183275
lea eax, [esp + 0x94]
cmp eax, ebx
jb 0x10183275
lea esp, [esp]
mov ecx, dword [ebx]
mov edx, ecx
and edx, 0xff0000
mov eax, ecx
shr eax, 0x10
or edx, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edx, 8
shl eax, 8
or edx, eax
mov dword [esp + esi*4 + 0x58], edx
inc esi
add ebx, 4
cmp esi, 0x10
jb 0x10183240
jmp 0x101832d4
movdqa xmm4, xmmword [0x104bb050]
mov eax, 0x18
movd xmm5, eax
movd xmm3, edx
lea eax, [esp + 0x58]
mov ecx, 4
movdqu xmm2, xmmword [ebx]
movdqa xmm1, xmm4
pand xmm1, xmm2
movdqa xmm0, xmm2
pslld xmm0, xmm5
pslld xmm1, xmm3
add ebx, 0x10
por xmm1, xmm0
movdqa xmm0, xmm2
psrld xmm0, xmm3
psrld xmm2, xmm5
pand xmm0, xmm4
por xmm1, xmm0
por xmm1, xmm2
movdqu xmmword [eax], xmm1
lea eax, [eax + 0x10]
dec ecx
jne 0x10183293
mov dword [esp + 0x160], ebx
lea eax, [esp + 0x90]
mov ebp, 0x30
mov edx, dword [eax]
mov esi, dword [eax - 0x34]
mov edi, edx
rol edi, 0xf
mov ecx, edx
shr edx, 0xa
rol ecx, 0xd
xor edi, ecx
xor edi, edx
mov edx, esi
mov ecx, esi
shr esi, 3
lea eax, [eax + 4]
rol edx, 0xe
ror ecx, 7
xor edx, ecx
xor edx, esi
add edi, edx
add edi, dword [eax - 0x3c]
add edi, dword [eax - 0x18]
mov dword [eax + 4], edi
dec ebp
jne 0x101832e7
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
xor edi, edi
lea esp, [esp]
mov esi, ebx
ror esi, 0xb
mov eax, ebx
mov ecx, ebx
rol eax, 7
xor esi, eax
mov eax, ebx
ror eax, 6
xor esi, eax
mov eax, dword [esp + 0x10]
and eax, ebx
not ecx
and ecx, dword [esp + 0x14]
mov edx, ebp
ror edx, 0xd
xor ecx, eax
mov eax, ebp
rol eax, 0xa
xor edx, eax
add esi, ecx
add esi, dword [edi + 0x104baef8]
mov eax, ebp
add esi, dword [esp + edi + 0x58]
add edi, 4
ror eax, 2
add esi, dword [esp + 0x1c]
xor edx, eax
mov eax, dword [esp + 0x24]
mov ecx, eax
xor ecx, ebp
and ecx, dword [esp + 0x20]
and eax, ebp
xor ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x18]
add edx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, ebp
add ebx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
lea ebp, [edx + esi]
cmp edi, 0x100
jb 0x10183330
add ecx, dword [esp + 0x4c]
add ebx, dword [esp + 0x54]
add ebp, dword [esp + 0x34]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x44]
add dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x38]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x40]
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x48]
add dword [esp + 0x1c], ecx
dec dword [esp + 0x30]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x160]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], eax
mov edx, 8
jne 0x101831f4
mov edx, dword [esp + 0x50]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 8], edi
pop edi
pop esi
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xc]
mov dword [edx], ebp
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x150]
pop ebp
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x10]
pop ebx
xor ecx, esp
mov dword [edx + 0x1c], eax
call fcn.10311bec
add esp, 0x14c
ret