Function at 0x1016d1e0
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 0x1016d429
dec eax
je 0x1016d332
dec eax
jne 0x1016d4dc
mov esi, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
mov edi, edi
movzx eax, byte [esi + 0xc]
lea edi, [edi + 0x10]
movzx edx, bl
inc ebx
movzx ecx, byte [edx + 0x102645a0]
xor ecx, eax
movzx eax, byte [esi + 8]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
movzx eax, byte [esi + 4]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102634a0]
mov dword [edi - 0x18], eax
mov eax, dword [esi + 0xc]
shr eax, 8
movzx ecx, al
movzx eax, byte [edx + 0x102644a0]
xor ecx, eax
mov eax, dword [esi + 8]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [esi + 4]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [esi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102638a0]
mov dword [edi - 0x14], eax
movzx eax, byte [edx + 0x102644a0]
movzx ecx, byte [esi + 0xe]
xor ecx, eax
movzx eax, byte [esi + 0xa]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi + 6]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi + 2]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x10263ca0]
mov dword [edi - 0x10], eax
movzx eax, byte [edx + 0x102645a0]
movzx ecx, byte [esi + 0xf]
xor ecx, eax
movzx eax, byte [esi + 0xb]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi + 7]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102640a0]
mov dword [edi - 0xc], eax
cmp ebx, 0x100
jb 0x1016d210
pop edi
pop esi
pop ebx
pop ebp
ret
mov esi, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
lea ebx, [ebx]
movzx eax, byte [esi + 8]
lea edi, [edi + 0x10]
movzx edx, bl
inc ebx
movzx ecx, byte [edx + 0x102645a0]
xor ecx, eax
movzx eax, byte [esi + 4]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102634a0]
mov dword [edi - 0x18], eax
mov eax, dword [esi + 8]
shr eax, 8
movzx ecx, al
movzx eax, byte [edx + 0x102645a0]
xor ecx, eax
mov eax, dword [esi + 4]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [esi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102638a0]
mov dword [edi - 0x14], eax
movzx eax, byte [edx + 0x102644a0]
movzx ecx, byte [esi + 0xa]
xor ecx, eax
movzx eax, byte [esi + 6]
movzx ecx, byte [ecx + 0x102644a0]
xor ecx, eax
movzx eax, byte [esi + 2]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x10263ca0]
mov dword [edi - 0x10], eax
movzx eax, byte [edx + 0x102644a0]
movzx ecx, byte [esi + 0xb]
xor ecx, eax
movzx eax, byte [esi + 7]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 0x102645a0]
xor ecx, eax
mov eax, dword [ecx*4 + 0x102640a0]
mov dword [edi - 0xc], eax
cmp ebx, 0x100
jb 0x1016d340
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ebx, ebx
add edi, 8
movzx edx, byte [eax + 4]
lea edi, [edi + 0x10]
movzx esi, bl
inc ebx
movzx ecx, byte [esi + 0x102644a0]
xor edx, ecx
movzx ecx, byte [eax]
movzx edx, byte [edx + 0x102644a0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102634a0]
mov dword [edi - 0x18], ecx
mov ecx, dword [eax + 4]
shr ecx, 8
movzx edx, cl
movzx ecx, byte [esi + 0x102645a0]
xor edx, ecx
mov ecx, dword [eax]
shr ecx, 8
movzx ecx, cl
movzx edx, byte [edx + 0x102644a0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102638a0]
mov dword [edi - 0x14], ecx
movzx ecx, byte [esi + 0x102644a0]
movzx edx, byte [eax + 6]
xor edx, ecx
movzx ecx, byte [eax + 2]
movzx edx, byte [edx + 0x102645a0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x10263ca0]
mov dword [edi - 0x10], ecx
movzx ecx, byte [esi + 0x102645a0]
movzx edx, byte [eax + 7]
xor edx, ecx
movzx ecx, byte [eax + 3]
movzx edx, byte [edx + 0x102645a0]
xor edx, ecx
mov ecx, dword [edx*4 + 0x102640a0]
mov dword [edi - 0xc], ecx
cmp ebx, 0x100
jb 0x1016d431
pop edi
pop esi
pop ebx
pop ebp
ret