Function at 0x180017234
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movsxd rbx, dword [r8 + 0x130]
mov edi, r9d
mov rax, qword [r8 + 0x270]
movzx r14d, dx
mov r10, qword [r8 + 0x118]
xor rax, 0x3c32
mov r11d, ecx
mov dword [rsp + 4], ebx
mov edx, ebx
mov dword [rsp], ebx
sub qword [r10 + 0x70], rax
mov r9, qword [r8 + 0x190]
mov eax, dword [r9 + 0x280]
xor eax, 0x446
cmp eax, 0x324b
je 0x1800172b3
movzx eax, word [rsp + 0x80]
movzx ecx, r14w
xor rcx, rax
mov qword [r8 + 0x270], rcx
imul rax, qword [r8 + 0x550], 0x3a05
mov esi, dword [r9 + 0x280]
movsxd rbp, dword [rsp + 0x88]
sub esi, 0x3053
mov r12d, dword [rsp + 0x90]
mov qword [r8 + 0xb0], rax
mov rax, qword [r8 + 0x230]
sub qword [r8 + 0x170], rax
inc rax
mov qword [r8 + 0x230], rax
mov rax, qword [r8 + 0x128]
movsxd rcx, dword [rax + 0x4f8]
xor rcx, 0x3a05
cmp rcx, rbp
jge 0x1800177ec
mov rdx, qword [rsp + 0xa8]
lea r13, [rcx + rbx]
sub rdx, rbx
mov qword [rsp + 8], rbx
sub rbp, rcx
mov qword [rsp + 0x10], r13
mov qword [rsp + 0x18], rbp
mov r10, rbx
mov qword [rsp + 0xa8], rdx
mov rax, qword [r8 + 0x118]
mov ecx, dword [r9 + 0x168]
sub ecx, 8
cmp dword [rax + 0x290], ecx
je 0x18001736f
mov rcx, qword [r8 + 0x128]
movzx eax, r14w
xor qword [rcx + 0x2e8], rax
mov rax, qword [r8 + 0x128]
mov ecx, dword [rax + 0x168]
xor ecx, 0x1de
cmp ecx, 0x3182
ja 0x1800173a2
mov rax, qword [r8 + 0xb8]
mov rcx, qword [r8 + 0xe8]
sub rax, 0x3053
xor qword [rcx + 0x30], rax
mov cl, byte [rdx + r13]
sub cl, byte [rsp + 0xa0]
xor cl, byte [rsp + 0x98]
mov rax, qword [r8 + 0x18]
mov byte [rax + r13], cl
cmp r12d, 8
je 0x180017794
mov rdx, qword [r8 + 0x18]
mov ecx, r12d
mov eax, 1
mov r15d, r12d
shl al, cl
dec al
mov cl, byte [rdx + r13]
and cl, al
mov rax, qword [r8 + 0x230]
mov byte [rsp + 0x70], cl
imul rcx, rax, 0x3053
or rcx, rax
mov rax, qword [r8 + 0xe8]
mov qword [r8 + 0x230], rcx
mov rcx, qword [rax + 0x170]
or rcx, 0x30f3
sub qword [r8 + 0x2d8], rcx
test r12d, r12d
je 0x18001770b
mov r12b, byte [rsp + 0x70]
mov r13d, dword [rsp]
mov ebp, dword [rsp + 0x60]
mov ebx, edi
movzx r11d, r14w
mov rcx, qword [r8 + 0x510]
mov edx, 0x338c
mov rax, qword [r8 + 0x70]
mov dil, r12b
add rax, rdx
xor qword [rcx + 0x160], rax
lea ecx, [r15 - 1]
shr dil, cl
mov rax, rbx
sub rax, qword [r8 + 0x270]
add qword [r8 + 0x170], rax
mov al, byte [r8 + 0x328]
mov rcx, qword [r8 + 0x190]
xor al, 0x22
and dil, al
mov rax, qword [rcx + 0x230]
xor rax, qword [r8 + 0xc8]
xor rax, rdx
mov qword [rcx + 0x230], rax
mov rax, qword [r8 + 0x128]
mov ecx, dword [rax + 0x4f8]
mov eax, 0x362c
xor ecx, 0xc2f
cmp ecx, eax
je 0x1800174da
sub eax, ecx
mov r9d, eax
mov rax, qword [r8 + 0xe8]
mov rdx, qword [r8 + 0x118]
mov rcx, qword [rax + 0x4b8]
or rcx, 0x30f3
add qword [rdx + 0x28], rcx
sub r9, 1
jne 0x1800174b4
mov eax, esi
inc esi
test eax, eax
je 0x180017548
mov rcx, qword [r8 + 0x18]
mov al, byte [r10 + rcx]
add al, al
or al, dil
mov edi, 0x362a
mov byte [r10 + rcx], al
mov edx, edi
mov rax, rbp
xor rax, 0x32ec
sub qword [r8], rax
mov eax, dword [r8 + 0x328]
add eax, 0x107
cmp eax, edi
jbe 0x180017644
mov rax, qword [r8 + 0x128]
inc edx
xor qword [rax + 0x360], 0x38e3
mov ecx, dword [r8 + 0x328]
add ecx, 0x107
movsxd rax, edx
cmp rax, rcx
jb 0x18001751a
jmp 0x180017644
mov rax, qword [r8 + 0xe8]
mov edx, 0x324b
mov r10d, 0x2d8
mov r9d, edx
mov ecx, dword [rax + 0x328]
sub ecx, r10d
cmp ecx, edx
jbe 0x1800175a0
mov rax, qword [r8 + 0xf8]
inc r9d
mov rcx, qword [r8 + 0x128]
or rax, 0x3c12
or qword [rcx + 0x270], rax
mov rax, qword [r8 + 0xe8]
mov edx, dword [rax + 0x328]
sub edx, r10d
movsxd rax, r9d
cmp rax, rdx
jb 0x18001756a
mov r10, qword [r8 + 0x128]
mov ecx, 0x33a3
mov r9d, ecx
mov eax, dword [r10 + 0x168]
xor eax, 0x22e
cmp eax, ecx
jb 0x1800175f7
mov r11, qword [r8 + 0x210]
mov rdx, qword [r8 + 0x550]
add r11, rbx
or rdx, r11
inc r9d
mov qword [r8 + 0x550], rdx
mov ecx, dword [r10 + 0x168]
xor rcx, 0x22e
movsxd rax, r9d
cmp rax, rcx
jbe 0x1800175d0
movzx r11d, r14w
mov rax, qword [r8 + 0x18]
mov r10, qword [rsp + 8]
mov byte [r10 + rax], dil
mov rax, qword [r8 + 0x4b8]
cmp qword [r8 + 0x118], rax
jne 0x18001762f
mov rax, qword [r8 + 0x260]
mov rcx, qword [r8 + 0x190]
sub rax, 0x3c32
add qword [rcx + 0x260], rax
mov rax, r11
mov edi, 0x362a
or rax, 0x3a05
or qword [r8 + 0x4b0], rax
mov rax, qword [r8 + 0x190]
mov rcx, qword [rax + 0x30]
mov rax, qword [r8 + 0xe8]
imul rcx, r11
mov qword [rax], rcx
mov ecx, dword [r8 + 0x280]
xor rcx, 0x305b
movsxd rax, esi
cmp rax, rcx
jne 0x18001769c
mov rax, qword [r8 + 0x170]
xor esi, esi
mov rcx, qword [r8 + 0x128]
inc r13d
add qword [rcx + 0x340], rax
dec qword [r8 + 0x170]
inc r10
mov qword [rsp + 8], r10
mov eax, dword [r8 + 0x168]
dec r15d
xor eax, 0x7a1
mov r9d, edi
cmp eax, edi
jbe 0x1800176e8
mov rax, qword [r8 + 0x190]
inc r9d
mov rdx, qword [r8 + 0xe8]
imul rcx, qword [rax + 0xa0], 0x3a05
movsxd rax, r9d
xor qword [rdx + 0x30], rcx
mov ecx, dword [r8 + 0x168]
xor rcx, 0x7a1
cmp rax, rcx
jb 0x1800176b2
test r15d, r15d
jne 0x180017433
mov rbp, qword [rsp + 0x18]
mov r12d, dword [rsp + 0x90]
mov edi, dword [rsp + 0x78]
mov dword [rsp], r13d
mov r13, qword [rsp + 0x10]
mov rdx, qword [r8 + 0xe8]
lea rax, [r8 + 0x340]
mov rcx, qword [rdx + 0x340]
imul rcx, rax
mov qword [rdx + 0x340], rcx
mov rax, qword [r8 + 0x128]
mov r9d, dword [r8 + 0x328]
add r9d, 0x70f
imul edx, dword [rax + 0x4f8], 0xf00e9da4
movsxd rax, r9d
cmp rax, rdx
je 0x18001778c
movzx r10d, word [rsp + 0x80]
movzx r11d, r14w
mov rcx, qword [r8 + 0x128]
inc r9d
mov rax, r11
sub rax, r10
add qword [rcx + 0x70], rax
mov rax, qword [r8 + 0x128]
imul edx, dword [rax + 0x4f8], 0xf00e9da4
movsxd rax, r9d
cmp rax, rdx
jne 0x18001775f
mov rdx, qword [rsp + 0xa8]
mov r9, qword [r8 + 0x190]
mov eax, dword [r9 + 0x280]
add eax, 0x299
cmp eax, 0x318c
ja 0x1800177bd
imul rax, qword [r8 + 0xf8], 0x33a3
or qword [r8 + 0x30], rax
sub qword [r8 + 0x108], r8
inc r13
mov r10, qword [rsp + 8]
sub rbp, 1
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x10], r13
jne 0x180017344
mov ebx, dword [rsp + 4]
mov edx, dword [rsp]
mov r11d, dword [rsp + 0x60]
mov rax, qword [r8 + 0x328]
cmp qword [r8 + 0x280], rax
jne 0x18001780c
mov eax, r11d
or rax, 0x3415
or qword [r8 + 0x550], rax
cmp r12d, 8
jne 0x180017833
mov rax, qword [r8 + 0x2a0]
mov qword [r8 + 0x270], rax
inc rax
add ebx, dword [rsp + 0x88]
mov qword [r8 + 0x2a0], rax
jmp 0x18001788f
mov r11, qword [r8 + 0x128]
lea rax, [r8 + 0x2d0]
xor qword [r8 + 0x4b0], rax
mov edi, 0xa19
mov r9d, 0x3a6b
mov ebx, edx
mov eax, dword [r11 + 0x290]
add eax, edi
cmp eax, r9d
jb 0x18001788f
mov r10, qword [r8 + 0x170]
add r10, 0x290
inc r9d
add r10, r8
movsxd rcx, r9d
mov qword [r8 + 0x170], r10
mov edx, dword [r11 + 0x290]
add edx, edi
cmp rcx, rdx
jbe 0x18001786a
mov eax, ebx
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret