Function at 0x1400115f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1400f8148]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
test rdx, rdx
je 0x140011ad2
lea eax, [r9 - 0x10]
mov edx, 0xffffffe7
test edx, eax
jne 0x140011a99
cmp r9d, 0x28
je 0x140011a99
movsxd rcx, dword [rsp + 0xc0]
lea eax, [rcx - 0x10]
test edx, eax
jne 0x140011a60
cmp ecx, 0x28
je 0x140011a60
mov dword [rbx + 0x3cc], r9d
mov dword [rbx + 0x3d0], ecx
mov r8, rcx
lea rcx, [rbx + 0x3d8]
mov rdx, rsi
call fcn.14002e1f0
movsxd r8, dword [rbx + 0x3d0]
lea rcx, [rbx + 0x3f8]
mov rdx, rsi
call fcn.14002e1f0
mov eax, dword [rbx + 0x3cc]
mov ecx, dword [rbx + 0x3d0]
cmp eax, 0x10
je 0x1400116b7
cmp eax, 0x18
mov eax, 0xe
jne 0x1400116cf
lea edx, [rax - 2]
cmp ecx, 0x20
cmovne eax, edx
jmp 0x1400116cf
cmp ecx, 0x10
jne 0x1400116c1
lea eax, [rcx - 6]
jmp 0x1400116cf
mov eax, 0xe
lea edx, [rax - 2]
cmp ecx, 0x18
cmove eax, edx
mov dword [rbx + 0x3d4], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd r12, eax
xor ebp, ebp
mov ecx, dword [rbx + 0x3d4]
test ecx, ecx
js 0x140011719
lea rsi, [rbx + 0xc]
test r12d, r12d
jle 0x140011709
mov r8, r12
shl r8, 2
xor edx, edx
mov rcx, rsi
call fcn.14002f900
inc ebp
add rsi, 0x20
mov ecx, dword [rbx + 0x3d4]
cmp ebp, ecx
jle 0x1400116f3
xor ebp, ebp
test ecx, ecx
js 0x14001174c
lea rsi, [rbx + 0x1ec]
test r12d, r12d
jle 0x14001173c
mov r8, r12
shl r8, 2
xor edx, edx
mov rcx, rsi
call fcn.14002f900
inc ebp
add rsi, 0x20
mov ecx, dword [rbx + 0x3d4]
cmp ebp, ecx
jle 0x140011726
lea r11d, [rcx + 1]
imul r11d, r12d
mov eax, dword [rbx + 0x3cc]
cdq
and edx, 3
add eax, edx
sar eax, 2
movsxd rbp, eax
lea r15, [rbx + 0x418]
mov rdx, r15
test eax, eax
jle 0x1400117ab
mov r8d, ebp
movzx ecx, byte [rdi]
shl ecx, 0x18
mov dword [rdx], ecx
movzx eax, byte [rdi + 1]
shl eax, 0x10
or eax, ecx
mov dword [rdx], eax
movzx ecx, byte [rdi + 2]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [rdi + 3]
or eax, ecx
mov dword [rdx], eax
lea rdi, [rdi + 4]
lea rdx, [rdx + 4]
sub r8, 1
jne 0x140011777
xor r9d, r9d
lea rdi, [0x140000000]
test ebp, ebp
jle 0x14001180c
xor esi, esi
mov rdi, r15
cmp r9d, r11d
jge 0x14001190b
mov eax, r9d
cdq
idiv r12d
movsxd r8, edx
movsxd rcx, eax
lea rdx, [r8 + rcx*8]
mov ecx, dword [rdi]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [rdi]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc rsi
add rdi, 4
inc r9d
cmp rsi, rbp
jl 0x1400117be
lea rdi, [0x140000000]
cmp r9d, r11d
jge 0x14001190b
lea r13, [0x1400dc630]
movsxd rdx, dword [rbx + rbp*4 + 0x414]
mov rax, rdx
sar rax, 0x10
movzx ecx, al
movsx r8d, byte [rcx + rdi + 0xd9430]
movsx eax, byte [r13]
xor r8d, eax
shl r8d, 8
mov rax, rdx
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + rdi + 0xd9430]
xor r8d, eax
shl r8d, 8
movzx eax, dl
movzx eax, byte [rax + rdi + 0xd9430]
xor r8d, eax
shl r8d, 8
sar rdx, 0x18
movzx eax, dl
movzx eax, byte [rax + rdi + 0xd9430]
xor r8d, eax
xor dword [r15], r8d
inc r13
cmp ebp, 8
je 0x1400119be
cmp rbp, 1
jle 0x1400118af
lea rcx, [rbx + 0x41c]
lea rdx, [rbp - 1]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x1400118a0
test ebp, ebp
jle 0x140011902
mov rdi, r15
xor esi, esi
cmp r9d, r11d
jge 0x14001190b
mov eax, r9d
cdq
idiv r12d
movsxd r8, edx
movsxd rcx, eax
lea rdx, [r8 + rcx*8]
mov ecx, dword [rdi]
mov dword [rbx + rdx*4 + 0xc], ecx
mov ecx, dword [rbx + 0x3d4]
sub ecx, eax
movsxd rax, ecx
lea rcx, [r8 + rax*8]
mov eax, dword [rdi]
mov dword [rbx + rcx*4 + 0x1ec], eax
inc rsi
add rdi, 4
inc r9d
cmp rsi, rbp
jl 0x1400118b8
lea rdi, [0x140000000]
cmp r9d, r11d
jl 0x14001181c
mov r10d, 1
cmp dword [rbx + 0x3d4], r10d
jle 0x140011995
lea r11, [rbx + 0x20c]
lea r15, [0x140000000]
test r12d, r12d
jle 0x140011985
mov rdi, r11
mov rsi, r12
movsxd r9, dword [rdi]
mov rax, r9
sar rax, 0x18
movzx edx, al
mov rax, r9
sar rax, 0x10
movzx ecx, al
mov r8d, dword [r15 + rdx*4 + 0xdb630]
xor r8d, dword [r15 + rcx*4 + 0xdba30]
mov rax, r9
sar rax, 8
movzx ecx, al
xor r8d, dword [r15 + rcx*4 + 0xdbe30]
movzx eax, r9b
xor r8d, dword [r15 + rax*4 + 0xdc230]
mov dword [rdi], r8d
lea rdi, [rdi + 4]
sub rsi, 1
jne 0x140011933
inc r10d
add r11, 0x20
cmp r10d, dword [rbx + 0x3d4]
jl 0x140011928
mov byte [rbx + 8], 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14002d370
mov rbx, qword [rsp + 0xa8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbx + 0x41c]
mov edx, 3
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x1400119ca
movsxd r8, dword [rbx + 0x424]
mov rax, r8
sar rax, 0x18
movzx ecx, al
movsx edx, byte [rcx + rdi + 0xd9430]
shl edx, 8
mov rax, r8
sar rax, 0x10
movzx ecx, al
movzx eax, byte [rcx + rdi + 0xd9430]
xor edx, eax
shl edx, 8
mov rax, r8
sar rax, 8
movzx ecx, al
movzx eax, byte [rcx + rdi + 0xd9430]
xor edx, eax
shl edx, 8
movzx eax, r8b
movzx eax, byte [rax + rdi + 0xd9430]
xor edx, eax
xor dword [rbx + 0x428], edx
cmp rbp, 5
jle 0x1400118af
lea rcx, [rbx + 0x42c]
lea rdx, [rbp - 5]
mov eax, dword [rcx - 4]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140011a4c
jmp 0x1400118b3
lea rdx, [0x1400dc7a8]
lea rcx, [rsp + 0x38]
call fcn.1400080d8
nop
mov rcx, rax
call fcn.14002b004
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14002afc4
lea rdx, [0x1400f6da8]
lea rcx, [rsp + 0x20]
call fcn.14002eaac
nop
lea rdx, [0x1400dc778]
lea rcx, [rsp + 0x38]
call fcn.1400080d8
nop
mov rcx, rax
call fcn.14002b004
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14002afc4
lea rdx, [0x1400f6da8]
lea rcx, [rsp + 0x20]
call fcn.14002eaac
nop
lea rdx, [0x1400dc760]
lea rcx, [rsp + 0x38]
call fcn.1400080d8
nop
mov rcx, rax
call fcn.14002b004
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.14002afc4
lea rdx, [0x1400f6da8]
lea rcx, [rsp + 0x20]
call fcn.14002eaac
int3