Function at 0x110879ae
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
push ebx
push ebp
push esi
push edi
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
lea esi, [ebx + 0xb0]
movzx eax, byte [ebx + 0xc0]
xor al, byte [ecx]
mov byte [esi], al
movzx eax, byte [ecx + 1]
xor al, byte [ebx + 0xc1]
mov byte [ebx + 0xb4], al
movzx eax, byte [ecx + 2]
xor al, byte [ebx + 0xc2]
mov byte [ebx + 0xb8], al
movzx eax, byte [ecx + 3]
xor al, byte [ebx + 0xc3]
mov byte [ebx + 0xbc], al
movzx eax, byte [ecx + 4]
xor al, byte [ebx + 0xc4]
mov byte [ebx + 0xb1], al
movzx eax, byte [ecx + 5]
xor al, byte [ebx + 0xc5]
mov byte [ebx + 0xb5], al
movzx eax, byte [ecx + 6]
xor al, byte [ebx + 0xc6]
mov byte [ebx + 0xb9], al
movzx eax, byte [ecx + 7]
xor al, byte [ebx + 0xc7]
mov byte [ebx + 0xbd], al
movzx eax, byte [ecx + 8]
xor al, byte [ebx + 0xc8]
mov byte [ebx + 0xb2], al
movzx eax, byte [ecx + 9]
xor al, byte [ebx + 0xc9]
mov byte [ebx + 0xb6], al
movzx eax, byte [ecx + 0xa]
xor al, byte [ebx + 0xca]
mov byte [ebx + 0xba], al
movzx eax, byte [ecx + 0xb]
xor al, byte [ebx + 0xcb]
mov byte [ebx + 0xbe], al
movzx eax, byte [ecx + 0xc]
xor al, byte [ebx + 0xcc]
mov byte [ebx + 0xb3], al
movzx eax, byte [ecx + 0xd]
xor al, byte [ebx + 0xcd]
mov byte [ebx + 0xb7], al
movzx eax, byte [ecx + 0xe]
xor al, byte [ebx + 0xce]
mov byte [ebx + 0xbb], al
movzx eax, byte [ecx + 0xf]
xor al, byte [ebx + 0xcf]
mov byte [ebx + 0xbf], al
movzx eax, byte [ebx + 3]
xor byte [esi], al
movzx eax, byte [ebx + 2]
xor byte [esi + 4], al
mov eax, dword [ebx]
shr eax, 8
xor byte [esi + 8], al
movzx eax, byte [ebx]
xor byte [esi + 0xc], al
movzx eax, byte [ebx + 7]
xor byte [esi + 1], al
movzx eax, byte [ebx + 6]
xor byte [esi + 5], al
mov eax, dword [ebx + 4]
shr eax, 8
xor byte [esi + 9], al
movzx eax, byte [ebx + 4]
xor byte [esi + 0xd], al
movzx eax, byte [ebx + 0xb]
xor byte [esi + 2], al
movzx eax, byte [ebx + 0xa]
xor byte [esi + 6], al
mov eax, dword [ebx + 8]
shr eax, 8
xor byte [esi + 0xa], al
movzx eax, byte [ebx + 8]
xor byte [esi + 0xe], al
lea edi, [ebx + 0x18]
movzx eax, byte [ebx + 0xf]
mov ebp, 9
xor byte [esi + 3], al
movzx eax, byte [ebx + 0xe]
xor byte [esi + 7], al
mov eax, dword [ebx + 0xc]
shr eax, 8
xor byte [esi + 0xb], al
movzx eax, byte [ebx + 0xc]
xor byte [esi + 0xf], al
nop word [eax + eax]
push esi
call fcn.1108b76e
movzx eax, byte [esi + 5]
mov cl, byte [esi + 4]
mov byte [esi + 4], al
movzx eax, byte [esi + 6]
mov byte [esi + 5], al
movzx eax, byte [esi + 7]
mov byte [esi + 6], al
movzx eax, byte [esi + 0xa]
mov byte [esi + 7], cl
mov cl, byte [esi + 8]
mov byte [esi + 8], al
movzx eax, byte [esi + 0xb]
mov byte [esi + 0xa], cl
mov cl, byte [esi + 9]
mov byte [esi + 9], al
movzx eax, byte [esi + 0xe]
mov byte [esi + 0xb], cl
mov cl, byte [esi + 0xf]
mov byte [esi + 0xf], al
movzx eax, byte [esi + 0xd]
mov byte [esi + 0xe], al
movzx eax, byte [esi + 0xc]
push esi
mov byte [esi + 0xd], al
mov byte [esi + 0xc], cl
call fcn.1108a1ce
movzx eax, byte [edi - 5]
lea edi, [edi + 0x10]
xor byte [esi], al
add esp, 8
movzx eax, byte [edi - 0x16]
xor byte [esi + 4], al
mov eax, dword [edi - 0x18]
shr eax, 8
xor byte [esi + 8], al
movzx eax, byte [edi - 0x18]
xor byte [esi + 0xc], al
movzx eax, byte [edi - 0x11]
xor byte [esi + 1], al
movzx eax, byte [edi - 0x12]
xor byte [esi + 5], al
mov eax, dword [edi - 0x14]
shr eax, 8
xor byte [esi + 9], al
movzx eax, byte [edi - 0x14]
xor byte [esi + 0xd], al
movzx eax, byte [edi - 0xd]
xor byte [esi + 2], al
movzx eax, byte [edi - 0xe]
xor byte [esi + 6], al
mov eax, dword [edi - 0x10]
shr eax, 8
xor byte [esi + 0xa], al
movzx eax, byte [edi - 0x10]
xor byte [esi + 0xe], al
movzx eax, byte [edi - 9]
xor byte [esi + 3], al
movzx eax, byte [edi - 0xa]
xor byte [esi + 7], al
mov eax, dword [edi - 0xc]
shr eax, 8
xor byte [esi + 0xb], al
movzx eax, byte [edi - 0xc]
xor byte [esi + 0xf], al
sub ebp, 1
jne 0x11087b3e
push esi
call fcn.1108b76e
movzx eax, byte [esi + 5]
add esp, 4
mov cl, byte [esi + 4]
mov byte [esi + 4], al
movzx eax, byte [esi + 6]
mov byte [esi + 5], al
movzx eax, byte [esi + 7]
mov byte [esi + 6], al
movzx eax, byte [esi + 0xa]
mov byte [esi + 7], cl
mov cl, byte [esi + 8]
mov byte [esi + 8], al
movzx eax, byte [esi + 0xb]
mov byte [esi + 0xa], cl
mov cl, byte [esi + 9]
mov byte [esi + 9], al
movzx eax, byte [esi + 0xe]
mov byte [esi + 0xb], cl
mov cl, byte [esi + 0xf]
mov byte [esi + 0xf], al
movzx eax, byte [esi + 0xd]
mov byte [esi + 0xe], al
movzx eax, byte [esi + 0xc]
mov byte [esi + 0xd], al
mov byte [esi + 0xc], cl
movzx eax, byte [ebx + 0xa3]
xor byte [esi], al
movzx eax, byte [ebx + 0xa2]
xor byte [esi + 4], al
mov eax, dword [ebx + 0xa0]
shr eax, 8
xor byte [esi + 8], al
movzx eax, byte [ebx + 0xa0]
xor byte [esi + 0xc], al
movzx eax, byte [ebx + 0xa7]
xor byte [esi + 1], al
movzx eax, byte [ebx + 0xa6]
xor byte [esi + 5], al
mov eax, dword [ebx + 0xa4]
shr eax, 8
xor byte [esi + 9], al
movzx eax, byte [ebx + 0xa4]
xor byte [esi + 0xd], al
movzx eax, byte [ebx + 0xab]
xor byte [esi + 2], al
movzx eax, byte [ebx + 0xaa]
xor byte [esi + 6], al
mov eax, dword [ebx + 0xa8]
shr eax, 8
xor byte [esi + 0xa], al
movzx eax, byte [ebx + 0xa8]
xor byte [esi + 0xe], al
movzx eax, byte [ebx + 0xaf]
xor byte [esi + 3], al
movzx eax, byte [ebx + 0xae]
xor byte [esi + 7], al
mov eax, dword [ebx + 0xac]
shr eax, 8
xor byte [esi + 0xb], al
movzx eax, byte [ebx + 0xac]
xor byte [esi + 0xf], al
mov al, byte [esi]
mov byte [ebx + 0xc0], al
mov byte [ebx + 0xd0], al
mov al, byte [ebx + 0xb4]
mov byte [ebx + 0xc1], al
mov byte [ebx + 0xd1], al
mov al, byte [ebx + 0xb8]
mov byte [ebx + 0xc2], al
mov byte [ebx + 0xd2], al
mov al, byte [ebx + 0xbc]
mov byte [ebx + 0xc3], al
mov byte [ebx + 0xd3], al
mov al, byte [ebx + 0xb1]
mov byte [ebx + 0xc4], al
mov byte [ebx + 0xd4], al
mov al, byte [ebx + 0xb5]
mov byte [ebx + 0xc5], al
mov byte [ebx + 0xd5], al
mov al, byte [ebx + 0xb9]
mov byte [ebx + 0xc6], al
mov byte [ebx + 0xd6], al
mov al, byte [ebx + 0xbd]
mov byte [ebx + 0xc7], al
mov byte [ebx + 0xd7], al
mov al, byte [ebx + 0xb2]
mov byte [ebx + 0xc8], al
mov byte [ebx + 0xd8], al
mov al, byte [ebx + 0xb6]
mov byte [ebx + 0xc9], al
mov byte [ebx + 0xd9], al
mov al, byte [ebx + 0xba]
mov byte [ebx + 0xca], al
mov byte [ebx + 0xda], al
mov al, byte [ebx + 0xbe]
mov byte [ebx + 0xcb], al
mov byte [ebx + 0xdb], al
mov al, byte [ebx + 0xb3]
mov byte [ebx + 0xcc], al
mov byte [ebx + 0xdc], al
mov al, byte [ebx + 0xb7]
mov byte [ebx + 0xcd], al
mov byte [ebx + 0xdd], al
mov al, byte [ebx + 0xbb]
pop edi
mov byte [ebx + 0xce], al
mov byte [ebx + 0xde], al
mov al, byte [ebx + 0xbf]
pop esi
pop ebp
mov byte [ebx + 0xcf], al
mov byte [ebx + 0xdf], al
pop ebx
ret