Function at 0x10001a5a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x100ea814]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov edx, ecx
mov eax, dword [edx + 8]
push esi
push edi
mov dword [ebp - 0x28], edx
push 0x20
test eax, eax
jne 0x10001aa2
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
pop eax
mov byte [ebp - 5], 1
mov byte [ebp - 6], 1
mov word [ebp - 8], ax
jmp 0x10001ca2
pop ebx
cmp eax, 1
jne 0x10001b05
mov eax, dword [edx + 0xc]
cmp word [eax + 0x14], bx
jne 0x10001b05
mov edx, dword [eax]
mov esi, dword [ebp + 8]
cmp esi, edx
jne 0x10001aca
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x10], ecx
mov dword [eax + 0xc], ecx
mov al, 1
jmp 0x10001cb8
xor edx, esi
push 0x1f
pop edi
test edx, edx
js 0x10001ae3
mov edx, dword [eax]
dec edi
mov ebx, edx
xor ebx, esi
mov ecx, edi
shr ebx, cl
test bl, 1
je 0x10001ad5
push 0x1f
pop ecx
sub ecx, edi
mov word [eax + 0x14], cx
mov ecx, edi
mov edx, esi
shr edx, cl
mov ecx, dword [ebp + 0xc]
and edx, 1
mov dword [eax + edx*4 + 0xc], ecx
mov dword [eax + edx*4 + 4], esi
jmp 0x10001cb6
mov edx, dword [edx + 0xc]
movzx esi, word [edx + 0x14]
mov edi, dword [ebp + 8]
push esi
sub ebx, esi
push edi
mov ecx, ebx
mov dword [ebp - 0x20], edx
call fcn.100018eb
push esi
push dword [edx]
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.100018eb
mov ecx, dword [ebp - 0x24]
jmp 0x10001b6d
dec ebx
mov esi, edi
mov ecx, ebx
shr esi, cl
and esi, 1
cmp byte [esi + edx + 0x16], 0
jne 0x10001c02
mov edx, dword [edx + esi*4 + 4]
imul edx, edx, 0x18
add edx, dword [ebp - 0x20]
movzx esi, word [edx + 0x14]
push esi
sub ebx, esi
push edi
mov ecx, ebx
call fcn.100018eb
push esi
push dword [edx]
mov ecx, ebx
mov dword [ebp - 0x24], eax
call fcn.100018eb
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
je 0x10001b2f
movzx eax, word [edx + 0x14]
mov dword [ebp - 0x24], eax
movzx eax, ax
dec eax
lea esi, [eax + ebx]
mov dword [ebp - 0x20], eax
mov eax, dword [edx]
xor eax, edi
mov ecx, esi
shr eax, cl
test al, 1
jne 0x10001ba1
mov edi, dword [edx]
dec dword [ebp - 0x20]
dec esi
mov eax, edi
xor eax, dword [ebp + 8]
mov ecx, esi
shr eax, cl
test al, 1
je 0x10001b90
mov eax, dword [ebp - 0x24]
push 6
pop ecx
mov esi, edx
lea edi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp + 8]
sub eax, ecx
mov word [ebp - 8], cx
add ecx, ebx
dec eax
mov word [edx + 0x14], ax
mov eax, esi
shr eax, cl
mov ecx, dword [ebp + 0xc]
push 2
and eax, 1
mov dword [edx + eax*4 + 0xc], ecx
mov byte [eax + edx + 0x16], 1
mov ecx, edx
sub ecx, eax
mov byte [ecx + 0x17], 0
pop ecx
sub ecx, eax
mov dword [edx + eax*4 + 4], esi
mov eax, dword [ebp - 0x28]
mov esi, dword [eax + 8]
sub esp, 0x18
mov dword [edx + ecx*4], esi
push 6
pop ecx
lea esi, [ebp - 0x1c]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x10001cb1
lea eax, [edx + esi*4 + 4]
mov dword [ebp - 0x24], eax
mov eax, dword [eax]
cmp edi, eax
jne 0x10001c1b
mov eax, dword [ebp + 0xc]
mov dword [edx + esi*4 + 0xc], eax
jmp 0x10001ac3
lea ecx, [ebx - 1]
xor eax, edi
shr eax, cl
mov dword [ebp - 0x20], ecx
test al, 1
jne 0x10001c3f
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
dec dword [ebp - 0x20]
mov ecx, dword [ebp - 0x20]
mov eax, edi
xor eax, dword [ebp + 8]
shr eax, cl
test al, 1
je 0x10001c2e
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
shr eax, cl
sub ebx, dword [ebp - 0x20]
and eax, 1
mov ecx, eax
shl ecx, 2
mov dword [ebp + ecx - 0x10], edi
mov dword [ebp - 0x2c], ecx
lea edi, [ebp - 0xc]
sub edi, ecx
mov ecx, dword [edx + esi*4 + 0xc]
mov dword [edi], ecx
lea ecx, [ebp - 5]
sub ecx, eax
mov byte [ecx], 1
mov ecx, dword [ebp - 0x2c]
mov byte [ebp + eax - 6], 1
mov eax, dword [ebp + 8]
mov dword [ebp + ecx - 0x18], eax
mov eax, dword [ebp - 0x24]
mov edi, dword [eax]
mov dword [ebp - 0x1c], edi
lea edi, [ebp - 0x14]
sub edi, ecx
mov ecx, dword [ebp - 0x1c]
mov byte [esi + edx + 0x16], 0
mov edx, dword [ebp - 0x28]
mov dword [edi], ecx
mov ecx, dword [edx + 8]
dec ebx
mov word [ebp - 8], bx
mov dword [eax], ecx
sub esp, 0x18
push 6
pop ecx
mov edi, esp
lea esi, [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
call fcn.1000191b
xor al, al
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10098b4f
leave
ret 8