Function at 0x4f85c4
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], 0x55ac00
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 0x4f85f7
mov dword [esp + 8], 0x55ac40
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 0x4f86e0
mov dword [esp + 8], 0x55ac80
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 0x4f87d3
mov dword [esp + 8], 0x55acc0
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 0x4f88cf
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