Function at 0x140079d60
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov rbx, rcx
mov rbp, rdx
mov edi, r8d
mov rsi, r9
xor r8d, r8d
mov dword [rbx + 0x10], r8d
mov dword [rbx + 0x14], r8d
mov r8d, 0x8000
cmp edi, 0x8000
cmovl r8d, edi
mov dword [rsp + 0x20], r8d
mov r8, qword [rbx + 8]
mov rcx, rbp
xor edx, edx
xor r9d, r9d
call fcn.1400a1540
xor r14d, r14d
mov ecx, 1
cmp edi, 1
jle 0x140079df7
test rbp, rbp
je 0x140079dda
test edi, edi
jl 0x140079dda
cmp dword [rbp + 8], edi
jl 0x140079dda
mov edx, ecx
movzx edx, byte [rbp + rdx + 0x10]
xor edx, r14d
movzx r14d, dl
inc ecx
cmp ecx, edi
jl 0x140079dc4
jmp 0x140079df7
cmp ecx, dword [rbp + 8]
jae 0x14007a1a7
mov edx, ecx
movzx edx, byte [rbp + rdx + 0x10]
xor edx, r14d
movzx r14d, dl
inc ecx
cmp ecx, edi
jl 0x140079dda
mov rcx, rbx
mov edx, 8
call fcn.140078680
xor ecx, ecx
mov dword [rsi + 0x30], ecx
cmp dword [rbp + 8], 0
jbe 0x14007a1a7
movzx ecx, byte [rbp + 0x10]
cmp r14d, ecx
jne 0x14007a114
mov rcx, rbx
mov rdx, rbp
mov r8d, edi
call fcn.14007a600
mov ebp, eax
test ebp, ebp
je 0x140079ea7
lea rcx, [0x1402296c8]
call fcn.140003c40
mov r14, rax
mov rcx, r14
call fcn.14007b560
mov rdx, r14
mov dword [rdx + 0x18], 0x36
mov rcx, qword [rdx + 8]
mov dword [rcx + 0xc], ebp
mov dword [rcx + 8], 3
mov rcx, qword [rdx + 0x10]
mov dword [rcx + 8], 3
xor edi, edi
mov rcx, qword [rsi + 8]
inc dword [rcx + 0x14]
mov rax, qword [rcx + 8]
mov r8d, dword [rcx + 0x10]
mov r10d, dword [rax + 8]
cmp r10d, r8d
jbe 0x140079e9f
lea r10d, [r8 + 1]
mov dword [rcx + 0x10], r10d
mov ecx, r8d
lea rcx, [rax + rcx*8 + 0x10]
call fcn.140003e50
jmp 0x140079ea4
call fcn.1401a7090
inc dword [rsi + 0x30]
mov rcx, rbx
call fcn.1400786a0
mov ebp, eax
mov rcx, rbx
mov edx, 1
call fcn.140078680
test ebp, 0x8000
je 0x140079f48
mov rcx, rbx
call fcn.14007a4e0
movsxd rbp, eax
movabs r14, 0x100000000
and rbp, r14
xor r14d, r14d
jmp 0x140079f3b
mov r15, qword [rsi + 0x20]
mov rcx, rbx
call fcn.1400786a0
sar eax, 8
movzx edx, al
inc dword [r15 + 0x14]
mov rcx, qword [r15 + 8]
mov eax, dword [r15 + 0x10]
mov r8d, dword [rcx + 8]
cmp r8d, eax
jbe 0x140079f1c
lea r8d, [rax + 1]
mov dword [r15 + 0x10], r8d
mov byte [rcx + rax + 0x10], dl
jmp 0x140079f24
mov rcx, r15
call fcn.140163780
mov ecx, dword [rbx + 0x14]
add ecx, 8
mov eax, ecx
sar eax, 3
add dword [rbx + 0x10], eax
and ecx, 7
mov dword [rbx + 0x14], ecx
inc r14d
cmp dword [rbx + 0x10], edi
jge 0x140079f48
movsxd rcx, r14d
cmp rcx, rbp
jl 0x140079ee7
cmp dword [rbx + 0x10], edi
jge 0x14007a114
lea rcx, [0x1402296c8]
call fcn.140003c40
mov rbp, rax
mov rcx, rbp
call fcn.14007b560
mov rcx, rbx
call fcn.1400786a0
test eax, 0x8000
jne 0x140079f93
sar eax, 0xc
mov dword [rbp + 0x18], eax
mov ecx, dword [rbx + 0x14]
add ecx, 4
mov eax, ecx
sar eax, 3
add dword [rbx + 0x10], eax
and ecx, 7
mov dword [rbx + 0x14], ecx
jmp 0x140079fb2
mov ecx, eax
sar ecx, 0xa
add ecx, 0xffffffe8
mov dword [rbp + 0x18], ecx
mov ecx, dword [rbx + 0x14]
add ecx, 6
mov eax, ecx
sar eax, 3
add dword [rbx + 0x10], eax
and ecx, 7
mov dword [rbx + 0x14], ecx
mov rcx, qword [0x140465b90]
mov rcx, qword [rcx + 8]
mov eax, dword [rbp + 0x18]
cmp eax, dword [rcx + 8]
jae 0x14007a1a7
test byte [rcx + rax + 0x10], 4
je 0x14007a003
mov rcx, rbx
call fcn.1400786a0
sar eax, 0xf
xor r8d, r8d
cmp eax, 1
sete r8b
mov byte [rbp + 0x1c], r8b
mov r8d, dword [rbx + 0x14]
inc r8d
mov edx, r8d
sar edx, 3
add dword [rbx + 0x10], edx
and r8d, 7
mov dword [rbx + 0x14], r8d
jmp 0x14007a007
mov byte [rbp + 0x1c], 0
mov r8, qword [rbp + 8]
mov dword [r8 + 8], 3
mov r8, qword [rbp + 0x10]
mov dword [r8 + 8], 3
mov r8, qword [0x140465b90]
mov r8, qword [r8 + 8]
mov edx, dword [rbp + 0x18]
cmp edx, dword [r8 + 8]
jae 0x14007a1a7
movzx r14d, byte [r8 + rdx + 0x10]
and r14d, 3
jle 0x14007a0d4
movzx r8d, byte [rbp + 0x1c]
mov rdx, qword [rbp + 8]
mov rcx, rbx
call fcn.14007a1b0
cmp r14d, 2
jne 0x14007a071
movzx r8d, byte [rbp + 0x1c]
mov rdx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.14007a1b0
jmp 0x14007a0d4
mov rcx, qword [rbp + 8]
cmp dword [rcx + 8], 1
jne 0x14007a0d4
mov rdx, qword [0x140465b90]
mov rdx, qword [rdx + 8]
mov eax, dword [rbp + 0x18]
cmp eax, dword [rdx + 8]
jae 0x14007a1a7
test byte [rdx + rax + 0x10], 0x18
je 0x14007a0d4
mov edx, dword [rcx + 0xc]
cmp edx, 0x100
jl 0x14007a0ac
add edx, 0xffffff00
jmp 0x14007a0d1
cmp edx, 0x88
jl 0x14007a0bc
add edx, 0xfffffef8
jmp 0x14007a0ce
cmp edx, 0x10
jl 0x14007a0c6
add edx, 0xfffffff8
jmp 0x14007a0ce
cmp edx, 8
jl 0x14007a0ce
add edx, 0xfffffff0
add edx, dword [rsi + 0x30]
mov dword [rcx + 0xc], edx
inc dword [rsi + 0x30]
mov rcx, qword [rsi + 8]
inc dword [rcx + 0x14]
mov rdx, qword [rcx + 8]
mov eax, dword [rcx + 0x10]
cmp dword [rdx + 8], eax
jbe 0x14007a103
lea r8d, [rax + 1]
mov dword [rcx + 0x10], r8d
mov ecx, eax
lea rcx, [rdx + rcx*8 + 0x10]
mov rdx, rbp
call fcn.140003e50
jmp 0x14007a10b
mov rdx, rbp
call fcn.1401a7090
cmp dword [rbx + 0x10], edi
jl 0x140079f51
lea rcx, [0x1402296c8]
call fcn.140003c40
mov rbp, rax
mov rcx, rbp
call fcn.14007b560
mov rdx, rbp
mov dword [rdx + 0x18], 0x16
mov rcx, qword [rdx + 8]
mov dword [rcx + 8], 3
mov rcx, qword [rdx + 0x10]
mov dword [rcx + 8], 3
mov rcx, qword [rsi + 8]
inc dword [rcx + 0x14]
mov rax, qword [rcx + 8]
mov r8d, dword [rcx + 0x10]
cmp dword [rax + 8], r8d
jbe 0x14007a177
lea r10d, [r8 + 1]
mov dword [rcx + 0x10], r10d
mov ecx, r8d
lea rcx, [rax + rcx*8 + 0x10]
call fcn.140003e50
jmp 0x14007a17c
call fcn.1401a7090
inc dword [rsi + 0x30]
test edi, edi
je 0x14007a19a
mov rcx, rbx
mov rdx, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
jmp 0x14007a2e0
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
call fcn.1401090a0
int3
push r15
push r14
push rdi
push rsi
push rbp
push rbx
sub rsp, 0x28
mov rbx, qword [rdx + 8]
mov rdx, rbx
mov esi, dword [rdx + 0x14]
mov rdi, rbx
xor ebp, ebp
jmp 0x14007a495
mov r8d, dword [r14 + 0x18]
mov eax, r8d
test eax, eax
je 0x14007a312
cmp eax, 1
je 0x14007a330
jmp 0x14007a350
cmp byte [r14 + 0x1c], 0
jne 0x14007a321
mov r8d, 0x29
jmp 0x14007a327
mov r8d, 0x28
mov dword [r14 + 0x18], r8d
jmp 0x14007a495
mov rdx, r14
cmp byte [rdx + 0x1c], 0
jne 0x14007a341
mov r8d, 0x2b
jmp 0x14007a347
mov r8d, 0x2a
mov dword [rdx + 0x18], r8d
jmp 0x14007a495
mov r15, qword [0x140465b90]
mov rcx, qword [r15 + 8]
cmp r8d, dword [rcx + 8]
jae 0x14007a4d2
mov r8d, r8d
test byte [rcx + r8 + 0x10], 0x40
je 0x14007a495
mov dword [rsp + 0x20], edx
mov rdx, qword [rdi + 8]
mov r8, r14
lea rcx, [0x1402200a8]
xor r9d, r9d
call fcn.1401e68b0
inc eax
mov ecx, dword [rdi + 0x10]
cmp eax, ecx
jge 0x14007a3e6
mov rdx, qword [r15 + 8]
mov r8, rdx
cmp eax, ecx
jae 0x14007a4c6
mov r10, qword [rdi + 8]
cmp eax, dword [r10 + 8]
jae 0x14007a4d2
mov r9d, eax
mov r10, qword [r10 + r9*8 + 0x10]
mov r10d, dword [r10 + 0x18]
cmp r10d, dword [r8 + 8]
jae 0x14007a4d2
movzx r8d, byte [r8 + r10 + 0x10]
test r8b, 0x38
jne 0x14007a495
test r8b, 0x40
jne 0x14007a3e6
inc eax
cmp eax, ecx
jl 0x14007a39b
mov eax, dword [r14 + 0x18]
lea ecx, [rax - 2]
cmp ecx, 5
ja case.default.0x14007a408
mov eax, ecx
lea rcx, [0x1403b0ff0]
mov ecx, dword [rcx + rax*4]
lea rdx, [0x14007a2ec]
add rcx, rdx
jmp rcx
cmp eax, 0x1b
jne 0x14007a495
mov rcx, r14
cmp byte [rcx + 0x1c], 0
jne 0x14007a48d
jmp 0x14007a486
mov eax, 0x35
jmp 0x14007a492
mov eax, 0x34
mov dword [rcx + 0x18], eax
cmp esi, dword [rbx + 0x14]
jne 0x14007a4cc
mov edx, dword [rbx + 0x10]
cmp ebp, edx
jae 0x14007a4b9
mov r8, qword [rbx + 8]
cmp ebp, dword [r8 + 8]
jae 0x14007a4d2
mov ecx, ebp
mov r14, qword [r8 + rcx*8 + 0x10]
inc ebp
jmp 0x14007a300
add rsp, 0x28
pop rbx
pop rbp
pop rsi
pop rdi
pop r14
pop r15
ret
call fcn.1400b5f50
int3
call fcn.1400b6710
int3
call fcn.1401090a0
int3
cmp dword [rcx], eax
add byte [rax], al
pop rdx
add dword [rax], eax
add byte [rcx + 0x29000001], bh
add byte [rax], al
add byte [rax], al
invalid
add byte [rax], al
invalid
add byte [rax], al
add byte [rsi + 0x63000000], al
add byte [rax], al
add byte [rax], al
jno 0x1403b11a6
add byte [rax], al
xchg byte [rax], al
add byte [rax], al
add byte [rdx], ch
push 0