Function at 0x14035aa00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x20], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r12, qword [rsp + 0xb8]
xor eax, eax
cmp dword [rcx], eax
mov r14d, Ordinal_16
mov dword [rsp + 0x2c], r9d
mov r15, rcx
mov r9d, dword [rsp + 0xc0]
sete al
mov dword [rsp + 0x28], eax
mov r8d, r14d
mov dword [rsp + 0x90], 0
lea eax, [r9 - 1]
movsxd rdx, eax
mov r13, rdx
test eax, eax
js 0x14035aa88
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r12 + rdx]
lea eax, [r8*8]
xor ecx, eax
xor r8d, ecx
sub rdx, 1
jns 0x14035aa70
movzx ecx, byte [rsp + 0xb0]
lea eax, [r8*8]
mov edi, dword [r15 + 0x14]
xor eax, ecx
xor eax, r8d
mov dword [rsp + 0x20], ecx
xor edx, edx
div edi
mov rax, qword [r15 + 0x20]
lea rsi, [rdx*8]
mov ebp, edx
mov qword [rsp + 0x30], rax
mov rbx, qword [rax + rsi]
test rbx, rbx
je 0x14035ab02
cmp byte [rbx + 0x30], cl
jne 0x14035aafa
lea eax, [r9 + 1]
cmp dword [rbx + 0x1c], eax
jne 0x14035aafa
movsxd r8, r9d
lea rcx, [rbx + 0x31]
mov rdx, r12
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14035ac5a
mov r9d, dword [rsp + 0xc0]
movzx ecx, byte [rsp + 0xb0]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14035aac5
lea eax, [r9 + 1]
mov dword [rsp + 0x24], eax
movsxd rax, r9d
mov qword [rsp + 0x40], rax
inc rax
mov qword [rsp + 0x48], rax
lea rsi, [rax + 0x71]
mov eax, 0x80
cmp rsi, rax
cmovl rsi, rax
mov eax, dword [r15 + 0x10]
add eax, eax
mov qword [rsp + 0x38], rsi
cmp eax, edi
jl 0x14035ad12
lea ebp, [rdi + rdi]
movsxd rbx, ebp
call fcn.1403a2170
test eax, eax
jne 0x14035b007
lea rbx, [rbx*8]
mov rcx, rbx
call fcn.14036b6d0
mov rsi, rax
test rax, rax
je 0x14035b007
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
xor edi, edi
cmp dword [r15 + 0x14], edi
jle 0x14035abf2
mov rbx, qword [rsp + 0x30]
mov r11, qword [rbx]
test r11, r11
je 0x14035abe6
nop
mov rax, qword [r11]
mov r10d, r14d
mov qword [rbx], rax
mov eax, dword [r11 + 0x1c]
sub eax, 1
movsxd rcx, eax
js 0x14035abcc
lea r9, [rcx + 0x30]
add r9, r11
nop dword [rax]
movzx edx, byte [r9]
lea r8d, [r10*8]
xor r8d, edx
lea r9, [r9 - 1]
xor r10d, r8d
sub rcx, 1
jns 0x14035abb0
xor edx, edx
mov eax, r10d
div ebp
mov rax, qword [rsi + rdx*8]
mov qword [r11], rax
mov qword [rsi + rdx*8], r11
mov r11, qword [rbx]
test r11, r11
jne 0x14035ab90
inc edi
add rbx, 8
cmp edi, dword [r15 + 0x14]
jl 0x14035ab86
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x14035accf
cmp dword [reloc.SinoSPE.dll_Ordinal_1], 0
je 0x14035acc6
mov rcx, qword [0x1404b8660]
test rcx, rcx
je 0x14035ac1f
call qword [0x1404a5bd0]
mov rcx, rbx
call qword [0x1404a5b88]
dec qword [0x1404b85e8]
mov rcx, rbx
movsxd rdx, eax
sub qword [0x1404b85a0], rdx
call qword [0x1404a5b78]
mov rcx, qword [0x1404b8660]
test rcx, rcx
je 0x14035accf
call qword [0x1404a5be0]
jmp 0x14035accf
mov ecx, dword [rbx + 0x10]
mov eax, ecx
sub eax, dword [rbx + 0x18]
cmp eax, 0x16
jge 0x14035acb4
lea edi, [rcx + rcx]
call fcn.1403a2170
test eax, eax
jne 0x14035b007
movsxd rdx, edi
mov rcx, rbx
call fcn.140376810
mov r8, rax
test rax, rax
je 0x14035b007
mov dword [rax + 0x10], edi
mov rdx, qword [r15 + 0x20]
add rdx, rsi
mov rcx, qword [rdx]
cmp rcx, rbx
je 0x14035acae
mov rax, qword [rcx]
mov rdx, rcx
mov rcx, rax
cmp rax, rbx
jne 0x14035aca0
mov qword [rdx], r8
mov rbx, r8
mov ebp, dword [rbx + 0x18]
mov rsi, qword [rsp + 0x98]
neg ebp
jmp 0x14035ae1a
mov rcx, rbx
call qword [0x1404a5b78]
mov dword [r15 + 0x14], ebp
mov qword [r15 + 0x20], rsi
test r13, r13
js 0x14035acf8
nop dword [rax]
movzx ecx, byte [r12 + r13]
lea eax, [r14*8]
xor ecx, eax
xor r14d, ecx
sub r13, 1
jns 0x14035ace0
mov rsi, qword [rsp + 0x38]
lea eax, [r14*8]
xor eax, dword [rsp + 0x20]
xor edx, edx
xor eax, r14d
div ebp
mov ebp, edx
call fcn.1403a2170
test eax, eax
jne 0x14035b007
mov rcx, rsi
call fcn.14036b6d0
mov rbx, rax
test rax, rax
je 0x14035b007
mov r8, qword [rsp + 0x40]
lea rcx, [rbx + 0x31]
xorps xmm0, xmm0
mov rdx, r12
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov dword [rax + 0x10], esi
movzx eax, byte [rsp + 0xb0]
mov byte [rbx + 0x30], al
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x98]
mov dword [rbx + 0x1c], eax
mov rax, qword [rsp + 0x48]
mov byte [rax + rbx + 0x30], 0
mov eax, dword [rsp + 0xc0]
add eax, 0x31
mov dword [rbx + 0x18], eax
mov eax, ebp
lea rdx, [rax*8]
mov rax, qword [r15 + 0x20]
mov rcx, qword [rdx + rax]
mov qword [rbx], rcx
mov rax, qword [r15 + 0x20]
mov qword [rdx + rax], rbx
inc dword [r15 + 0x10]
movsxd rcx, dword [rbx + 0x18]
add rcx, rbx
cmp rsi, 0x7f
ja 0x14035adc3
movzx eax, sil
and al, 0x7f
mov byte [rcx], al
mov eax, 1
jmp 0x14035adef
cmp rsi, 0x3fff
ja 0x14035ade7
mov rax, rsi
shr rax, 7
or al, 0x80
mov byte [rcx], al
movzx eax, sil
and al, 0x7f
mov byte [rcx + 1], al
mov eax, 2
jmp 0x14035adef
mov rdx, rsi
call fcn.1402ef7e0
add eax, dword [rbx + 0x18]
mov ebp, dword [rsp + 0x90]
mov dword [rbx + 0x18], eax
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x28], rsi
cmp dword [r15], 1
je 0x14035ae1a
inc eax
mov dword [rbx + 0x18], eax
mov eax, dword [r15]
neg eax
sbb cx, cx
mov word [rbx + 0x22], cx
mov rax, qword [rbx + 0x28]
cmp rsi, rax
je 0x14035aeb2
mov rdi, rsi
xor r8d, r8d
mov rdx, rbx
mov rcx, r15
sub rdi, rax
call fcn.1402e4180
movsxd rcx, dword [rbx + 0x18]
add rcx, rbx
cmp rdi, 0x7f
ja 0x14035ae56
and dil, 0x7f
mov eax, 1
mov byte [rcx], dil
jmp 0x14035ae81
cmp rdi, 0x3fff
ja 0x14035ae79
mov rax, rdi
shr rax, 7
or al, 0x80
and dil, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dil
mov eax, 2
jmp 0x14035ae81
mov rdx, rdi
call fcn.1402ef7e0
add eax, dword [rbx + 0x18]
mov edi, 1
mov dword [rbx + 0x18], eax
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x28], rsi
cmp dword [r15], edi
je 0x14035aeb6
inc eax
mov dword [rbx + 0x18], eax
mov eax, dword [r15]
neg eax
mov dword [rbx + 0x24], 0
sbb cx, cx
mov word [rbx + 0x22], cx
jmp 0x14035aeb6
mov edi, dword [rsp + 0x28]
movsxd r11, dword [rsp + 0xa8]
test r11d, r11d
js 0x14035aff4
mov ecx, dword [r15]
cmp ecx, 1
jne 0x14035aee4
mov eax, dword [rbx + 0x18]
mov byte [rbx + 0x21], cl
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14035b00c
movsx eax, word [rbx + 0x22]
cmp r11d, eax
je 0x14035af57
test ecx, ecx
jne 0x14035af9d
movsxd rax, dword [rbx + 0x18]
mov rdx, r11
mov byte [rax + rbx], 1
movsxd rcx, dword [rbx + 0x18]
lea eax, [rcx + 1]
inc rcx
add rcx, rbx
mov dword [rbx + 0x18], eax
cmp r11, 0x7f
ja 0x14035af22
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x14035af48
cmp rdx, 0x3fff
ja 0x14035af43
mov rax, rdx
shr rax, 7
or al, 0x80
and dl, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dl
mov eax, 2
jmp 0x14035af48
call fcn.1402ef7e0
add dword [rbx + 0x18], eax
mov word [rbx + 0x22], r11w
mov dword [rbx + 0x24], 0
mov r11d, dword [rsp + 0x2c]
test edi, edi
je 0x14035aff8
movsxd rcx, dword [rbx + 0x18]
mov eax, r11d
sub eax, dword [rbx + 0x24]
add rcx, rbx
add eax, 2
movsxd rdx, eax
cmp rdx, 0x7f
ja 0x14035afa4
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14035b00c
mov word [rbx + 0x22], r11w
jmp 0x14035af64
cmp rdx, 0x3fff
ja 0x14035afd9
mov rax, rdx
and dl, 0x7f
shr rax, 7
or al, 0x80
mov byte [rcx + 1], dl
mov byte [rcx], al
mov eax, 2
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14035b00c
call fcn.1402ef7e0
add dword [rbx + 0x18], eax
mov eax, dword [rbx + 0x18]
mov dword [rbx + 0x24], r11d
add eax, ebp
mov rcx, qword [r15 + 8]
add dword [rcx], eax
xor eax, eax
jmp 0x14035b00c
mov byte [rbx + 0x20], 1
mov eax, dword [rbx + 0x18]
mov rcx, qword [r15 + 8]
add eax, ebp
add dword [rcx], eax
xor eax, eax
jmp 0x14035b00c
mov eax, 7
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret