Function at 0x14003bbf0
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 0x14003c2fb
cmp rcx, 0x10001
ja 0x14003bc48
mov eax, 0xc00000bb
jmp 0x14003c300
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 0x14003bd1c
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 0x14003c1e1
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 + 0x72500]
movzx ecx, byte [r8]
movzx eax, word [rsi + rcx*2 + 0x72300]
xor rdx, rax
movzx eax, byte [r10]
movzx eax, word [rsi + rax*2 + 0x72100]
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 0x14003bd50
mov rsi, qword [rsp + 0xc0]
cmp rbx, rsi
jb 0x14003bdcf
cmp rbx, r11
jae 0x14003c1dc
mov r8, rbx
lea rcx, [rsp + 0x60]
mov rdx, r11
call fcn.140039d10
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 0x14003c08b
mov eax, dword [rdx]
xor eax, esi
jne 0x14003be20
xor eax, eax
lea rdi, [rbx - 0x10000]
mov r10, rbx
mov r9d, eax
lea r11d, [rax + 3]
jmp 0x14003beff
test eax, 0xffffff
je 0x14003beaf
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 0x14003c08b
mov eax, dword [rdx]
xor eax, esi
je 0x14003be08
test eax, 0xffffff
je 0x14003beaf
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 0x14003c08b
mov eax, dword [rdx]
xor eax, esi
je 0x14003be08
test eax, 0xffffff
jne 0x14003c08b
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 0x14003c05f
cmp esi, dword [rdx]
jne 0x14003c052
mov rbx, r10
mov rax, rbx
add rdx, 4
add rax, 0x24
add rbx, 4
cmp rax, rbp
jae 0x14003bf8a
mov ecx, dword [rdx]
mov eax, dword [rbx]
cmp eax, ecx
jne 0x14003c014
mov ecx, dword [rdx + 4]
mov eax, dword [rbx + 4]
cmp eax, ecx
jne 0x14003c00c
mov ecx, dword [rdx + 8]
mov eax, dword [rbx + 8]
cmp eax, ecx
jne 0x14003c002
mov ecx, dword [rdx + 0xc]
mov eax, dword [rbx + 0xc]
cmp eax, ecx
jne 0x14003bff8
mov ecx, dword [rdx + 0x10]
mov eax, dword [rbx + 0x10]
cmp eax, ecx
jne 0x14003bfee
mov ecx, dword [rdx + 0x14]
mov eax, dword [rbx + 0x14]
cmp eax, ecx
jne 0x14003bfe4
mov ecx, dword [rdx + 0x18]
mov eax, dword [rbx + 0x18]
cmp eax, ecx
jne 0x14003bfda
mov ecx, dword [rdx + 0x1c]
mov eax, dword [rbx + 0x1c]
cmp eax, ecx
jne 0x14003bfd0
add rbx, 0x20
add rdx, 0x20
lea rax, [rbx + 0x20]
cmp rax, rbp
jb 0x14003bf13
cmp rbx, rbp
jae 0x14003bfa2
nop
movzx eax, byte [rdx]
cmp byte [rbx], al
jne 0x14003bfa2
inc rbx
inc rdx
cmp rbx, rbp
jb 0x14003bf90
sub rbx, r10
mov rax, rdx
sub rdx, rbx
cmp rbx, r11
jbe 0x14003c04f
mov qword [rsp + 0xf8], rdx
mov r11, rbx
mov rcx, rdx
cmp rax, r10
ja 0x14003c067
jmp 0x14003c052
add rbx, 0x1c
add rdx, 0x1c
jmp 0x14003c014
add rbx, 0x18
add rdx, 0x18
jmp 0x14003c014
add rbx, 0x14
add rdx, 0x14
jmp 0x14003c014
add rbx, 0x10
add rdx, 0x10
jmp 0x14003c014
add rbx, 0xc
add rdx, 0xc
jmp 0x14003c014
add rbx, 8
add rdx, 8
jmp 0x14003c014
add rbx, 4
add rdx, 4
cmp al, cl
jne 0x14003bfa2
movzx eax, byte [rdx + 1]
cmp byte [rbx + 1], al
je 0x14003c02c
inc rbx
inc rdx
jmp 0x14003bfa2
movzx eax, byte [rdx + 2]
cmp byte [rbx + 2], al
je 0x14003c042
add rbx, 2
add rdx, 2
jmp 0x14003bfa2
add rbx, 3
add rdx, 3
jmp 0x14003bfa2
add r9, rbx
inc r9
cmp r9, 0xc
jb 0x14003beca
mov rcx, qword [rsp + 0xf8]
mov rdx, r10
lea rbx, [r10 + r11]
sub rdx, rcx
cmp r11, 3
jne 0x14003c0d7
cmp rdx, 0x1000
jbe 0x14003c0d7
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 0x14003c0b6
mov r11, qword [rsp + 0x30]
mov r15d, eax
jmp 0x14003bda1
mov dword [rdi], eax
mov r11, qword [rsp + 0x30]
mov rdi, r14
mov qword [rsp + 0xf0], r14
mov r15d, 1
add r14, 4
jmp 0x14003bda1
cmp rdx, 0x100
jb 0x14003c0fc
mov rax, rdx
lea rcx, [0x140000000]
shr rax, 8
movzx ecx, byte [rax + rcx + 0x72700]
add rcx, 8
jmp 0x14003c10b
lea rax, [0x140000000]
movzx ecx, byte [rdx + rax + 0x72700]
add qword [rsp + 0x38], rcx
lea r8, [r14 + 1]
mov eax, 1
shl rax, cl
sub rdx, rax
shl cl, 4
lea rax, [r11 - 3]
cmp rax, 0xf
jb 0x14003c190
add cl, 0xf
sub rax, 0xf
mov byte [r14], cl
lea r14, [r8 + 1]
cmp rax, 0xff
jae 0x14003c151
mov byte [r8], al
mov eax, 1
add qword [rsp + 0x40], rax
jmp 0x14003c198
add rax, 0xf
mov byte [r8], 0xff
cmp rax, 0x10000
jae 0x14003c175
mov word [r14], ax
mov eax, 3
add qword [rsp + 0x40], rax
lea r14, [r8 + 3]
jmp 0x14003c198
xor r9d, r9d
mov dword [r8 + 3], eax
mov eax, 7
mov word [r14], r9w
add qword [rsp + 0x40], rax
lea r14, [r8 + 7]
jmp 0x14003c198
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 0x14003c1cd
mov rdi, qword [rsp + 0xf0]
mov r15d, eax
mov r11, qword [rsp + 0x30]
jmp 0x14003bda1
mov rdx, qword [rsp + 0xf0]
mov dword [rdx], eax
jmp 0x14003c0b8
mov rcx, qword [rsp + 0x50]
cmp rbx, rcx
jae 0x14003c229
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 0x14003c215
mov r15d, eax
jmp 0x14003c224
mov dword [rdi], eax
mov r15d, 1
mov rdi, r14
add r14, 4
cmp rbx, rcx
jb 0x14003c1f0
test r15d, r15d
jle 0x14003c23d
nop
lea r15d, [r15*2 + 1]
test r15d, r15d
jg 0x14003c230
lea eax, [r15*2 + 1]
mov dword [rdi], eax
cmp rbx, rbp
jb 0x14003c25b
inc dword [r12 + 0x147620]
mov edi, 1
jmp 0x14003c25f
xor eax, eax
mov edi, eax
lea rcx, [r12 + 0x140000]
call fcn.14003ac70
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 0x14003c2fb
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.14003b080
mov esi, dword [rsp + 0x100]
test edi, edi
lea rdi, [r12 + 0x147b20]
mov qword [rsp + 0x48], rax
mov rcx, rax
mov edx, 0
je 0x14003bca0
mov rax, qword [rsp + 0xe0]
sub ecx, dword [rsp + 0xd0]
mov dword [rax], ecx
xor eax, eax
jmp 0x14003c300
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