Function at 0x41afe0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x28
mov edx, dword [esp + 0x3c]
mov esi, 0xffffffff
mov ecx, 0xfffffffd
nop word cs:[eax + eax]
add ecx, 3
cmp byte [edx + esi + 1], 0
lea esi, [esi + 1]
jne 0x41b000
shr ecx, 2
movzx eax, byte [edx + esi - 1]
cmp eax, 0x3d
je 0x41b01f
cmp eax, 0x2e
jne 0x41b020
dec ecx
movzx eax, byte [edx + esi - 2]
cmp eax, 0x3d
je 0x41b02f
cmp eax, 0x2e
jne 0x41b030
dec ecx
mov dword [esp + 4], ecx
mov ecx, 0
test esi, esi
je 0x41b124
xor edi, edi
mov ebp, 2
jmp 0x41b062
lea eax, [ebp + 4]
add ebp, 2
mov edi, ecx
cmp ebp, esi
mov ebp, eax
jae 0x41b124
mov ebx, dword [esp + 0x3c]
movzx eax, byte [ebx + ebp - 2]
push eax
call fcn.00424b70
add esp, 4
mov byte [esp], al
movzx eax, byte [ebx + ebp - 1]
push eax
call fcn.00424b70
add esp, 4
mov ebx, eax
movzx eax, al
mov ecx, eax
not ecx
or ecx, 0x30
add eax, ecx
inc eax
movzx ecx, byte [esp]
shr eax, 4
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov byte [ecx + edi], al
lea ecx, [edi + 1]
cmp ebp, esi
jae 0x41b050
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + ebp]
push eax
mov dword [esp + 4], ecx
call fcn.00424b70
mov ecx, dword [esp + 4]
add esp, 4
cmp al, 0x40
je 0x41b050
mov bh, al
shr al, 2
and al, 0xf
shl bl, 4
or bl, al
lea ecx, [edi + 2]
mov eax, dword [esp + 0x40]
mov byte [eax + edi + 1], bl
lea eax, [ebp + 1]
cmp eax, esi
jae 0x41b050
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + ebp + 1]
push eax
mov dword [esp + 4], ecx
call fcn.00424b70
mov ecx, dword [esp + 4]
add esp, 4
cmp al, 0x40
je 0x41b050
shl bh, 6
add al, bh
mov ecx, dword [esp + 0x40]
mov byte [ecx + edi + 2], al
add edi, 3
mov ecx, edi
jmp 0x41b050
mov ebx, dword [esp + 4]
cmp ecx, ebx
mov eax, 0
jne 0x41b23f
lea edi, [esp + 8]
mov esi, dword [esp + 0x40]
mov eax, esi
mov ecx, 8
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
add eax, 0xffffffe0
je 0x41b23b
lea ecx, [ebx - 0x41]
xor edi, edi
cmp ecx, 0xffffffe7
jb 0x41b1e3
xor edi, edi
cmp eax, 0x20
jb 0x41b1ad
mov edi, eax
and edi, 0xffffffe0
movups xmm0, xmmword [esp + 8]
movups xmm1, xmmword [esp + 0x18]
xor ecx, ecx
nop dword [eax]
movups xmm2, xmmword [esi + ecx + 0x20]
xorps xmm2, xmm0
movups xmm3, xmmword [esi + ecx + 0x30]
xorps xmm3, xmm1
movups xmmword [esi + ecx], xmm2
movups xmmword [esi + ecx + 0x10], xmm3
add ecx, 0x20
cmp edi, ecx
jne 0x41b180
cmp eax, edi
je 0x41b23b
test bl, 0x18
je 0x41b1e3
mov ecx, edi
mov edi, eax
and edi, 0xfffffff8
nop word cs:[eax + eax]
mov edx, ecx
and edx, 0x18
movsd xmm0, qword [esi + ecx + 0x20]
movsd xmm1, qword [esp + edx + 8]
xorps xmm1, xmm0
movlps qword [esi + ecx], xmm1
add ecx, 8
cmp edi, ecx
jne 0x41b1c0
cmp eax, edi
je 0x41b23b
lea edx, [ebx - 0x21]
mov ecx, edi
test bl, 1
je 0x41b203
mov ecx, edi
and ecx, 0x18
movzx ecx, byte [esp + ecx + 8]
xor cl, byte [esi + edi + 0x20]
mov byte [esi + edi], cl
mov ecx, edi
or ecx, 1
cmp edx, edi
je 0x41b23b
nop word [eax + eax]
mov edx, ecx
and edx, 0x1f
movzx edx, byte [esp + edx + 8]
xor dl, byte [esi + ecx + 0x20]
mov byte [esi + ecx], dl
lea edx, [ecx + 1]
and edx, 0x1f
movzx edx, byte [esp + edx + 8]
xor dl, byte [esi + ecx + 0x21]
mov byte [esi + ecx + 1], dl
add ecx, 2
cmp eax, ecx
jne 0x41b210
mov byte [esi + eax], 0
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret