Function at 0x101ace50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
sub eax, 2
je 0x101ad099
sub eax, 1
je 0x101acfa4
sub eax, 1
jne 0x101ad14c
mov esi, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
movzx eax, byte [esi + 0xc]
lea edi, [edi + 0x10]
movzx edx, bl
inc ebx
movzx ecx, byte [edx + 0x102e0ce0]
xor ecx, eax
movzx eax, byte [esi + 8]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
movzx eax, byte [esi + 4]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102dfbe0]
mov dword [edi - 0x18], eax
mov eax, dword [esi + 0xc]
shr eax, 8
movzx ecx, al
movzx eax, byte [edx + 0x102e0be0]
xor ecx, eax
mov eax, dword [esi + 8]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [esi + 4]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [esi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102dffe0]
mov dword [edi - 0x14], eax
movzx eax, byte [edx + 0x102e0be0]
movzx ecx, byte [esi + 0xe]
xor ecx, eax
movzx eax, byte [esi + 0xa]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi + 6]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi + 2]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102e03e0]
mov dword [edi - 0x10], eax
movzx eax, byte [edx + 0x102e0ce0]
movzx ecx, byte [esi + 0xf]
xor ecx, eax
movzx eax, byte [esi + 0xb]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi + 7]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102e07e0]
mov dword [edi - 0xc], eax
cmp ebx, 0x100
jb 0x101ace82
pop edi
pop esi
pop ebx
pop ebp
ret
mov esi, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
lea esp, [esp]
movzx eax, byte [esi + 8]
lea edi, [edi + 0x10]
movzx edx, bl
inc ebx
movzx ecx, byte [edx + 0x102e0ce0]
xor ecx, eax
movzx eax, byte [esi + 4]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102dfbe0]
mov dword [edi - 0x18], eax
mov eax, dword [esi + 8]
shr eax, 8
movzx ecx, al
movzx eax, byte [edx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [esi + 4]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [esi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102dffe0]
mov dword [edi - 0x14], eax
movzx eax, byte [edx + 0x102e0be0]
movzx ecx, byte [esi + 0xa]
xor ecx, eax
movzx eax, byte [esi + 6]
movzx ecx, byte [ecx + 0x102e0be0]
xor ecx, eax
movzx eax, byte [esi + 2]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102e03e0]
mov dword [edi - 0x10], eax
movzx eax, byte [edx + 0x102e0be0]
movzx ecx, byte [esi + 0xb]
xor ecx, eax
movzx eax, byte [esi + 7]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 0x102e0ce0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102e07e0]
mov dword [edi - 0xc], eax
cmp ebx, 0x100
jb 0x101acfb0
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
movzx ecx, byte [eax + 4]
lea edi, [edi + 0x10]
movzx esi, bl
inc ebx
movzx edx, byte [esi + 0x102e0be0]
xor edx, ecx
movzx ecx, byte [eax]
movzx edx, byte [edx + 0x102e0be0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102dfbe0]
mov dword [edi - 0x18], ecx
mov ecx, dword [eax + 4]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [esi + 0x102e0ce0]
xor edx, ecx
mov ecx, dword [eax]
shr ecx, 8
movzx ecx, cl
movzx edx, byte [edx + 0x102e0be0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102dffe0]
mov dword [edi - 0x14], ecx
movzx ecx, byte [esi + 0x102e0be0]
movzx edx, byte [eax + 6]
xor edx, ecx
movzx ecx, byte [eax + 2]
movzx edx, byte [edx + 0x102e0ce0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102e03e0]
mov dword [edi - 0x10], ecx
movzx ecx, byte [esi + 0x102e0ce0]
movzx edx, byte [eax + 7]
xor edx, ecx
movzx ecx, byte [eax + 3]
movzx edx, byte [edx + 0x102e0ce0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102e07e0]
mov dword [edi - 0xc], ecx
cmp ebx, 0x100
jb 0x101ad0a1
pop edi
pop esi
pop ebx
pop ebp
ret