Function at 0x140066fa0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x48], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov ebp, edx
mov rdi, r8
mov eax, r9d
add rbp, rcx
add rax, r8
mov esi, edx
mov qword [rsp + 0x58], rax
mov r13, rcx
cmp r9d, 0x12c
jb 0x1400676ab
cmp rcx, 0x10001
ja 0x140066ff8
mov eax, 0xc00000bb
jmp 0x1400676b0
mov r12, qword [rsp + 0xe8]
xor edx, edx
mov rcx, r12
mov r8d, 0x40000
call sub.msvcrt.dll_memset
xor edx, edx
mov qword [rsp + 0x48], rdi
lea rdi, [r12 + 0x147b20]
mov qword [r12 + 0x40000], rdx
mov qword [rsp + 0x60], rdx
mov rbx, r13
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rdi
mov dword [rsp + 0x70], esi
nop dword [rax + rax]
mov qword [rsp + 0x38], rdx
lea rcx, [r12 + 0x147220]
mov qword [rsp + 0x40], rdx
mov r8d, 0x800
xor edx, edx
call sub.msvcrt.dll_memset
lea rax, [rbx + 0x10000]
mov rcx, rbp
cmp rax, rbp
lea r14, [rdi + 4]
mov r15d, 1
cmovbe rcx, rax
add rsi, rbx
mov qword [rsp + 0x50], rcx
lea r11, [rcx - 5]
cmp r11, rsi
mov qword [rsp + 0x30], r11
cmovb rsi, r11
mov qword [rsp + 0xc0], rsi
cmp rbx, r13
jne 0x1400670cc
movzx eax, byte [rbx]
mov r15d, 2
inc dword [r12 + rax*4 + 0x147220]
movzx eax, byte [rbx]
inc rbx
mov byte [r14], al
inc r14
cmp rbx, r11
jae 0x140067590
mov rax, rbx
lea rsi, [0x140000000]
sub rax, r13
mov r10, rbx
cqo
and edx, 0x1ffff
lea r9, [rdx + rax]
and r9d, 0x1ffff
sub r9, rdx
nop dword [rax + rax]
movzx ecx, byte [r10 + 2]
lea r8, [r10 + 1]
movzx edx, word [rsi + rcx*2 + 0xa9d90]
movzx ecx, byte [r8]
movzx eax, word [rsi + rcx*2 + 0xa9b90]
xor rdx, rax
movzx eax, byte [r10]
movzx eax, word [rsi + rax*2 + 0xa9990]
xor rdx, rax
mov rax, qword [r12 + rdx*8]
mov qword [r12 + rdx*8], r10
mov r10, r8
mov qword [r12 + r9*8 + 0x40000], rax
inc r9
and r9d, 0x1ffff
cmp r8, r11
jb 0x140067100
mov rsi, qword [rsp + 0xc0]
cmp rbx, rsi
jb 0x14006717f
cmp rbx, r11
jae 0x14006758b
mov r8, rbx
lea rcx, [rsp + 0x60]
mov rdx, r11
call fcn.140065f70
mov qword [rsp + 0xc0], rax
mov esi, dword [rbx]
mov rax, rbx
sub rax, r13
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r12 + rax*8 + 0x40000]
lea rcx, [rdx + 0x10000]
cmp rcx, rbx
jbe 0x14006743b
mov eax, dword [rdx]
xor eax, esi
jne 0x1400671d0
xor eax, eax
lea rdi, [rbx - 0x10000]
mov r10, rbx
mov r9d, eax
lea r11d, [rax + 3]
jmp 0x1400672af
test eax, 0xffffff
je 0x14006725f
sub rdx, r13
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r12 + rax*8 + 0x40000]
lea rax, [rdx + 0x10000]
cmp rax, rbx
jbe 0x14006743b
mov eax, dword [rdx]
xor eax, esi
je 0x1400671b8
test eax, 0xffffff
je 0x14006725f
sub rdx, r13
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r12 + rax*8 + 0x40000]
lea rax, [rdx + 0x10000]
cmp rax, rbx
jbe 0x14006743b
mov eax, dword [rdx]
xor eax, esi
je 0x1400671b8
test eax, 0xffffff
jne 0x14006743b
xor eax, eax
mov qword [rsp + 0xf8], rdx
mov r10, rbx
lea rdi, [rbx - 0x10000]
mov r9d, eax
lea r11d, [rax + 3]
sub rdx, r13
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r12 + rax*8 + 0x40000]
cmp rdx, rdi
jbe 0x14006740f
cmp esi, dword [rdx]
jne 0x140067402
mov rbx, r10
mov rax, rbx
add rdx, 4
add rax, 0x24
add rbx, 4
cmp rax, rbp
jae 0x14006733a
mov ecx, dword [rdx]
mov eax, dword [rbx]
cmp eax, ecx
jne 0x1400673c4
mov ecx, dword [rdx + 4]
mov eax, dword [rbx + 4]
cmp eax, ecx
jne 0x1400673bc
mov ecx, dword [rdx + 8]
mov eax, dword [rbx + 8]
cmp eax, ecx
jne 0x1400673b2
mov ecx, dword [rdx + 0xc]
mov eax, dword [rbx + 0xc]
cmp eax, ecx
jne 0x1400673a8
mov ecx, dword [rdx + 0x10]
mov eax, dword [rbx + 0x10]
cmp eax, ecx
jne 0x14006739e
mov ecx, dword [rdx + 0x14]
mov eax, dword [rbx + 0x14]
cmp eax, ecx
jne 0x140067394
mov ecx, dword [rdx + 0x18]
mov eax, dword [rbx + 0x18]
cmp eax, ecx
jne 0x14006738a
mov ecx, dword [rdx + 0x1c]
mov eax, dword [rbx + 0x1c]
cmp eax, ecx
jne 0x140067380
add rbx, 0x20
add rdx, 0x20
lea rax, [rbx + 0x20]
cmp rax, rbp
jb 0x1400672c3
cmp rbx, rbp
jae 0x140067352
nop
movzx eax, byte [rdx]
cmp byte [rbx], al
jne 0x140067352
inc rbx
inc rdx
cmp rbx, rbp
jb 0x140067340
sub rbx, r10
mov rax, rdx
sub rdx, rbx
cmp rbx, r11
jbe 0x1400673ff
mov qword [rsp + 0xf8], rdx
mov r11, rbx
mov rcx, rdx
cmp rax, r10
ja 0x140067417
jmp 0x140067402
add rbx, 0x1c
add rdx, 0x1c
jmp 0x1400673c4
add rbx, 0x18
add rdx, 0x18
jmp 0x1400673c4
add rbx, 0x14
add rdx, 0x14
jmp 0x1400673c4
add rbx, 0x10
add rdx, 0x10
jmp 0x1400673c4
add rbx, 0xc
add rdx, 0xc
jmp 0x1400673c4
add rbx, 8
add rdx, 8
jmp 0x1400673c4
add rbx, 4
add rdx, 4
cmp al, cl
jne 0x140067352
movzx eax, byte [rdx + 1]
cmp byte [rbx + 1], al
je 0x1400673dc
inc rbx
inc rdx
jmp 0x140067352
movzx eax, byte [rdx + 2]
cmp byte [rbx + 2], al
je 0x1400673f2
add rbx, 2
add rdx, 2
jmp 0x140067352
add rbx, 3
add rdx, 3
jmp 0x140067352
add r9, rbx
inc r9
cmp r9, 0xc
jb 0x14006727a
mov rcx, qword [rsp + 0xf8]
mov rdx, r10
lea rbx, [r10 + r11]
sub rdx, rcx
cmp r11, 3
jne 0x140067487
cmp rdx, 0x1000
jbe 0x140067487
mov rdi, qword [rsp + 0xf0]
mov rbx, r10
movzx eax, sil
inc rbx
inc dword [r12 + rax*4 + 0x147220]
mov byte [r14], al
inc r14
lea eax, [r15 + r15]
test r15d, r15d
jle 0x140067466
mov r11, qword [rsp + 0x30]
mov r15d, eax
jmp 0x140067151
mov dword [rdi], eax
mov r11, qword [rsp + 0x30]
mov rdi, r14
mov qword [rsp + 0xf0], r14
mov r15d, 1
add r14, 4
jmp 0x140067151
cmp rdx, 0x100
jb 0x1400674ac
mov rax, rdx
lea rcx, [0x140000000]
shr rax, 8
movzx ecx, byte [rax + rcx + 0xa9f90]
add rcx, 8
jmp 0x1400674bb
lea rax, [0x140000000]
movzx ecx, byte [rdx + rax + 0xa9f90]
add qword [rsp + 0x38], rcx
lea r9, [r11 - 3]
mov eax, 1
lea r8, [r14 + 1]
shl rax, cl
sub rdx, rax
shl cl, 4
mov rax, r9
cmp r9, 0xf
jb 0x14006753f
add cl, 0xf
sub rax, 0xf
mov byte [r14], cl
lea r14, [r8 + 1]
cmp rax, 0xff
jae 0x140067504
mov byte [r8], al
mov eax, 1
add qword [rsp + 0x40], rax
jmp 0x140067547
mov byte [r8], 0xff
cmp r9, 0x10000
jae 0x140067525
mov eax, 3
mov word [r14], r9w
add qword [rsp + 0x40], rax
lea r14, [r8 + 3]
jmp 0x140067547
xor eax, eax
mov dword [r8 + 3], r9d
mov word [r14], ax
mov eax, 7
add qword [rsp + 0x40], rax
lea r14, [r8 + 7]
jmp 0x140067547
add cl, al
mov byte [r14], cl
mov r14, r8
movzx eax, cl
inc dword [r12 + rax*4 + 0x147620]
lea eax, [r15*2 + 1]
mov word [r14], dx
add r14, 2
test r15d, r15d
jle 0x14006757c
mov rdi, qword [rsp + 0xf0]
mov r15d, eax
mov r11, qword [rsp + 0x30]
jmp 0x140067151
mov rdx, qword [rsp + 0xf0]
mov dword [rdx], eax
jmp 0x140067468
mov rcx, qword [rsp + 0x50]
cmp rbx, rcx
jae 0x1400675d9
nop word [rax + rax]
movzx eax, byte [rbx]
inc dword [r12 + rax*4 + 0x147220]
movzx eax, byte [rbx]
inc rbx
mov byte [r14], al
inc r14
lea eax, [r15 + r15]
test r15d, r15d
jle 0x1400675c5
mov r15d, eax
jmp 0x1400675d4
mov dword [rdi], eax
mov r15d, 1
mov rdi, r14
add r14, 4
cmp rbx, rcx
jb 0x1400675a0
test r15d, r15d
jle 0x1400675ed
nop
lea r15d, [r15*2 + 1]
test r15d, r15d
jg 0x1400675e0
lea eax, [r15*2 + 1]
mov dword [rdi], eax
cmp rbx, rbp
jb 0x14006760b
inc dword [r12 + 0x147620]
mov edi, 1
jmp 0x14006760f
xor eax, eax
mov edi, eax
lea rcx, [r12 + 0x140000]
call fcn.140066010
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
add rdx, 0x1f
add rdx, rax
mov rax, qword [rsp + 0x40]
shr rdx, 5
lea rax, [rax + rdx*4]
lea rdx, [rcx + 0x102]
add rdx, rax
cmp rdx, qword [rsp + 0x58]
jae 0x1400676ab
lea rdx, [r12 + 0x147b20]
mov dword [rsp + 0x20], edi
mov r9, rcx
mov qword [rsp + 0xf0], rdx
lea rcx, [r12 + 0x140000]
mov r8, r14
call fcn.140066430
mov esi, dword [rsp + 0x100]
test edi, edi
lea rdi, [r12 + 0x147b20]
mov qword [rsp + 0x48], rax
mov rcx, rax
mov edx, 0
je 0x140067050
mov rax, qword [rsp + 0xe0]
sub ecx, dword [rsp + 0xd0]
mov dword [rax], ecx
xor eax, eax
jmp 0x1400676b0
mov eax, 0xc0000023
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret