Function at 0x1800f2500
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
sub rsp, 0xc8
cmp qword [rdx + 8], 0x20
jne 0x1800f2e5c
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x28], r12
mov qword [rax - 0x30], r13
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov rax, qword [rdx]
mov qword [rsp + 0x48], 4
mov rdx, qword [rax + 0x10]
mov r8, qword [rax]
mov r9, qword [rax + 8]
mov r10, qword [rax + 0x18]
lea rax, [rcx + 0x10]
mov qword [rsp + 0x68], rax
mov qword [rax], r9
lea rax, [rcx + 0x30]
mov qword [rsp + 0xe0], rdx
mov qword [rcx + 0x18], rdx
lea rdx, [0x18036b008]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x78], r9
mov qword [rsp + 0xe8], r10
mov qword [rcx + 8], r8
mov qword [rcx + 0x20], r10
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0x58], 4
nop word [rax + rax]
mov rbp, r8
mov r11, r9
xor r11, qword [rdx]
xor rbp, qword [rdx - 8]
movzx eax, bpl
shl rax, 4
mov qword [rsp + 0x50], rax
mov rax, rbp
shr rax, 8
movzx r12d, al
mov rax, rbp
shr rax, 0x10
add r12, r12
movzx r14d, al
mov rax, rbp
shr rax, 0x18
add r14, r14
movzx edi, al
mov rax, rbp
shr rax, 0x20
add rdi, rdi
movzx r10d, al
mov rax, rbp
shr rax, 0x28
add r10, r10
movzx r8d, al
mov rax, rbp
shr rax, 0x30
add r8, r8
movzx ecx, al
movzx eax, r11b
add rcx, rcx
shl rax, 4
mov qword [rsp + 0x40], rax
mov rax, r11
shr rax, 8
movzx r13d, al
mov rax, r11
shr rax, 0x10
movzx r15d, al
mov rax, r11
shr rax, 0x18
add r15, r15
movzx esi, al
mov rax, r11
shr rax, 0x20
add rsi, rsi
movzx ebx, al
mov rax, r11
shr rax, 0x28
add rbx, rbx
movzx r9d, al
mov rax, r11
shr r11, 0x38
add r9, r9
shl r11, 4
mov qword [rsp + 0x30], r11
shr rax, 0x30
movzx edx, al
lea rax, [0x180000000]
shl r13, 4
add rdx, rdx
shr rbp, 0x38
add rbp, rbp
mov qword [rsp + 0x38], r13
lea r13, [0x180000000]
mov r11, qword [rax + rbp*8 + 0x352000]
xor r11, qword [rax + rcx*8 + 0x351000]
xor r11, qword [rax + r8*8 + 0x350000]
xor r11, qword [rax + r10*8 + 0x34f000]
xor r11, qword [rax + rdi*8 + 0x34e000]
xor r11, qword [rax + r14*8 + 0x34d000]
xor r11, qword [rax + r12*8 + 0x34c000]
mov rax, qword [rsp + 0x50]
xor r11, qword [rax + r13 + 0x34b000]
mov rax, qword [rsp + 0x30]
xor r11, qword [rax + r13 + 0x35a000]
lea rax, [0x180000000]
xor r11, qword [rax + rdx*8 + 0x359000]
xor r11, qword [rax + r9*8 + 0x358000]
xor r11, qword [rax + rbx*8 + 0x357000]
xor r11, qword [rax + rsi*8 + 0x356000]
xor r11, qword [rax + r15*8 + 0x355000]
mov r13, qword [rsp + 0x38]
xor r11, qword [rax + r13 + 0x354000]
lea r13, [0x180000000]
mov rax, qword [rsp + 0x40]
xor r11, qword [rax + r13 + 0x353000]
lea rax, [0x180000000]
mov rax, qword [rax + rbp*8 + 0x352008]
lea rbp, [0x180000000]
xor rax, qword [rbp + rcx*8 + 0x351008]
xor rax, qword [rbp + r8*8 + 0x350008]
xor rax, qword [rbp + r10*8 + 0x34f008]
xor rax, qword [rbp + rdi*8 + 0x34e008]
xor rax, qword [rbp + r14*8 + 0x34d008]
xor rax, qword [rbp + r12*8 + 0x34c008]
xor r11, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x50]
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0xe0], r11
xor rax, qword [rcx + rbp + 0x34b008]
mov rcx, qword [rsp + 0x30]
xor rax, qword [rcx + rbp + 0x35a008]
xor rax, qword [rbp + rdx*8 + 0x359008]
xor rax, qword [rbp + r9*8 + 0x358008]
xor rax, qword [rbp + rbx*8 + 0x357008]
xor rax, qword [rbp + rsi*8 + 0x356008]
xor rax, qword [rbp + r15*8 + 0x355008]
xor rax, qword [rbp + r13 + 0x354008]
mov r13, r11
mov rcx, qword [rsp + 0x40]
xor rax, qword [rcx + rbp + 0x353008]
xor rax, qword [rsp + 0xe8]
mov rdx, rax
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xd8]
mov rsi, rdx
xor r13, qword [rax + 8]
xor rsi, qword [rax + 0x10]
movzx eax, r13b
shl rax, 4
mov qword [rsp + 0x30], rax
mov rax, r13
shr rax, 8
movzx eax, al
shl rax, 4
mov qword [rsp + 0x38], rax
mov rax, r13
shr rax, 0x10
movzx eax, al
shl rax, 4
mov qword [rsp + 0x40], rax
mov rax, r13
shr rax, 0x18
movzx r12d, al
mov rax, r13
shr rax, 0x20
movzx r15d, al
mov rax, r13
shr rax, 0x28
add r15, r15
movzx r14d, al
mov rax, r13
shr rax, 0x30
add r14, r14
movzx ebp, al
mov rax, rsi
shr rax, 8
add rbp, rbp
movzx r11d, al
mov rax, rsi
shr rax, 0x10
add r11, r11
shr r13, 0x38
shl r12, 4
add r13, r13
movzx edi, sil
movzx r10d, al
add rdi, rdi
add r10, r10
mov qword [rsp + 0x50], r12
mov rax, rsi
shr rax, 0x18
movzx r9d, al
mov rax, rsi
shr rax, 0x20
add r9, r9
movzx r8d, al
mov rax, rsi
shr rax, 0x28
add r8, r8
movzx edx, al
mov rax, rsi
shr rax, 0x30
add rdx, rdx
movzx ecx, al
lea rax, [0x180000000]
add rcx, rcx
shr rsi, 0x38
add rsi, rsi
mov rbx, qword [rax + rsi*8 + 0x35a000]
xor rbx, qword [rax + rcx*8 + 0x359000]
xor rbx, qword [rax + rdx*8 + 0x358000]
xor rbx, qword [rax + r8*8 + 0x357000]
xor rbx, qword [rax + r9*8 + 0x356000]
xor rbx, qword [rax + r10*8 + 0x355000]
xor rbx, qword [rax + r11*8 + 0x354000]
xor rbx, qword [rax + rdi*8 + 0x353000]
xor rbx, qword [rax + r13*8 + 0x352000]
xor rbx, qword [rax + rbp*8 + 0x351000]
xor rbx, qword [rax + r14*8 + 0x350000]
xor rbx, qword [rax + r15*8 + 0x34f000]
xor rbx, qword [r12 + rax + 0x34e000]
lea r12, [0x180000000]
mov rax, qword [rsp + 0x40]
xor rbx, qword [rax + r12 + 0x34d000]
mov rax, qword [rsp + 0x38]
xor rbx, qword [rax + r12 + 0x34c000]
mov rax, qword [rsp + 0x30]
xor rbx, qword [rax + r12 + 0x34b000]
lea rax, [0x180000000]
mov rax, qword [rax + rsi*8 + 0x35a008]
lea rsi, [0x180000000]
xor rax, qword [rsi + rcx*8 + 0x359008]
xor rax, qword [rsi + rdx*8 + 0x358008]
xor rax, qword [rsi + r8*8 + 0x357008]
xor rax, qword [rsi + r9*8 + 0x356008]
xor rax, qword [rsi + r10*8 + 0x355008]
xor rax, qword [rsi + r11*8 + 0x354008]
xor rax, qword [rsi + rdi*8 + 0x353008]
xor rax, qword [rsi + r13*8 + 0x352008]
xor rax, qword [rsi + rbp*8 + 0x351008]
xor rax, qword [rsi + r14*8 + 0x350008]
xor rax, qword [rsi + r15*8 + 0x34f008]
mov rcx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
xor r8, rbx
mov rdx, qword [rsp + 0xd8]
mov r12, qword [rsp + 0x50]
add rdx, 0x20
mov qword [rsp + 0x70], r8
mov qword [rsp + 0xd8], rdx
xor rax, qword [r12 + rsi + 0x34e008]
xor rax, qword [rcx + rsi + 0x34d008]
mov rcx, qword [rsp + 0x38]
xor rax, qword [rcx + rsi + 0x34c008]
mov rcx, qword [rsp + 0x30]
xor rax, qword [rcx + rsi + 0x34b008]
xor r9, rax
sub qword [rsp + 0x58], 1
mov qword [rsp + 0x78], r9
jne 0x1800f25b0
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xe0]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xe8]
mov qword [rax + 0x10], rcx
mov qword [rax - 8], r8
mov qword [rax], r9
add rax, 0x20
sub qword [rsp + 0x48], 1
mov qword [rsp + 0x60], rax
jne 0x1800f2596
mov rax, qword [rsp + 0x68]
xor r9d, r9d
mov r10, qword [rsp + 0xd0]
mov qword [rsp + 0x48], r9
nop dword [rax]
mov r8, qword [rax - 8]
mov rax, qword [rax]
test r9, r9
je 0x1800f2dcb
movzx ecx, r8b
movzx ecx, byte [rcx + rsi + 0x34ae00]
shl rcx, 4
mov qword [rsp + 0xe8], rcx
mov rcx, r8
shr rcx, 8
movzx edx, cl
movzx ecx, byte [rdx + rsi + 0x34ae00]
shl rcx, 4
mov qword [rsp + 0xe0], rcx
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
movzx r13d, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
mov rcx, r8
shr rcx, 0x20
shl r13, 4
mov qword [rsp + 0x58], r13
movzx r15d, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
add r15, r15
mov rcx, r8
shr rcx, 0x28
movzx ebp, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
add rbp, rbp
mov rcx, r8
shr r8, 0x38
shr rcx, 0x30
movzx edi, byte [rdx + rsi + 0x34ae00]
movzx r9d, byte [r8 + rsi + 0x34ae00]
add rdi, rdi
movzx edx, cl
lea r8, [0x180000000]
movzx ecx, al
add r9, r9
movzx r11d, byte [rdx + rsi + 0x34ae00]
movzx ecx, byte [rcx + rsi + 0x34ae00]
add r11, r11
shl rcx, 4
mov qword [rsp + 0x60], rcx
mov rcx, rax
shr rcx, 8
movzx edx, cl
mov rcx, rax
shr rcx, 0x10
movzx r12d, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
add r12, r12
mov rcx, rax
shr rcx, 0x18
movzx r14d, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
add r14, r14
mov rcx, rax
shr rcx, 0x20
movzx esi, byte [rdx + rsi + 0x34ae00]
movzx edx, cl
add rsi, rsi
mov rcx, rax
shr rcx, 0x28
movzx ebx, byte [rdx + r8 + 0x34ae00]
movzx edx, cl
add rbx, rbx
mov rcx, rax
shr rax, 0x38
shr rcx, 0x30
movzx r10d, byte [rdx + r8 + 0x34ae00]
movzx edx, cl
add r10, r10
lea rcx, [0x180000000]
movzx ecx, byte [rax + rcx + 0x34ae00]
lea rax, [0x180000000]
add rcx, rcx
movzx r8d, byte [rdx + r8 + 0x34ae00]
mov rdx, qword [rax + r9*8 + 0x362000]
add r8, r8
xor rdx, qword [rax + r11*8 + 0x361000]
xor rdx, qword [rax + rdi*8 + 0x360000]
xor rdx, qword [rax + rbp*8 + 0x35f000]
xor rdx, qword [rax + r15*8 + 0x35e000]
xor rdx, qword [rax + r13 + 0x35d000]
lea r13, [0x180000000]
mov rax, qword [rsp + 0xe0]
xor rdx, qword [rax + r13 + 0x35c000]
mov rax, qword [rsp + 0xe8]
xor rdx, qword [rax + r13 + 0x35b000]
lea rax, [0x180000000]
xor rdx, qword [rax + rcx*8 + 0x36a000]
lea r13, [0x180000000]
xor rdx, qword [rax + r8*8 + 0x369000]
xor rdx, qword [rax + r10*8 + 0x368000]
xor rdx, qword [rax + rbx*8 + 0x367000]
xor rdx, qword [rax + rsi*8 + 0x366000]
xor rdx, qword [rax + r14*8 + 0x365000]
xor rdx, qword [rax + r12*8 + 0x364000]
mov qword [rsp + 0xd8], rdx
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0xd8]
xor rax, qword [rdx + r13 + 0x363000]
mov r13, qword [rsp + 0x58]
mov qword [rsp + 0xd8], rax
lea rax, [0x180000000]
mov rax, qword [rax + r9*8 + 0x362008]
lea r9, [0x180000000]
xor rax, qword [r9 + r11*8 + 0x361008]
lea r11, [0x180000000]
xor rax, qword [r11 + rdi*8 + 0x360008]
xor rax, qword [r11 + rbp*8 + 0x35f008]
xor rax, qword [r11 + r15*8 + 0x35e008]
xor rax, qword [r11 + r13 + 0x35d008]
mov r9, qword [rsp + 0xe0]
xor rax, qword [r9 + r11 + 0x35c008]
mov r9, qword [rsp + 0xe8]
xor rax, qword [r9 + r11 + 0x35b008]
xor rax, qword [r11 + rcx*8 + 0x36a008]
xor rax, qword [r11 + r8*8 + 0x369008]
xor rax, qword [r11 + r10*8 + 0x368008]
xor rax, qword [r11 + rbx*8 + 0x367008]
xor rax, qword [r11 + rsi*8 + 0x366008]
lea rsi, [0x180000000]
xor rax, qword [rsi + r14*8 + 0x365008]
xor rax, qword [rsi + r12*8 + 0x364008]
xor rax, qword [rdx + rsi + 0x363008]
mov r8, qword [rsp + 0xd8]
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0xd0]
mov edx, 9
sub rdx, r9
inc r9
mov rcx, rdx
mov qword [rsp + 0x48], r9
add rcx, rcx
mov qword [r10 + rcx*8 + 0xa8], r8
lea rcx, [rdx + 0xb]
add rcx, rcx
mov qword [r10 + rcx*8], rax
mov rax, qword [rsp + 0x68]
add rax, 0x10
mov qword [rsp + 0x68], rax
cmp r9, 0xa
jb 0x1800f2ac0
mov r15, qword [rsp + 0x88]
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xc0]
mov byte [r10 + 0x148], 1
add rsp, 0xc8
ret
lea r9, [0x1803e3190]
mov dword [rsp + 0x20], 0x1088
lea r8, str.key_schedule
lea rdx, [0x1803c6beb]
lea rcx, str.key.size____32
call fcn.1800d1f70
int3