Function at 0xb1311c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff0
mov dword [esp + 4], edx
mov dword [esp], eax
mov esi, dword [esp]
mov esi, dword [esi]
mov edi, dword [esp]
mov edi, dword [edi + 4]
mov ebp, dword [esp]
mov ebp, dword [ebp + 8]
mov eax, dword [esp]
mov eax, dword [eax + 0xc]
mov dword [esp + 8], 0xb6cf2c
xor edx, edx
mov dword [esp + 0xc], edx
mov dl, byte [esp + 0xc]
shl edx, 2
xor ecx, ecx
mov cl, dl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, eax
xor ebx, ebp
and ebx, edi
xor ebx, eax
add ecx, ebx
add esi, ecx
mov ecx, esi
shl ecx, 7
shr esi, 0x19
or ecx, esi
add ecx, edi
mov esi, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4 + 4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, ebp
xor ebx, edi
and ebx, esi
xor ebx, ebp
add ecx, ebx
add eax, ecx
mov ecx, eax
shl ecx, 0xc
shr eax, 0x14
or ecx, eax
add ecx, esi
mov eax, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4 + 8]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, edi
xor ebx, esi
and ebx, eax
xor ebx, edi
add ecx, ebx
add ebp, ecx
mov ecx, ebp
shl ecx, 0x11
shr ebp, 0xf
or ecx, ebp
add ecx, eax
mov ebp, ecx
add dword [esp + 8], 4
and edx, 0xff
mov ecx, dword [esp + 4]
mov edx, dword [ecx + edx*4 + 0xc]
mov ecx, dword [esp + 8]
add edx, dword [ecx]
mov ecx, esi
xor ecx, eax
and ecx, ebp
xor ecx, esi
add edx, ecx
add edi, edx
mov edx, edi
shl edx, 0x16
shr edi, 0xa
or edx, edi
add edx, ebp
mov edi, edx
add dword [esp + 8], 4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jne 0xb1314f
mov dword [esp + 8], 0xb6cf6c
xor edx, edx
mov dword [esp + 0xc], edx
mov dl, byte [esp + 0xc]
shl edx, 2
xor ecx, ecx
mov cl, dl
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4 + 4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, ebp
xor ebx, edi
and ebx, eax
xor ebx, ebp
add ecx, ebx
add esi, ecx
mov ecx, esi
shl ecx, 5
shr esi, 0x1b
or ecx, esi
add ecx, edi
mov esi, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 6
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, edi
xor ebx, esi
and ebx, ebp
xor ebx, edi
add ecx, ebx
add eax, ecx
mov ecx, eax
shl ecx, 9
shr eax, 0x17
or ecx, eax
add ecx, esi
mov eax, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 0xb
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, esi
xor ebx, eax
and ebx, edi
xor ebx, esi
add ecx, ebx
add ebp, ecx
mov ecx, ebp
shl ecx, 0xe
shr ebp, 0x12
or ecx, ebp
add ecx, eax
mov ebp, ecx
add dword [esp + 8], 4
and edx, 0xff
mov ecx, dword [esp + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 8]
add edx, dword [ecx]
mov ecx, eax
xor ecx, ebp
and ecx, esi
xor ecx, eax
add edx, ecx
add edi, edx
mov edx, edi
shl edx, 0x14
shr edi, 0xc
or edx, edi
add edx, ebp
mov edi, edx
add dword [esp + 8], 4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jne 0xb13238
mov dword [esp + 8], 0xb6cfac
xor edx, edx
mov dword [esp + 0xc], edx
mov dl, byte [esp + 0xc]
shl edx, 2
push edx
mov dl, 0x10
pop ecx
sub dl, cl
xor ecx, ecx
mov cl, dl
add ecx, 5
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, ebp
xor ebx, edi
xor ebx, eax
add ecx, ebx
add esi, ecx
mov ecx, esi
shl ecx, 4
shr esi, 0x1c
or ecx, esi
add ecx, edi
mov esi, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 8
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, edi
xor ebx, esi
xor ebx, ebp
add ecx, ebx
add eax, ecx
mov ecx, eax
shl ecx, 0xb
shr eax, 0x15
or ecx, eax
add ecx, esi
mov eax, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 0xb
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, esi
xor ebx, eax
xor ebx, edi
add ecx, ebx
add ebp, ecx
mov ecx, ebp
shl ecx, 0x10
shr ebp, 0x10
or ecx, ebp
add ecx, eax
mov ebp, ecx
add dword [esp + 8], 4
and edx, 0xff
add edx, 0xe
and edx, 0xf
mov ecx, dword [esp + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 8]
add edx, dword [ecx]
mov ecx, eax
xor ecx, ebp
xor ecx, esi
add edx, ecx
add edi, edx
mov edx, edi
shl edx, 0x17
shr edi, 9
or edx, edi
add edx, ebp
mov edi, edx
add dword [esp + 8], 4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jne 0xb1332b
mov dword [esp + 8], 0xb6cfec
xor edx, edx
mov dword [esp + 0xc], edx
mov dl, byte [esp + 0xc]
shl edx, 2
push edx
mov dl, 0x10
pop ecx
sub dl, cl
xor ecx, ecx
mov cl, dl
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, eax
not ebx
or ebx, edi
xor ebx, ebp
add ecx, ebx
add esi, ecx
mov ecx, esi
shl ecx, 6
shr esi, 0x1a
or ecx, esi
add ecx, edi
mov esi, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 7
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, ebp
not ebx
or ebx, esi
xor ebx, edi
add ecx, ebx
add eax, ecx
mov ecx, eax
shl ecx, 0xa
shr eax, 0x16
or ecx, eax
add ecx, esi
mov eax, ecx
add dword [esp + 8], 4
xor ecx, ecx
mov cl, dl
add ecx, 0xe
and ecx, 0xf
mov ebx, dword [esp + 4]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 8]
add ecx, dword [ebx]
mov ebx, edi
not ebx
or ebx, eax
xor ebx, esi
add ecx, ebx
add ebp, ecx
mov ecx, ebp
shl ecx, 0xf
shr ebp, 0x11
or ecx, ebp
add ecx, eax
mov ebp, ecx
add dword [esp + 8], 4
and edx, 0xff
add edx, 5
and edx, 0xf
mov ecx, dword [esp + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 8]
add edx, dword [ecx]
mov ecx, esi
not ecx
or ecx, ebp
xor ecx, eax
add edx, ecx
add edi, edx
mov edx, edi
shl edx, 0x15
shr edi, 0xb
or edx, edi
add edx, ebp
mov edi, edx
add dword [esp + 8], 4
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 4
jne 0xb13427
mov edx, dword [esp]
add dword [edx], esi
mov edx, dword [esp]
add dword [edx + 4], edi
mov edx, dword [esp]
add dword [edx + 8], ebp
mov edx, dword [esp]
add dword [edx + 0xc], eax
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret