Function at 0x1400f03b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rsi, r9
mov rdi, r8
mov ebp, edx
mov r14, rcx
test rcx, rcx
je 0x1400f089d
mov r12d, dword [rsp + 0xa0]
xor eax, eax
mov r15d, dword [rsp + 0x98]
mov r13, qword [rsp + 0x90]
cmp edx, 2
jne 0x1400f044b
mov r8, r13
movzx ebx, ax
test r13, r13
je 0x1400f06f3
movzx edx, byte [r13]
imul ebx, edx, 0x1e
test dl, dl
je 0x1400f06f3
nop
movzx eax, bx
lea r8, [r8 + 1]
shr ax, 3
movzx ecx, bx
shl cx, 5
add cx, ax
movsx eax, dl
movzx edx, byte [r8]
add cx, ax
xor bx, cx
test dl, dl
jne 0x1400f0420
jmp 0x1400f06f3
cmp ebp, 5
jne 0x1400f04ab
cmp r15d, r12d
jne 0x1400f0474
cmp r15d, 1
je 0x1400f04d3
test r15d, r15d
jne 0x1400f0477
mov rdx, rdi
call fcn.1400e78c0
mov rax, qword [0x140189648]
jmp 0x1400f089f
test r15d, r15d
jns 0x1400f048d
mov rdx, rdi
call fcn.1400e78c0
mov rax, qword [0x140189640]
jmp 0x1400f089f
movzx ebx, r12w
lea ecx, [r15 + 0x4f]
sub bx, r15w
cmp r12d, 0xffffffff
cmove bx, cx
add bx, word [r8 + 2]
jmp 0x1400f06f3
cmp ebp, 4
jne 0x1400f069f
movzx edx, byte [r8]
cmp dl, 1
je 0x1400f0503
movzx ecx, byte [r9]
cmp cl, 1
je 0x1400f06b0
cmp rdi, rsi
jne 0x1400f04db
dec dword [r8 + 4]
mov rax, rdi
jmp 0x1400f089f
movzx eax, cl
cmp dl, 4
jne 0x1400f04f3
cmp cl, dl
je 0x1400f04f3
mov rax, rdi
mov rdi, rsi
mov rsi, rax
movzx eax, dl
cmp al, 4
jne 0x1400f0516
cmp rdi, qword [rsi + 0x10]
je 0x1400f0503
cmp rdi, qword [rsi + 0x20]
jne 0x1400f0516
mov rdx, rdi
mov rcx, r14
call fcn.1400e78c0
mov rax, rsi
jmp 0x1400f089f
cmp byte [rdi], 4
jne 0x1400f05a5
mov rcx, qword [rdi + 0x20]
mov r8, rcx
cmp byte [rcx], 4
je 0x1400f0544
mov rdx, qword [rdi + 0x10]
movzx eax, word [rdx + 2]
cmp word [rcx + 2], ax
jae 0x1400f0544
mov qword [rdi + 0x20], rdx
mov r8, rdx
mov qword [rdi + 0x10], rcx
inc dword [r8 + 4]
xor ebx, ebx
mov r8, qword [rdi + 0x20]
mov r9, rsi
mov dword [rsp + 0x30], ebx
mov rcx, r14
mov dword [rsp + 0x28], ebx
lea edx, [rbx + 4]
mov qword [rsp + 0x20], rbx
call fcn.1400f03b0
mov r9, rax
mov dword [rsp + 0x30], ebx
mov rax, qword [rdi + 0x10]
lea edx, [rbx + 4]
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rbx
inc dword [rax + 4]
mov r8, qword [rdi + 0x10]
call fcn.1400f03b0
mov rdx, rdi
mov rcx, r14
mov rbx, rax
call fcn.1400e78c0
mov rax, rbx
jmp 0x1400f089f
cmp al, 4
jne 0x1400f0685
mov rdx, qword [rsi + 0x20]
movzx ecx, word [rdi + 2]
cmp cx, word [rdx + 2]
jbe 0x1400f061b
inc dword [rdx + 4]
xor ebx, ebx
mov r8, qword [rsi + 0x20]
mov r9, rdi
mov dword [rsp + 0x30], ebx
mov rcx, r14
mov dword [rsp + 0x28], ebx
lea edx, [rbx + 4]
mov qword [rsp + 0x20], rbx
call fcn.1400f03b0
mov r9, rax
mov dword [rsp + 0x30], ebx
mov rax, qword [rsi + 0x10]
lea edx, [rbx + 4]
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rbx
inc dword [rax + 4]
mov r8, qword [rsi + 0x10]
call fcn.1400f03b0
mov rdx, rsi
mov rcx, r14
mov rbx, rax
call fcn.1400e78c0
mov rax, rbx
jmp 0x1400f089f
mov rax, qword [rsi + 0x10]
cmp cx, word [rax + 2]
jbe 0x1400f0698
inc dword [rdx + 4]
xor ebx, ebx
mov r9, qword [rsi + 0x20]
mov r8, rdi
mov dword [rsp + 0x30], ebx
mov rcx, r14
mov dword [rsp + 0x28], ebx
lea edx, [rbx + 4]
mov qword [rsp + 0x20], rbx
call fcn.1400f03b0
mov r9, rax
mov dword [rsp + 0x30], ebx
mov rax, qword [rsi + 0x10]
lea edx, [rbx + 4]
mov dword [rsp + 0x28], ebx
mov rcx, r14
mov qword [rsp + 0x20], rbx
inc dword [rax + 4]
mov r8, qword [rsi + 0x10]
call fcn.1400f03b0
mov rdx, rsi
mov rcx, r14
mov rbx, rax
call fcn.1400e78c0
mov rax, rbx
jmp 0x1400f089f
movzx eax, word [rsi + 2]
cmp word [rdi + 2], ax
jbe 0x1400f0698
mov rax, rdi
mov rdi, rsi
mov rsi, rax
mov ecx, 4
jmp 0x1400f06e5
cmp ebp, 3
jne 0x1400f089d
movzx eax, byte [r8]
cmp al, 1
jne 0x1400f06c3
mov rdx, rsi
mov rcx, r14
call fcn.1400e78c0
mov rax, rdi
jmp 0x1400f089f
movzx ecx, byte [r9]
cmp cl, 1
je 0x1400f0503
test cl, cl
je 0x1400f04d3
test al, al
je 0x1400f050e
mov ecx, 3
mov r8, rsi
mov rdx, rdi
call fcn.1400f0370
movzx ebx, ax
movzx eax, bx
cdq
idiv dword [r14 + 0x10]
movzx eax, dx
lea rcx, [rax*8]
mov rax, qword [r14 + 8]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rcx + rax]
test rcx, rcx
je 0x1400f0775
cmp word [rcx + 2], bx
jne 0x1400f076c
movzx eax, byte [rcx]
cmp eax, ebp
jne 0x1400f076c
cmp ebp, 2
jne 0x1400f073b
cmp r13, qword [rcx + 0x20]
jne 0x1400f076c
inc dword [rcx + 4]
mov rax, rcx
jmp 0x1400f089f
cmp ebp, 5
jne 0x1400f0760
cmp dword [rcx + 0x20], r15d
jne 0x1400f076c
cmp dword [rcx + 0x24], r12d
jne 0x1400f076c
cmp qword [rcx + 0x10], rdi
jne 0x1400f076c
inc dword [rcx + 4]
mov rax, rcx
dec dword [rdi + 4]
jmp 0x1400f089f
cmp qword [rcx + 0x10], rdi
jne 0x1400f076c
cmp qword [rcx + 0x20], rsi
je 0x1400f07cf
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x1400f0718
cmp dword [r14 + 0x18], 0x2710
jge 0x1400f089d
mov ecx, 0x28
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rax
test rax, rax
je 0x1400f089d
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x20], rax
mov byte [rcx], bpl
mov qword [rcx + 0x18], rax
inc dword [r14 + 0x18]
inc dword [r14 + 0x30]
mov word [rcx + 2], bx
cmp ebp, 2
jne 0x1400f07e0
mov qword [rcx + 0x20], r13
lea eax, [rbp - 1]
jmp 0x1400f0869
inc dword [rcx + 4]
mov rax, rcx
dec dword [rdi + 4]
dec dword [rsi + 4]
jmp 0x1400f089f
mov qword [rcx + 0x10], rdi
cmp ebp, 5
jne 0x1400f080e
mov dword [rcx + 0x20], r15d
mov dword [rcx + 0x24], r12d
test r15d, r15d
je 0x1400f07fc
test byte [rdi + 1], 1
je 0x1400f0800
or byte [rcx + 1], 1
test r12d, r12d
js 0x1400f0864
mov eax, dword [rdi + 8]
imul eax, r12d
jmp 0x1400f0869
mov qword [rcx + 0x20], rsi
movzx eax, byte [rdi + 1]
and al, 1
cmp ebp, 4
jne 0x1400f0842
test al, al
jne 0x1400f0827
test byte [rsi + 1], 1
je 0x1400f082b
or byte [rcx + 1], 1
mov edx, dword [rdi + 8]
cmp edx, 0xffffffff
je 0x1400f0864
mov eax, dword [rsi + 8]
cmp eax, 0xffffffff
je 0x1400f0864
cmp edx, eax
cmovg eax, edx
jmp 0x1400f0869
test al, al
je 0x1400f0850
test byte [rsi + 1], 1
je 0x1400f0850
or byte [rcx + 1], 1
mov edx, dword [rdi + 8]
cmp edx, 0xffffffff
je 0x1400f0864
mov eax, dword [rsi + 8]
cmp eax, 0xffffffff
je 0x1400f0864
add eax, edx
jmp 0x1400f0869
mov eax, 0xffffffff
mov r8, qword [rsp + 0x70]
mov rdx, rcx
mov dword [rcx + 8], eax
mov dword [rcx + 4], 1
mov rax, qword [r14 + 8]
mov rdx, qword [rax + r8]
test rdx, rdx
je 0x1400f0890
mov qword [rcx + 0x18], rdx
mov rax, qword [r14 + 8]
mov qword [rax + r8], rcx
mov rax, rcx
inc dword [r14 + 0x14]
jmp 0x1400f089f
xor eax, eax
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret