Function at 0x4375a8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
mov dl, byte [eax + 1]
mov cl, byte [eax]
mov byte [ebp - 3], dl
mov dl, byte [eax + 2]
mov byte [ebp + 0xb], dl
mov dl, byte [eax + 3]
mov bl, byte [eax + 6]
mov byte [ebp - 2], dl
mov dl, byte [eax + 4]
mov byte [ebp - 1], dl
mov dl, byte [eax + 5]
mov byte [ebp - 4], dl
mov dl, byte [eax + 7]
mov eax, dword [ebp + 0xc]
movzx esi, byte [eax]
cmp esi, 0xd
jbe 0x4375e6
push 0xd
pop esi
push edi
mov edi, esi
shl edi, 4
xor dl, byte [eax + edi + 8]
lea eax, [eax + edi + 8]
dec eax
mov edi, esi
mov byte [ebp + 0xf], dl
sub bl, byte [eax]
mov dl, byte [eax - 1]
sub byte [ebp - 4], dl
dec eax
dec eax
mov dl, byte [eax]
xor byte [ebp - 1], dl
mov dl, byte [eax - 1]
xor byte [ebp - 2], dl
dec eax
dec eax
mov dl, byte [eax]
sub byte [ebp + 0xb], dl
mov dl, byte [ebp - 3]
sub dl, byte [eax - 1]
dec eax
dec eax
mov byte [ebp - 3], dl
xor cl, byte [eax]
dec esi
test edi, edi
pop edi
je 0x437780
inc esi
mov dl, byte [ebp - 1]
mov byte [ebp - 5], dl
mov dl, byte [ebp - 3]
mov byte [ebp - 1], dl
mov dl, byte [ebp + 0xb]
mov byte [ebp - 3], dl
mov dl, byte [ebp - 5]
mov byte [ebp + 0xb], dl
mov dl, byte [ebp - 4]
mov byte [ebp - 5], dl
mov dl, byte [ebp - 2]
sub byte [ebp - 3], dl
sub cl, byte [ebp - 1]
sub dl, byte [ebp - 3]
mov byte [ebp - 2], bl
sub byte [ebp - 1], cl
mov bl, byte [eax - 1]
mov byte [ebp - 4], dl
mov dl, byte [ebp - 5]
sub byte [ebp + 0xb], dl
sub dl, byte [ebp + 0xb]
sub cl, byte [ebp + 0xb]
mov byte [ebp - 5], dl
mov dl, byte [ebp + 0xf]
sub byte [ebp - 2], dl
sub byte [ebp + 0xb], cl
mov dl, byte [ebp - 2]
sub byte [ebp + 0xf], dl
mov dl, byte [ebp - 5]
sub byte [ebp - 1], dl
mov dl, byte [ebp - 1]
sub byte [ebp - 5], dl
mov dl, byte [ebp - 2]
sub byte [ebp - 3], dl
mov dl, byte [ebp - 3]
sub cl, byte [ebp - 3]
sub byte [ebp - 2], dl
mov dl, byte [ebp + 0xf]
sub byte [ebp - 4], dl
mov dl, byte [ebp - 4]
sub byte [ebp + 0xf], dl
mov dl, byte [ebp - 2]
sub byte [ebp + 0xb], dl
mov dl, byte [ebp - 4]
sub byte [ebp - 1], dl
mov dl, byte [ebp - 5]
sub dl, byte [ebp + 0xf]
dec eax
add bl, dl
mov byte [ebp - 5], dl
sub byte [ebp + 0xf], bl
mov dl, byte [eax - 1]
xor byte [ebp - 5], dl
mov dl, byte [ebp - 4]
mov bl, byte [ebp - 1]
dec eax
dec eax
sub dl, bl
xor dl, byte [eax]
sub bl, byte [eax - 1]
dec eax
dec eax
mov byte [ebp - 4], dl
mov byte [ebp - 1], bl
mov dl, byte [eax]
add dl, byte [ebp + 0xb]
sub byte [ebp - 2], dl
mov dl, byte [eax - 1]
xor byte [ebp + 0xb], dl
mov dl, byte [ebp - 3]
dec eax
sub dl, cl
dec eax
xor dl, byte [eax]
sub cl, byte [eax - 1]
dec eax
mov byte [ebp - 3], dl
dec eax
movzx edx, byte [ebp + 0xf]
mov dl, byte [edx + 0x48c000]
xor dl, byte [eax]
mov byte [ebp + 0xf], dl
dec eax
movzx edx, byte [ebp - 5]
movzx ecx, cl
mov bl, byte [edx + 0x48bf00]
movzx edx, byte [ebp - 4]
sub bl, byte [eax]
dec eax
mov dl, byte [edx + 0x48bf00]
mov cl, byte [ecx + 0x48c000]
sub dl, byte [eax]
dec eax
mov byte [ebp - 4], dl
movzx edx, byte [ebp - 1]
mov dl, byte [edx + 0x48c000]
xor dl, byte [eax]
dec eax
mov byte [ebp - 1], dl
movzx edx, byte [ebp - 2]
mov dl, byte [edx + 0x48c000]
xor dl, byte [eax]
dec eax
mov byte [ebp - 2], dl
movzx edx, byte [ebp + 0xb]
mov dl, byte [edx + 0x48bf00]
sub dl, byte [eax]
dec eax
mov byte [ebp + 0xb], dl
xor cl, byte [eax - 1]
movzx edx, byte [ebp - 3]
mov dl, byte [edx + 0x48bf00]
sub dl, byte [eax]
dec eax
dec esi
mov byte [ebp - 3], dl
jne 0x43762e
mov eax, dword [ebp + 0x10]
pop esi
mov byte [eax], cl
mov cl, byte [ebp + 0xb]
mov byte [eax + 2], cl
mov cl, byte [ebp - 2]
mov byte [eax + 3], cl
mov cl, byte [ebp - 1]
mov byte [eax + 4], cl
mov cl, byte [ebp - 4]
mov byte [eax + 5], cl
mov cl, byte [ebp + 0xf]
mov byte [eax + 6], bl
mov byte [eax + 1], dl
mov byte [eax + 7], cl
pop ebx
leave
ret