Function at 0x10001738
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
mov rax, rsp
sub rsp, 0x40
cmp dword [rcx + 8], 0
mov r13d, r8d
mov edi, edx
mov r12, rcx
mov ebx, 1
jne 0x1000177f
mov dword [rax - 0x18], edx
mov dword [rax - 0x1c], edx
mov dword [rax - 0x20], edx
mov dword [rax - 0x10], r8d
mov dword [rax - 0x14], r8d
mov byte [rax - 9], bl
mov byte [rax - 0xa], bl
mov word [rax - 0xc], 0x20
jmp 0x10001976
cmp dword [rcx + 8], ebx
jne 0x100017e4
mov rdx, qword [rcx]
cmp word [rdx + 0x14], 0x20
jne 0x100017e4
mov eax, dword [rdx]
cmp edi, eax
jne 0x100017a3
mov dword [rdx + 0x10], r8d
mov dword [rdx + 0xc], r8d
mov al, bl
jmp 0x100019a7
xor eax, edi
mov r8d, 0x1f
bt eax, 0x1f
mov ecx, r8d
jb 0x100017c7
mov r9d, 0xffffffff
mov eax, dword [rdx]
add ecx, r9d
xor eax, edi
shr eax, cl
test bl, al
je 0x100017ba
mov eax, edi
sub r8w, cx
shr eax, cl
mov word [rdx + 0x14], r8w
and eax, ebx
mov dword [rdx + rax*4 + 0xc], r13d
mov dword [rdx + rax*4 + 4], edi
jmp 0x100019a5
mov r11, qword [rcx]
xor eax, eax
mov r9d, 0xffffffff
lea ebp, [rax + 0x20]
lea rcx, [rax + rax*2]
lea rsi, [r11 + rcx*8]
movzx r10d, word [rsi + 0x14]
sub ebp, r10d
cmp ebp, 0x20
jne 0x1000180c
xor r8d, r8d
jmp 0x10001826
mov r8d, edi
mov ecx, ebp
shr r8d, cl
cmp r10d, 0x20
je 0x10001826
mov ecx, r10d
mov eax, ebx
shl eax, cl
sub eax, ebx
and r8d, eax
cmp ebp, 0x20
jne 0x1000182f
xor edx, edx
jmp 0x10001846
mov edx, dword [rsi]
mov ecx, ebp
shr edx, cl
cmp r10d, 0x20
je 0x10001846
mov ecx, r10d
mov eax, ebx
shl eax, cl
sub eax, ebx
and edx, eax
cmp r8d, edx
jne 0x10001867
add ebp, r9d
mov eax, edi
mov ecx, ebp
shr eax, cl
and eax, ebx
cmp byte [rax + rsi + 0x16], 0
jne 0x100018e4
mov eax, dword [rsi + rax*4 + 4]
jmp 0x100017f2
movzx r14d, word [rsi + 0x14]
mov dword [rsp + 0x80], r14d
sub r14d, ebx
lea ecx, [r14 + rbp]
jmp 0x10001883
add r14d, r9d
add ecx, r9d
mov eax, dword [rsi]
xor eax, edi
shr eax, cl
test bl, al
je 0x1000187d
lea rcx, [rsp + 0x20]
mov rdx, rsi
mov r8d, 0x18
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x80]
mov edx, edi
sub ax, r14w
lea ecx, [r14 + rbp]
mov word [rsp + 0x34], r14w
shr edx, cl
sub ax, bx
mov word [rsi + 0x14], ax
and edx, ebx
mov dword [rsi + rdx*4 + 0xc], r13d
mov byte [rdx + rsi + 0x16], bl
sub ebx, edx
mov byte [rbx + rsi + 0x16], 0
mov dword [rsi + rdx*4 + 4], edi
mov eax, dword [r12 + 8]
mov dword [rsi + rbx*4 + 4], eax
jmp 0x10001973
mov r14d, dword [rsi + rax*4 + 4]
mov r11d, eax
cmp edi, r14d
jne 0x100018fb
mov dword [rsi + rax*4 + 0xc], r13d
jmp 0x1000179c
movsxd rdx, eax
lea r10d, [rbp - 1]
mov eax, r14d
xor eax, edi
mov ecx, r10d
shr eax, cl
test bl, al
jne 0x10001926
mov r8d, dword [rsi + rdx*4 + 4]
add r10d, r9d
mov eax, r8d
xor eax, edi
mov ecx, r10d
shr eax, cl
test bl, al
je 0x10001915
mov eax, dword [rsi + r11*4 + 0xc]
mov ecx, r10d
mov edx, edi
shr edx, cl
mov ecx, ebx
mov byte [r11 + rsi + 0x16], 0
and edx, ebx
sub bp, r10w
mov dword [rsp + rdx*4 + 0x2c], r13d
sub ecx, edx
sub bp, bx
mov dword [rsp + rcx*4 + 0x2c], eax
mov eax, dword [r12 + 8]
mov byte [rsp + rcx + 0x36], bl
mov byte [rsp + rdx + 0x36], bl
mov dword [rsp + rdx*4 + 0x24], edi
mov dword [rsp + 0x20], r14d
mov dword [rsp + rcx*4 + 0x24], r14d
mov dword [rsi + r11*4 + 4], eax
mov word [rsp + 0x34], bp
mov rcx, r12
call fcn.100990f0
mov r11d, dword [r12 + 8]
lea rdx, [rsp + 0x20]
lea eax, [r11 + 1]
lea rcx, [r11 + r11*2]
mov r8d, 0x18
mov dword [r12 + 8], eax
mov rax, qword [r12]
lea rcx, [rax + rcx*8]
call sub.msvcrt.dll_memcpy
xor al, al
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret