Function at 0x120193c6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov al, byte [esi + 3]
mov cl, byte [esi]
mov byte [ebp + 0xb], al
mov al, byte [esi + 4]
mov byte [ebp - 1], al
mov al, byte [esi + 5]
mov byte [ebp - 2], al
mov al, byte [esi + 6]
mov dl, byte [esi + 1]
mov bl, byte [esi + 2]
mov byte [ebp - 3], al
mov al, byte [esi + 7]
mov byte [ebp - 4], al
mov eax, dword [ebp + 0xc]
movzx esi, byte [eax]
cmp esi, 0xd
jbe 0x12019405
push 0xd
pop esi
mov edi, esi
dec esi
test edi, edi
je 0x1201955b
inc esi
xor cl, byte [eax + 1]
inc eax
inc eax
movzx ecx, cl
add dl, byte [eax]
add bl, byte [eax + 1]
inc eax
mov cl, byte [ecx + 0x120b8d8c]
inc eax
mov byte [ebp + 0xf], bl
movzx edi, byte [ebp + 0xf]
mov bl, byte [eax]
xor byte [ebp + 0xb], bl
mov bl, byte [eax + 1]
xor byte [ebp - 1], bl
inc eax
inc eax
movzx edx, dl
mov bl, byte [eax]
add byte [ebp - 2], bl
mov bl, byte [eax + 1]
add byte [ebp - 3], bl
inc eax
inc eax
mov dl, byte [edx + 0x120b8e8c]
mov bl, byte [eax]
add cl, byte [eax + 1]
xor byte [ebp - 4], bl
inc eax
mov bl, byte [edi + 0x120b8e8c]
inc eax
movzx edi, byte [ebp + 0xb]
xor dl, byte [eax]
xor bl, byte [eax + 1]
inc eax
mov byte [ebp + 0xf], bl
mov bl, byte [edi + 0x120b8d8c]
movzx edi, byte [ebp - 1]
add bl, byte [eax + 1]
inc eax
inc eax
add dl, cl
mov byte [ebp + 0xb], bl
mov bl, byte [edi + 0x120b8d8c]
movzx edi, byte [ebp - 2]
add bl, byte [eax]
inc eax
mov byte [ebp - 5], dl
add cl, dl
mov dl, byte [ebp + 0xf]
mov byte [ebp - 1], bl
mov bl, byte [edi + 0x120b8e8c]
add byte [ebp + 0xb], dl
xor bl, byte [eax]
mov dl, byte [ebp - 1]
movzx edi, byte [ebp - 3]
mov byte [ebp - 2], bl
inc eax
add byte [ebp - 2], dl
mov bl, byte [edi + 0x120b8e8c]
mov dl, byte [ebp - 2]
xor bl, byte [eax]
add byte [ebp - 1], dl
inc eax
movzx edx, byte [ebp - 4]
mov byte [ebp - 3], bl
mov dl, byte [edx + 0x120b8d8c]
add dl, byte [eax]
add dl, bl
mov byte [ebp - 4], dl
mov dl, byte [ebp + 0xb]
add dl, cl
add byte [ebp + 0xf], dl
mov dl, byte [ebp - 4]
add dl, byte [ebp - 1]
add cl, byte [ebp + 0xf]
add byte [ebp - 3], dl
mov dl, byte [ebp - 5]
add byte [ebp + 0xb], dl
mov dl, byte [ebp + 0xb]
add byte [ebp - 5], dl
mov dl, byte [ebp - 2]
add byte [ebp - 4], dl
mov dl, byte [ebp - 3]
add dl, cl
add byte [ebp - 1], dl
mov dl, byte [ebp - 4]
add dl, byte [ebp - 5]
add cl, byte [ebp - 1]
add byte [ebp - 2], dl
mov dl, byte [ebp + 0xf]
add byte [ebp - 3], dl
mov dl, byte [ebp + 0xb]
add byte [ebp - 4], dl
mov dl, byte [ebp - 2]
add dl, byte [ebp - 5]
mov bl, byte [ebp - 2]
mov byte [ebp - 6], dl
mov dl, byte [ebp - 1]
mov byte [ebp - 5], dl
mov dl, byte [ebp - 3]
add dl, byte [ebp + 0xf]
mov byte [ebp - 1], dl
mov dl, byte [ebp - 6]
mov byte [ebp + 0xf], dl
mov dl, byte [ebp - 4]
add dl, byte [ebp + 0xb]
mov byte [ebp + 0xb], bl
mov bl, byte [ebp - 3]
dec esi
mov byte [ebp - 2], bl
mov bl, byte [ebp + 0xf]
mov byte [ebp - 3], dl
mov dl, byte [ebp - 5]
jne 0x12019411
xor cl, byte [eax + 1]
inc eax
inc eax
pop edi
pop esi
add dl, byte [eax]
add bl, byte [eax + 1]
inc eax
inc eax
mov byte [ebp + 0xf], bl
mov bl, byte [eax]
xor byte [ebp + 0xb], bl
mov bl, byte [eax + 1]
xor byte [ebp - 1], bl
inc eax
inc eax
mov bl, byte [eax]
add byte [ebp - 2], bl
mov bl, byte [eax + 1]
add byte [ebp - 3], bl
mov bl, byte [ebp - 4]
inc eax
xor bl, byte [eax + 1]
mov eax, dword [ebp + 0x10]
mov byte [eax], cl
mov cl, byte [ebp + 0xf]
mov byte [eax + 2], cl
mov cl, byte [ebp + 0xb]
mov byte [eax + 3], cl
mov cl, byte [ebp - 1]
mov byte [eax + 4], cl
mov cl, byte [ebp - 2]
mov byte [eax + 5], cl
mov cl, byte [ebp - 3]
mov byte [eax + 7], bl
mov byte [eax + 1], dl
mov byte [eax + 6], cl
pop ebx
leave
ret