Function at 0x1400368c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm6
mov rsi, rcx
lea rbp, [0x1401507c0]
test r8, r8
je 0x140036e96
mov r12, rdx
cmp byte [rdx], 0
je 0x140036914
mov r13, r9
mov r15, r8
add r8, 7
cmp r8, 8
mov qword [rsp + 0x38], r8
jae 0x140036920
mov r11d, 8
jmp 0x140036972
lea rbp, str.InvalidEncoding_Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.8_src_arithmetic_bigint_modulus.rs
jmp 0x140036e96
test r8, r8
js 0x14003700f
mov rbx, r8
and rbx, 0xfffffffffffffff8
mov rcx, qword [0x1401d2138]
test rcx, rcx
jne 0x140036954
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x140037000
mov rcx, rax
mov qword [0x1401d2138], rax
mov edx, 8
mov r8, rbx
call sub.KERNEL32.dll_HeapAlloc
mov r11, rax
test rax, rax
mov r8, qword [rsp + 0x38]
je 0x140037000
mov rbx, r8
shr rbx, 3
xor edi, edi
mov eax, r15d
and eax, 7
setne dil
mov r14d, 8
cmovne r14, rax
mov rax, r15
shr rax, 3
add rdi, rax
cmp rdi, rbx
ja 0x140036e7f
cmp r8, 8
jb 0x1400369d7
and r8, 0xfffffffffffffff8
mov rcx, r11
xor edx, edx
mov qword [rsp + 0x30], r13
mov r13, rsi
mov rsi, rbx
mov rbx, r11
call sub.msvcrt.dll_memset
mov r8, qword [rsp + 0x38]
mov r11, rbx
mov rbx, rsi
mov rsi, r13
mov r13, qword [rsp + 0x30]
test rdi, rdi
je 0x140036a4f
lea rcx, [rdi - 1]
cmp rcx, rbx
jae 0x140036e6b
mov cl, 1
xor eax, eax
xor edx, edx
cmp rax, r15
jae 0x140036a37
lea r8, [rdx + 1]
dec r14
xor r9d, r9d
nop
movzx r10d, byte [r12 + rax]
inc rax
shl r9, 8
or r9, r10
sub r14, 1
jb 0x140036a1c
cmp r15, rax
jne 0x140036a00
jmp 0x140036a37
not rdx
add rdx, rdi
mov qword [r11 + rdx*8], r9
mov r14d, 8
mov rdx, r8
cmp r8, rdi
setb cl
jne 0x1400369ef
test cl, 1
mov r8, qword [rsp + 0x38]
jne 0x140036e7f
cmp rax, r15
je 0x140036a5a
jmp 0x140036e7f
xor eax, eax
cmp rax, r15
jne 0x140036e7f
cmp r8, 0x407
jbe 0x140036a71
mov eax, 8
lea rbp, [0x140150772]
jmp 0x140036ad8
cmp r8, 0x20
jae 0x140036a93
mov eax, 0xf
movq xmm6, rax
lea rbp, [0x1401507c0]
cmp r8, 8
jae 0x140036adc
jmp 0x140036ea0
mov rcx, r11
mov rdx, rbx
mov rdi, r11
call fcn.14011c320
test rax, rax
je 0x140036ab4
mov eax, 0x10
lea rbp, [0x14015073e]
jmp 0x140036ad5
mov edx, 3
mov rcx, rdi
mov r8, rbx
call fcn.14011c4c0
test rax, rax
je 0x140036af2
mov eax, 0xf
lea rbp, [0x1401507c0]
mov r11, rdi
movd xmm6, eax
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, r11
call sub.KERNEL32.dll_HeapFree
jmp 0x140036ea0
mov rcx, qword [rdi]
call fcn.14011e920
mov qword [rsp + 0x40], rax
mov eax, 1
mov rcx, rbx
mov r10, rdi
mov qword [rsp + 0x30], r13
lea rdx, [rcx - 1]
cmp rcx, 2
mov r12, rdx
cmovb r12, rax
mov qword [rsp + 0x48], rdx
cmp rdx, rbx
jae 0x140036fea
mov qword [rsp + 0x50], rcx
mov r15, qword [r10 + rcx*8 - 8]
mov r14d, 0x40
xor ebp, ebp
test bpl, 1
jne 0x140036b80
mov rdi, r14
lea rdx, [r14 - 1]
cmp r14, 2
setb bpl
mov r14, rdx
cmovb r14, rax
mov rcx, r15
mov r13, rsi
mov rsi, rbx
mov rbx, r10
call fcn.14011c8f0
mov r10, rbx
mov rbx, rsi
mov rsi, r13
test rax, rax
mov eax, 1
je 0x140036b3e
jmp 0x140036b9f
cmp qword [rsp + 0x50], 2
jb 0x140036eea
mov rcx, r12
test r12, r12
mov ebp, 0
jne 0x140036b0f
jmp 0x140036bae
mov rax, qword [rsp + 0x48]
shl rax, 6
add rdi, rax
mov rbp, rdi
mov rdx, qword [rsp + 0x108]
cmp rdx, 0x3ff
mov r15, qword [rsp + 0x38]
jbe 0x140036f06
mov eax, ebp
shr eax, 2
mov ecx, ebp
shr ecx, 1
or ecx, eax
or ecx, ebp
and ecx, 1
lea rax, [rcx*8]
add rax, rbp
and rax, 0xfffffffffffffff8
cmp rax, rdx
jae 0x140036bf5
lea rbp, [0x14015076a]
jmp 0x140036c06
cmp rbp, qword [rsp + 0x110]
jbe 0x140036c21
lea rbp, [0x140150772]
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, r10
call sub.KERNEL32.dll_HeapFree
mov eax, 8
jmp 0x140036ea5
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x60], rbx
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], rbp
and r15, 0xfffffffffffffff8
je 0x140036c6f
mov rdi, r10
mov rcx, r15
call fcn.1400b5230
test rax, rax
je 0x140037016
mov r12, rax
cmp qword [rsp + 0x38], 0x20
jae 0x140036c79
xor eax, eax
mov r10, rdi
jmp 0x140036cb9
xor eax, eax
mov r12d, 8
jmp 0x140036cb9
mov rax, rbx
and rax, 0xfffffffffffffffc
xor ecx, ecx
pcmpeqd xmm0, xmm0
mov r10, rdi
movdqu xmm1, xmmword [r10 + rcx*8]
movdqu xmm2, xmmword [r10 + rcx*8 + 0x10]
pxor xmm1, xmm0
pxor xmm2, xmm0
movdqu xmmword [r12 + rcx*8], xmm1
movdqu xmmword [r12 + rcx*8 + 0x10], xmm2
add rcx, 4
cmp rax, rcx
jne 0x140036c89
cmp rbx, rax
je 0x140036cd0
mov rcx, qword [r10 + rax*8]
not rcx
mov qword [r12 + rax*8], rcx
lea rcx, [rax + 1]
mov rax, rcx
cmp rbx, rcx
jne 0x140036cb9
mov r13, rbx
shl r13, 6
or byte [r12], 1
sub r13, rbp
je 0x140036d18
mov rax, qword [r12 + rbx*8 - 8]
mov ecx, r13d
shl rax, cl
shr rax, cl
mov qword [r12 + rbx*8 - 8], rax
cmp r13, 1
adc r13, 0
mov rcx, r12
mov rdx, r12
mov r8, r10
mov r9, rbx
mov rdi, r10
call fcn.14011c6b0
mov r10, rdi
dec r13
jne 0x140036cfc
lea rdi, [rsp + 0x68]
mov r14, rbx
mov rcx, r12
mov rdx, r12
mov r8, r10
mov r9, rbx
mov r15, r10
call fcn.14011c6b0
mov r10, r15
dec r14
jne 0x140036d20
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r10
mov r14, r10
call fcn.1400f2180
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r14
call fcn.1400f2180
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r14
call fcn.1400f2180
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r14
call fcn.1400f2180
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r14
call fcn.1400f2180
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, r14
call fcn.1400f2180
lea rax, [0x140150772]
mov rdi, qword [rsp + 0x100]
cmp rdi, 5
mov rcx, qword [rsp + 0x30]
jbe 0x140036e06
mov r10, rax
mov r9d, 8
jmp 0x140036e38
mov r9d, 0xf
lea r10, str.InvalidEncoding_Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.8_src_arithmetic_bigint_modulus.rs
test rdi, rdi
je 0x140036e38
cmp byte [rcx], 0
mov r8, r15
je 0x140036e3b
mov r11, rsi
movzx edx, byte [rcx]
cmp rdi, 1
jne 0x140036ed0
mov rcx, rdx
jmp 0x140036f66
mov r8, r15
mov qword [rsi + 8], r10
mov qword [rsi + 0x10], r9
mov qword [rsi], 0
mov rcx, qword [0x1401d2138]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, r12
call sub.KERNEL32.dll_HeapFree
jmp 0x140036eb4
dec r14
dec r15
cmp r14, r15
mov r8, qword [rsp + 0x38]
jbe 0x140037025
cmp r8, 8
jb 0x140036e96
mov rcx, qword [0x1401d2138]
xor edx, edx
mov r8, r11
call sub.KERNEL32.dll_HeapFree
mov eax, 0xf
movq xmm6, rax
movq rax, xmm6
mov qword [rsi + 8], rbp
mov qword [rsi + 0x10], rax
mov qword [rsi], 0
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx r8d, byte [rcx + 1]
shl rdx, 8
mov rcx, rdx
or rcx, r8
cmp rdi, 2
jne 0x140036f20
mov rdx, r8
jmp 0x140036f66
xor ebp, ebp
mov rdx, qword [rsp + 0x108]
cmp rdx, 0x3ff
mov r15, qword [rsp + 0x38]
ja 0x140036bc8
lea rcx, str.assertion_failed:_min_bits___MIN_BITS_Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.8_src_rsa_public_modulus.rs
lea r8, [0x140151060]
mov edx, 0x26
call fcn.140006a00
ud2
mov rdx, qword [rsp + 0x30]
movzx edx, byte [rdx + 2]
shl rcx, 8
or rcx, rdx
cmp qword [rsp + 0x100], 3
je 0x140036f66
mov rdx, qword [rsp + 0x30]
movzx edx, byte [rdx + 3]
shl rcx, 8
or rcx, rdx
cmp qword [rsp + 0x100], 4
je 0x140036f66
mov rdx, qword [rsp + 0x30]
movzx edx, byte [rdx + 4]
shl rcx, 8
or rcx, rdx
lea r10, [0x14015076a]
test rcx, rcx
je 0x140036fac
cmp rcx, qword [rsp + 0x118]
jb 0x140036fac
mov r8, rcx
shr r8, 0x21
mov r10, rax
mov r9d, 8
mov r8, r15
mov rsi, r11
jne 0x140036e3b
test dl, 1
jne 0x140036fbd
mov r9d, 0x10
lea r10, [0x14015073e]
jmp 0x140036fb2
mov r9d, 8
mov r8, r15
mov rsi, r11
jmp 0x140036e3b
mov qword [r11], r15
mov qword [r11 + 8], rbx
mov rax, qword [rsp + 0x40]
mov qword [r11 + 0x10], rax
mov qword [r11 + 0x18], 0
mov qword [r11 + 0x20], rbp
mov qword [r11 + 0x28], r12
mov qword [r11 + 0x30], rbx
mov qword [r11 + 0x38], rcx
jmp 0x140036eb4
lea r8, str._Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.8_src_limb.rs
mov rcx, qword [rsp + 0x48]
mov rdx, rbx
call fcn.140005d60
ud2
mov ecx, 8
mov rdx, rbx
call fcn.1400034d0
ud2
call fcn.140003490
ud2
mov ecx, 8
mov rdx, r15
call fcn.1400034d0
ud2
lea r8, str._Users_caojian_.cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.8_src_limb.rs
mov rdx, rbx
call fcn.140005d60
ud2