Function at 0x10003e4d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
and dword [ebp - 0x20], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea esi, [ebp - 0x3c]
lea eax, [ebp - 0x3b]
sub esi, edi
lea edx, [edi + 6]
sub eax, edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], 0x1b
mov ch, byte [edx]
mov bh, byte [edx - 1]
mov cl, byte [edx + 1]
mov dh, byte [edx - 2]
mov dl, ch
xor dl, dh
xor dl, bh
xor dl, cl
add dl, dl
mov al, ch
xor al, dl
xor al, dh
add al, al
mov byte [ebp - 0x18], al
mov byte [ebp - 1], dl
mov dl, cl
shr dl, 5
mov al, dl
and al, 4
imul byte [ebp - 0x14]
mov byte [ebp - 0xa], al
mov bl, ch
shr bl, 5
mov al, bl
and al, 4
imul byte [ebp - 0x14]
mov byte [ebp - 0xe], al
mov al, dl
and al, 2
imul byte [ebp - 0x14]
mov byte [ebp - 8], al
mov byte [ebp - 4], cl
mov cl, ch
shr cl, 6
mov al, cl
and al, 2
imul byte [ebp - 0x14]
mov byte [ebp - 0x17], al
and dl, 1
mov al, dl
imul byte [ebp - 0x14]
mov byte [ebp - 7], al
mov byte [ebp - 5], ch
mov ch, bh
shr ch, 5
mov al, ch
and al, 4
imul byte [ebp - 0x14]
mov byte [ebp - 0xd], al
and cl, 1
mov al, cl
imul byte [ebp - 0x14]
mov byte [ebp - 0x15], al
mov al, bl
and al, 2
imul byte [ebp - 0x14]
mov byte [ebp - 0xc], al
and bl, 1
mov byte [ebp - 2], bh
mov al, bl
push 0x1b
pop ebx
imul bl
mov byte [ebp - 0xf], al
mov dl, dh
shr dl, 5
mov al, dl
and al, 4
imul bl
mov byte [ebp - 9], al
mov al, ch
and al, 2
imul bl
mov cl, dh
mov byte [ebp - 6], al
shr cl, 6
mov al, cl
and al, 2
imul bl
mov byte [ebp - 3], dh
mov bh, al
and cl, 1
and ch, 1
mov al, ch
imul byte [ebp - 0x14]
mov byte [ebp - 0xb], al
mov al, cl
push 0x1b
pop ecx
imul cl
mov bl, al
mov al, dl
and al, 2
imul cl
mov ch, al
and dl, 1
mov al, dl
push 0x1b
pop edx
imul dl
mov dl, al
mov al, byte [ebp - 2]
mov cl, byte [ebp - 0x18]
xor cl, byte [ebp - 3]
shr al, 7
imul byte [ebp - 0x14]
xor cl, byte [ebp - 2]
mov dh, al
mov al, byte [ebp - 3]
add cl, cl
xor cl, byte [ebp - 5]
shr al, 7
imul byte [ebp - 0x14]
xor cl, al
xor cl, dh
xor cl, dl
xor cl, ch
xor cl, bl
xor cl, byte [ebp - 0xb]
mov edi, dword [ebp - 0x20]
xor cl, bh
xor cl, byte [ebp - 6]
mov byte [ebp - 0x1a], al
xor cl, byte [ebp - 9]
mov al, byte [ebp - 4]
xor cl, byte [ebp - 0xd]
mov byte [ebp - 0x1c], dl
xor cl, byte [ebp - 7]
mov dl, byte [ebp - 2]
xor cl, byte [ebp - 8]
mov byte [ebp - 0x1b], bh
xor cl, byte [ebp - 0xa]
push 0x1b
xor cl, dl
xor cl, al
xor cl, byte [ebp - 0xf]
mov byte [ebp - 0x19], bl
xor cl, byte [ebp - 0xc]
pop ebx
xor cl, byte [ebp - 0x15]
mov byte [ebp - 0x10], ch
xor cl, byte [ebp - 0x17]
xor cl, byte [ebp - 0xe]
mov byte [ebp + edi*4 - 0x38], cl
mov cl, byte [ebp - 1]
xor cl, dl
xor cl, al
add cl, cl
mov byte [ebp - 1], cl
mov cl, al
shr cl, 6
mov al, cl
and al, 2
imul bl
and cl, 1
mov byte [ebp - 0x16], al
mov al, cl
imul bl
mov cl, dl
shr cl, 6
mov bh, al
mov al, cl
and cl, 1
and al, 2
imul byte [ebp - 0x14]
mov ch, al
mov al, cl
imul byte [ebp - 0x14]
mov cl, byte [ebp - 5]
xor cl, byte [ebp - 1]
mov bl, al
xor cl, byte [ebp - 2]
mov al, byte [ebp - 5]
add cl, cl
xor cl, byte [ebp - 5]
shr al, 7
xor cl, bl
imul byte [ebp - 0x14]
xor cl, ch
xor cl, bh
xor cl, byte [ebp - 0x16]
mov dl, al
xor cl, dh
mov dh, byte [ebp - 0x1c]
xor cl, dh
xor cl, byte [ebp - 0x10]
mov al, byte [ebp - 4]
xor cl, byte [ebp - 0xb]
xor cl, byte [ebp - 6]
xor cl, byte [ebp - 9]
xor cl, byte [ebp - 0xd]
xor cl, byte [ebp - 7]
xor cl, byte [ebp - 8]
xor cl, byte [ebp - 0xa]
xor cl, byte [ebp - 3]
xor cl, al
xor cl, dl
xor cl, byte [ebp - 0xf]
shr al, 7
xor cl, byte [ebp - 0xc]
imul byte [ebp - 0x14]
xor cl, byte [ebp - 0xe]
mov ah, byte [ebp - 1]
mov byte [ebp + edi*4 - 0x37], cl
mov cl, byte [ebp - 5]
xor cl, byte [ebp - 0x18]
xor ah, byte [ebp - 3]
xor cl, byte [ebp - 4]
xor ah, byte [ebp - 4]
add cl, cl
xor cl, al
xor cl, dh
xor cl, byte [ebp - 0x10]
mov edi, dword [ebp - 0x24]
xor cl, byte [ebp - 0x19]
add ah, ah
xor cl, byte [ebp - 0xb]
xor ah, byte [ebp - 5]
xor cl, byte [ebp - 0x1b]
xor ah, al
xor cl, byte [ebp - 6]
mov al, ah
xor cl, byte [ebp - 9]
xor al, bl
xor cl, byte [ebp - 0xd]
xor al, ch
xor cl, byte [ebp - 7]
xor al, bh
xor cl, byte [ebp - 8]
xor al, byte [ebp - 0x16]
xor cl, byte [ebp - 0xa]
mov byte [ebp - 1], ah
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 2]
xor cl, byte [ebp - 4]
xor cl, dl
xor cl, byte [ebp - 0xf]
xor cl, byte [ebp - 0xc]
xor cl, byte [ebp - 0x15]
xor cl, byte [ebp - 0x17]
xor cl, byte [ebp - 0xe]
xor al, byte [ebp - 0x1a]
mov byte [edi + esi], cl
xor al, dh
xor al, byte [ebp - 0x10]
mov edx, dword [ebp - 0x24]
xor al, byte [ebp - 0xb]
mov edi, dword [ebp - 0x28]
xor al, byte [ebp - 6]
xor al, byte [ebp - 9]
xor al, byte [ebp - 0xd]
xor al, byte [ebp - 7]
xor al, byte [ebp - 8]
xor al, byte [ebp - 0xa]
xor al, byte [ebp - 3]
xor al, byte [ebp - 2]
xor al, byte [ebp - 0xf]
xor al, byte [ebp - 0xc]
xor al, byte [ebp - 0xe]
mov byte [edx + edi], al
mov eax, dword [ebp - 0x20]
inc eax
add edx, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
cmp eax, 4
jl 0x10003e77
mov edi, dword [ebp + 8]
push 5
pop ecx
lea esi, [ebp - 0x3c]
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
leave
ret 4