Function at 0x1000a560
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
mov ebx, eax
shr eax, 8
mov byte [esp + 5], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 6], al
mov eax, ebx
shr eax, 0x18
push ebp
mov ebp, dword [esp + 0x38]
push edi
mov byte [esp + 0xf], al
mov eax, 0xadadadad
mov ecx, 8
mov edi, esi
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x38]
xor eax, eax
xor ecx, ecx
test edi, edi
jle 0x1000a5b1
nop
mov edx, dword [esp + 0x34]
mov dl, byte [ecx + edx]
xor dl, al
add byte [esi], dl
inc ecx
inc eax
cmp ecx, edi
jl 0x1000a5a0
mov edi, dword [esp + 0x40]
xor edx, edx
test edi, edi
jle 0x1000a5d4
jmp 0x1000a5c0
mov ecx, dword [esp + 0x44]
test ecx, ecx
movsx ecx, byte [edx + ebp]
xor cl, al
add byte [esi], cl
inc edx
inc eax
cmp edx, edi
jl 0x1000a5c0
mov dl, byte [esi]
mov cl, al
xor cl, bl
add dl, cl
mov cl, byte [esp + 0xd]
inc eax
mov byte [esi], dl
mov dl, al
xor dl, cl
mov cl, byte [esi]
add cl, dl
mov dl, byte [esp + 0xf]
inc eax
mov byte [esi], cl
mov cl, al
inc cl
xor cl, dl
xor al, byte [esp + 0xe]
add cl, al
add byte [esi], cl
mov eax, 1
xor edi, edi
mov edx, dword [esp + 0x38]
xor ecx, ecx
test edx, edx
jle 0x1000a635
mov edx, dword [esp + 0x34]
mov dl, byte [ecx + edx]
add dl, cl
inc dl
xor byte [eax + esi], dl
inc eax
cmp eax, 0x20
jne 0x1000a62c
mov edi, 1
xor eax, eax
mov edx, dword [esp + 0x38]
inc ecx
cmp ecx, edx
jl 0x1000a611
mov ecx, dword [esp + 0x40]
xor edx, edx
test ecx, ecx
jle 0x1000a667
nop
mov ecx, dword [esp + 0x44]
test ecx, ecx
movsx ecx, byte [edx + ebp]
add cl, dl
inc cl
xor byte [eax + esi], cl
inc eax
cmp eax, 0x20
jne 0x1000a65e
mov edi, 1
xor eax, eax
mov ecx, dword [esp + 0x40]
inc edx
cmp edx, ecx
jl 0x1000a640
xor byte [eax + esi], bl
inc eax
cmp eax, 0x20
jne 0x1000a677
mov edi, 1
xor eax, eax
mov dl, byte [eax + esi]
mov cl, byte [esp + 0xd]
xor dl, cl
mov byte [eax + esi], dl
inc eax
cmp eax, 0x20
jne 0x1000a690
mov edi, 1
xor eax, eax
mov cl, byte [eax + esi]
mov dl, byte [esp + 0xe]
xor cl, dl
mov byte [eax + esi], cl
inc eax
cmp eax, 0x20
jne 0x1000a6a9
mov edi, 1
xor eax, eax
mov dl, byte [eax + esi]
mov cl, byte [esp + 0xf]
xor dl, cl
mov byte [eax + esi], dl
inc eax
cmp eax, 0x20
je 0x1000a6c3
test edi, edi
je 0x1000a607
xor edx, edx
mov dh, byte [esi + 3]
movzx eax, byte [esi + 1]
movzx ecx, byte [esi]
mov dl, byte [esi + 2]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x10], edx
xor edx, edx
mov dh, byte [esi + 7]
movzx eax, byte [esi + 5]
movzx ecx, byte [esi + 4]
mov dl, byte [esi + 6]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x14], edx
xor edx, edx
mov dh, byte [esi + 0xb]
movzx eax, byte [esi + 9]
movzx ecx, byte [esi + 8]
mov dl, byte [esi + 0xa]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x18], edx
xor edx, edx
mov dh, byte [esi + 0xf]
movzx eax, byte [esi + 0xd]
movzx ecx, byte [esi + 0xc]
mov dl, byte [esi + 0xe]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x1c], edx
xor edx, edx
mov dh, byte [esi + 0x13]
movzx eax, byte [esi + 0x11]
movzx ecx, byte [esi + 0x10]
mov dl, byte [esi + 0x12]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x20], edx
xor edx, edx
mov dh, byte [esi + 0x17]
movzx eax, byte [esi + 0x15]
movzx ecx, byte [esi + 0x14]
mov dl, byte [esi + 0x16]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
movzx eax, byte [esi + 0x19]
mov dword [esp + 0x24], edx
movzx ecx, byte [esi + 0x18]
xor edx, edx
mov dh, byte [esi + 0x1b]
mov dl, byte [esi + 0x1a]
shl edx, 8
or edx, eax
movzx eax, byte [esi + 0x1d]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi + 0x1c]
mov dword [esp + 0x28], edx
xor edx, edx
mov dh, byte [esi + 0x1f]
mov dl, byte [esi + 0x1e]
shl edx, 8
or edx, eax
shl edx, 8
or edx, ecx
mov dword [esp + 0x2c], edx
mov ecx, ebx
lea ebx, [esp + 0x10]
call fcn.1000a4f0
mov eax, dword [esp + 0x10]
mov byte [esi], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
mov byte [esi + 3], al
mov eax, dword [esp + 0x14]
shr edx, 8
mov byte [esi + 1], dl
shr ecx, 0x10
mov byte [esi + 2], cl
mov byte [esi + 4], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
mov byte [esi + 7], al
mov eax, dword [esp + 0x18]
shr edx, 8
mov byte [esi + 5], dl
shr ecx, 0x10
mov byte [esi + 6], cl
mov byte [esi + 8], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
mov byte [esi + 0xb], al
mov eax, dword [esp + 0x1c]
shr edx, 8
mov byte [esi + 9], dl
shr ecx, 0x10
mov byte [esi + 0xa], cl
mov byte [esi + 0xc], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
mov byte [esi + 0xf], al
mov eax, dword [esp + 0x20]
shr edx, 8
mov byte [esi + 0xd], dl
shr ecx, 0x10
mov byte [esi + 0xe], cl
mov byte [esi + 0x10], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
shr edx, 8
shr ecx, 0x10
mov byte [esi + 0x13], al
mov eax, dword [esp + 0x24]
mov byte [esi + 0x11], dl
mov byte [esi + 0x12], cl
mov byte [esi + 0x14], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
shr edx, 8
shr ecx, 0x10
mov byte [esi + 0x17], al
mov eax, dword [esp + 0x28]
mov byte [esi + 0x15], dl
mov byte [esi + 0x16], cl
mov byte [esi + 0x18], al
mov edx, eax
mov ecx, eax
shr eax, 0x18
shr edx, 8
shr ecx, 0x10
mov byte [esi + 0x1b], al
mov eax, dword [esp + 0x2c]
mov byte [esi + 0x19], dl
mov byte [esi + 0x1a], cl
mov edx, eax
mov ecx, eax
shr edx, 8
shr ecx, 0x10
mov byte [esi + 0x1c], al
mov byte [esi + 0x1d], dl
mov byte [esi + 0x1e], cl
shr eax, 0x18
pop edi
pop ebp
mov byte [esi + 0x1f], al
pop ebx
add esp, 0x24
ret