Function at 0x1400d9c58
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea r14, [rcx + 0xe8b8]
mov r10, r8
mov rsi, rcx
xor edi, edi
mov ecx, 0x8000
mov qword [r14], rdi
cmp r9d, ecx
mov r8d, r9d
mov r12d, edx
mov rdx, r10
cmova r8d, ecx
mov rcx, qword [rsi + 0xe8c8]
call fcn.1400ed290
cmp qword [rsi + 0xe890], rdi
jne 0x1400d9cc2
mov ecx, 0x40004
call fcn.1400ec028
mov qword [rsi + 0xe890], rax
test r12b, r12b
jns 0x1400d9ce5
mov rcx, r14
call fcn.1400e1584
mov ebx, eax
test eax, eax
jne 0x1400d9ce1
xor edx, edx
mov rcx, rsi
call fcn.1400da9f8
jmp 0x1400d9ceb
dec ebx
jmp 0x1400d9ceb
mov ebx, dword [rsi + 0xe930]
mov r13, qword [rsi + 0xe8d8]
mov ebp, ebx
cmp rbp, r13
ja 0x1400d9e86
cmp rbp, qword [rsi + 0xe918]
ja 0x1400d9e86
mov ecx, 0x40
mov dword [rsi + 0xe930], ebx
call fcn.1400ebc6c
mov r15, rax
mov dword [rax + 0x38], edi
mov dword [rax + 0x10], edi
cmp rbp, r13
jne 0x1400d9e00
cmp ebx, 0x2000
ja 0x1400d9e79
lea rbx, [rsi + 0xe8d0]
mov rcx, rbx
call fcn.1400dd0a4
mov ecx, 0x40
call fcn.1400ebc6c
mov qword [rsp + 0x80], rax
mov dword [rax + 0x38], edi
mov dword [rax + 0x10], edi
mov rcx, qword [rbx]
mov rdx, qword [rsi + 0xe8d8]
mov qword [rcx + rdx*8 - 8], rax
mov ecx, dword [rsi + 0xe8d8]
dec ecx
mov dword [r15 + 0xc], ecx
mov rbx, qword [rsi + 0xe918]
mov rcx, qword [rsi + 0xe920]
inc rbx
mov qword [rsi + 0xe918], rbx
cmp rbx, rcx
jbe 0x1400d9dec
mov r8, qword [rsi + 0xe928]
test r8, r8
je 0x1400d9dac
cmp rbx, r8
ja 0x1400da11b
mov rax, rcx
add rcx, 0x20
shr rax, 2
add rcx, rax
cmp rbx, rcx
cmovbe rbx, rcx
mov rcx, qword [rsi + 0xe910]
lea rdx, [rbx*4]
call fcn.1400f7968
test rax, rax
je 0x1400da115
mov qword [rsi + 0xe910], rax
mov qword [rsi + 0xe920], rbx
mov rcx, qword [rsi + 0xe918]
mov rax, qword [rsi + 0xe910]
mov dword [rax + rcx*4 - 4], edi
jmp 0x1400d9e17
mov rax, qword [rsi + 0xe8d0]
mov rax, qword [rax + rbp*8]
mov qword [rsp + 0x80], rax
mov dword [r15 + 0xc], ebx
lea rbx, [rsi + 0xe8f0]
mov ecx, edi
mov r10d, edi
cmp qword [rsi + 0xe8f8], rdi
jbe 0x1400d9ea0
mov r9, rdi
mov rdx, qword [rbx]
mov r8d, ecx
mov eax, r10d
sub eax, ecx
mov ecx, eax
mov rax, qword [rdx + r9*8]
mov qword [rdx + rcx*8], rax
lea ecx, [r8 + 1]
mov rax, qword [rbx]
cmp qword [rax + r9*8], rdi
cmovne ecx, r8d
test ecx, ecx
je 0x1400d9e5b
mov qword [rax + r9*8], rdi
mov rax, qword [rsi + 0xe8f8]
inc r10d
mov r9d, r10d
cmp r9, rax
jb 0x1400d9e2f
test ecx, ecx
jne 0x1400d9ead
cmp rax, 0x2000
jbe 0x1400d9ea0
mov edx, 0x40
mov rcx, r15
call fcn.1400eb9e8
xor al, al
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, rbx
call fcn.1400dd0a4
mov ecx, 1
mov eax, ecx
mov rcx, qword [rsi + 0xe8f8]
sub rcx, rax
mov rax, qword [rbx]
mov qword [rax + rcx*8], r15
mov rcx, r14
call fcn.1400e1584
test r12b, 0x40
lea ebx, [rax + 0x102]
cmove ebx, eax
mov eax, dword [rsi + 0xc0]
add eax, ebx
and eax, dword [rsi + 0xe940]
mov dword [r15], eax
test r12b, 0x20
je 0x1400d9f04
mov rcx, r14
call fcn.1400e1584
mov dword [r15 + 4], eax
mov rcx, qword [rsi + 0xe910]
mov dword [rcx + rbp*4], eax
jmp 0x1400d9f1f
cmp rbp, qword [rsi + 0xe918]
jae 0x1400d9f19
mov rax, qword [rsi + 0xe910]
mov ecx, dword [rax + rbp*4]
jmp 0x1400d9f1b
mov ecx, edi
mov dword [r15 + 4], ecx
mov rcx, qword [rsi + 0xc8]
mov rax, qword [rsi + 0xc0]
cmp rcx, rax
je 0x1400d9f45
sub rcx, rax
mov eax, ebx
and rcx, qword [rsi + 0xe940]
cmp rcx, rax
mov al, 1
jbe 0x1400d9f48
mov al, dil
mov byte [r15 + 8], al
lea r12, [r15 + 0x14]
mov qword [r15 + 0x14], rdi
mov qword [r15 + 0x1c], rdi
mov qword [r15 + 0x28], rdi
test byte [rsp + 0x88], 0x10
mov eax, dword [r15 + 4]
mov dword [r15 + 0x24], eax
je 0x1400d9fc6
movsxd rcx, dword [r14]
mov ebx, edi
mov rax, qword [r14 + 0x10]
mov edx, dword [r14 + 4]
mov esi, dword [rax + rcx]
mov ecx, 0x10
sub ecx, edx
bswap esi
shr esi, cl
lea ecx, [rdx + 7]
mov eax, ecx
shr esi, 9
shr eax, 3
add dword [r14], eax
and ecx, 7
mov dword [r14 + 4], ecx
mov ecx, ebx
mov eax, 1
shl eax, cl
and eax, 0x7f
test sil, al
je 0x1400d9fbb
mov rcx, r14
call fcn.1400e1584
mov dword [r12], eax
inc ebx
add r12, 4
cmp ebx, 7
jb 0x1400d9f9e
cmp rbp, r13
jne 0x1400da0ff
mov rcx, r14
call fcn.1400e1584
mov ebx, eax
lea ecx, [rbx - 1]
cmp ecx, 0xfffe
ja 0x1400d9e86
mov edx, dword [r14]
add edx, ebx
cmp edx, dword [rsp + 0x98]
ja 0x1400d9e86
mov edx, ebx
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rdi
call fcn.1400c598c
mov rsi, qword [rsp + 0x20]
mov r8d, edi
test ebx, ebx
je 0x1400da072
movsxd rcx, dword [r14]
lea eax, [rcx + 3]
cmp eax, 0x8000
jae 0x1400da0d2
mov rax, qword [r14 + 0x10]
mov edx, dword [rax + rcx]
mov ecx, 0x10
sub ecx, dword [r14 + 4]
mov eax, r8d
inc r8d
bswap edx
shr edx, cl
shr edx, 8
mov byte [rax + rsi], dl
mov ecx, dword [r14 + 4]
add ecx, 8
mov eax, ecx
and ecx, 7
shr eax, 3
add dword [r14], eax
mov dword [r14 + 4], ecx
cmp r8d, ebx
jb 0x1400da026
mov dl, dil
cmp ebx, 1
jbe 0x1400da08e
lea r9, [rsi + 1]
lea r10d, [rbx - 1]
xor dl, byte [r9]
inc r9
sub r10, 1
jne 0x1400da082
cmp dl, byte [rsi]
jne 0x1400da0c0
mov r8, rbx
mov rdx, rsi
or ecx, 0xffffffff
call fcn.1400dfb50
lea rdx, [0x140163640]
not eax
mov rcx, rdx
cmp dword [rcx + 4], eax
jne 0x1400da0b5
cmp dword [rcx], ebx
je 0x1400da0e8
inc edi
add rcx, 0xc
cmp edi, 6
jb 0x1400da0ac
mov rbx, qword [rsp + 0x80]
mov rcx, rsi
call fcn.1400feb88
jmp 0x1400da107
test rsi, rsi
je 0x1400d9e86
mov rcx, rsi
call fcn.1400feb88
jmp 0x1400d9e86
mov rbx, qword [rsp + 0x80]
mov ecx, edi
lea rcx, [rcx + rcx*2]
mov ecx, dword [rdx + rcx*4 + 8]
mov dword [rbx + 0x10], ecx
jmp 0x1400da0c8
mov rbx, qword [rsp + 0x80]
mov ecx, dword [rbx + 0x10]
mov al, 1
mov dword [r15 + 0x10], ecx
jmp 0x1400d9e88
call fcn.1400ceca8
int3
lea rdx, str.Maximum_allowed_array_size___u__is_exceeded
lea rcx, [0x140162f60]
call fcn.1400ced74
call fcn.1400ceca8
int3