Function at 0x140020660
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x388
mov rdi, r9
mov r12, qword [rcx]
cmp byte [rcx + 8], 1
mov rbx, qword [r12]
je 0x1400206a4
mov rax, qword [rbx + 0x10]
cmp qword [rbx], rax
je 0x140020e97
mov r9, qword [rbx + 8]
mov byte [r9 + rax], 0x2c
inc rax
mov qword [rbx + 0x10], rax
mov rbx, qword [r12]
mov byte [rcx + 8], 2
mov rax, qword [rbx + 0x10]
cmp qword [rbx], rax
je 0x140020e43
mov rcx, qword [rbx + 8]
mov byte [rcx + rax], 0x22
inc rax
mov qword [rbx + 0x10], rax
mov rcx, rbx
call fcn.140002cd0
mov rdx, qword [rbx + 0x10]
cmp qword [rbx], rdx
je 0x140020e69
mov rax, qword [rbx + 8]
mov byte [rax + rdx], 0x22
inc rdx
mov qword [rbx + 0x10], rdx
mov rbx, qword [r12]
mov rdx, qword [rbx + 0x10]
cmp qword [rbx], rdx
mov qword [rsp + 0x38], r12
je 0x140020e80
mov rax, qword [rbx + 8]
mov byte [rax + rdx], 0x3a
inc rdx
mov qword [rbx + 0x10], rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x6c], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
lea r14, [rsp + 0x4d]
xor r15d, r15d
movabs r13, 0x9d89d89d89d89d9
movabs r12, 0xede972b42a708c65
mov rcx, qword [rdi + r15*8]
mov rax, rcx
movabs rdx, 0x4ec4ec4ec4ec4ec5
mul rdx
mov r8, rdx
shr r8, 3
lea eax, [r8 + r8*4]
lea ebx, [rax + rax*4]
add ebx, r8d
mov rax, r8
mul r13
lea eax, [rdx + rdx*4]
lea r9d, [rax + rax*4]
mov rax, rcx
shr rax, 2
add r9d, edx
movabs rdx, 0x183c977ab2bedd29
mul rdx
mov r10, rdx
sub r8d, r9d
add r8b, 0x41
shr r10, 4
mov rax, r10
mul r13
mov r11, rdx
lea ebp, [rdx + rdx*4]
mov rax, rcx
movabs rdx, 0xeea35d55a4e11f1d
mul rdx
mov r9, rdx
lea eax, [rbp + rbp*4]
add eax, r11d
shr r9, 0xe
sub r10d, eax
mov rax, r9
mul r13
add r10b, 0x41
lea eax, [rdx + rdx*4]
lea ebp, [rax + rax*4]
add ebp, edx
mov rax, rcx
movabs rdx, 0x92daaf972a6326d7
mul rdx
mov r11, rdx
mov esi, ecx
sub r9d, ebp
shr r11, 0x12
sub esi, ebx
mov rax, r11
mul r13
lea eax, [rdx + rdx*4]
lea ebp, [rax + rax*4]
add ebp, edx
add sil, 0x41
mov rax, rcx
movabs rdx, 0xb4be61f5207a086b
mul rdx
mov rbx, rdx
mov byte [r14 - 0xd], sil
sub r11d, ebp
shr rbx, 0x17
mov byte [r14 - 0xc], r8b
mov rax, rbx
mul r13
lea eax, [rdx + rdx*4]
lea r8d, [rax + rax*4]
add r8d, edx
mov byte [r14 - 0xb], r10b
mov rax, rcx
movabs rdx, 0x6f3a14e59dd4f17d
mul rdx
mov r10, rdx
shr r10, 0x1b
mov rax, r10
mul r13
sub ebx, r8d
lea eax, [rdx + rdx*4]
lea eax, [rax + rax*4]
add eax, edx
sub r10d, eax
mov rax, rcx
add r9b, 0x41
add r11b, 0x41
add bl, 0x41
shr rax, 7
mov byte [r14 - 0xa], r9b
movabs rdx, 0x111ca0c0dd3473f
mul rdx
mov r8, rdx
mov byte [r14 - 9], r11b
add r10b, 0x41
shr r8, 0x12
mov byte [r14 - 8], bl
imul r11, r8, 0x4ec4ec4f
shr r11, 0x23
lea esi, [r11 + r11*4]
mov byte [r14 - 7], r10b
mov rax, rcx
movabs rdx, 0xa87c562fe47a9cc3
mul rdx
mov r9, rdx
lea eax, [rsi + rsi*4]
add eax, r11d
shr r9, 0x25
sub r8d, eax
imul rax, r9, 0x9d89d8a
shr rax, 0x20
lea edx, [rax + rax*4]
add r8b, 0x41
lea edx, [rdx + rdx*4]
add edx, eax
sub r9d, edx
mov byte [r14 - 6], r8b
mov rax, rcx
movabs rdx, 0xcf5df3ec2ce5ad3f
mul rdx
mov r8, rdx
shr r8, 0x2a
imul rax, r8, 0x9d89d8a
shr rax, 0x20
add r9b, 0x41
lea edx, [rax + rax*4]
lea edx, [rdx + rdx*4]
add edx, eax
sub r8d, edx
mov rax, rcx
movabs rdx, 0x3fce23ab2181bf27
mul rdx
mov r10, rdx
shr r10, 0x2d
imul rax, r10, 0x9d89d8a
shr rax, 0x20
mov byte [r14 - 5], r9b
lea edx, [rax + rax*4]
lea r11d, [rdx + rdx*4]
add r11d, eax
add r8b, 0x41
mov rax, rcx
movabs rdx, 0x9d0f1cb8f0044caf
mul rdx
mov r9, rdx
shr r9, 0x33
imul eax, r9d, 0x2763
shr eax, 0x12
sub r10d, r11d
lea edx, [rax + rax*4]
lea r11d, [rdx + rdx*4]
add r11d, eax
mov byte [r14 - 4], r8b
mov rax, rcx
movabs rdx, 0x60a6d699313db909
mul rdx
mov r8, rdx
add r10b, 0x41
sub r9d, r11d
shr r8, 0x37
mov byte [r14 - 3], r10b
imul eax, r8d, 0x4f
shr eax, 0xb
lea edx, [rax + rax*4]
lea edx, [rdx + rdx*4]
add edx, eax
sub r8b, dl
add r9b, 0x41
mov byte [r14 - 2], r9b
mov rax, rcx
mul r12
add r8b, 0x41
mov byte [r14 - 1], r8b
shr rdx, 0x3d
add dl, 0x41
mov byte [r14], dl
inc r15
add r14, 0xe
cmp r15, 4
jne 0x140020740
mov byte [rsp + 0x36], 0
mov word [rsp + 0x34], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xe8], xmm0
movups xmmword [rsp + 0xf8], xmm0
movups xmmword [rsp + 0x108], xmm0
movups xmmword [rsp + 0x118], xmm0
movups xmmword [rsp + 0x128], xmm0
movups xmmword [rsp + 0x138], xmm0
movups xmmword [rsp + 0x148], xmm0
movups xmmword [rsp + 0x158], xmm0
movups xmmword [rsp + 0x168], xmm0
movups xmmword [rsp + 0x178], xmm0
movups xmmword [rsp + 0x188], xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
mov qword [rsp + 0x1b8], 0xa8
mov word [rsp + 0x1c0], 0
movups xmmword [rsp + 0x288], xmm0
movups xmmword [rsp + 0x278], xmm0
movups xmmword [rsp + 0x268], xmm0
movups xmmword [rsp + 0x258], xmm0
movups xmmword [rsp + 0x248], xmm0
movups xmmword [rsp + 0x238], xmm0
movups xmmword [rsp + 0x228], xmm0
movups xmmword [rsp + 0x218], xmm0
movups xmmword [rsp + 0x208], xmm0
movups xmmword [rsp + 0x1f8], xmm0
movups xmmword [rsp + 0x1e8], xmm0
movups xmmword [rsp + 0x1d8], xmm0
movups xmmword [rsp + 0x1c8], xmm0
mov qword [rsp + 0x298], 0xa8
mov word [rsp + 0x2a0], 0xb
lea rax, [0x14047c0f8]
mov qword [rsp + 0xd0], rax
movups xmmword [rsp + 0xd8], xmm0
lea rcx, [rsp + 0xd0]
mov r8d, 0x20
mov rdx, rdi
call fcn.140020010
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], 0
test rdx, rdx
je 0x140020ec3
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], 0
lea rdi, [rsp + 0x90]
mov byte [rsp + 0x90], 0
lea rbx, [rsp + 0xd0]
mov rcx, rbx
xor r8d, r8d
call fcn.140020010
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.140020010
mov rax, qword [rsp + 0xe0]
test rax, rax
mov r14, qword [rsp + 0x38]
je 0x140020ba8
bswap rax
test al, al
je 0x140020baf
xor esi, esi
jmp 0x140020c18
mov al, 7
jmp 0x140020cc4
mov esi, 1
test eax, 0xff00
jne 0x140020c18
mov esi, 2
test eax, 0xff0000
jne 0x140020c18
mov rcx, rax
shr rcx, 0x18
mov esi, 3
test cl, cl
jne 0x140020c18
mov rcx, rax
shr rcx, 0x20
mov esi, 4
test cl, cl
jne 0x140020c18
mov rcx, rax
shr rcx, 0x28
mov esi, 5
test cl, cl
jne 0x140020c18
mov rcx, rax
shr rcx, 0x30
mov esi, 6
test cl, cl
jne 0x140020c18
mov rcx, rax
shr rcx, 0x38
xor esi, esi
cmp rcx, 1
adc rsi, 7
mov cl, 8
sub cl, sil
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rax
mov byte [rsp + 0xa8], cl
xorps xmm0, xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
lea rdx, [rsp + 0x1c8]
lea rdi, [rsp + 0x2a8]
mov r8d, 0xe0
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rbx, [rsp + 0xb0]
mov rcx, rdi
mov rdx, rbx
call fcn.140100340
lea rdi, [rsp + 0xe8]
mov r8d, 0x20
mov rcx, rdi
mov rdx, rbx
call fcn.140003780
mov r8d, 9
sub r8, rsi
lea rdx, [rsp + rsi]
add rdx, 0xa0
mov rcx, rdi
call fcn.140003780
lea rdx, [0x14040d600]
mov r8d, 2
mov rcx, rdi
call fcn.140003780
mov al, 6
mov byte [rsp + 0x1c0], al
lea rdx, [rsp + 0xe8]
lea rdi, [rsp + 0x2a8]
mov r8d, 0xe0
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rdx, [rsp + 0x34]
mov rcx, rdi
call fcn.14027c650
movzx ecx, word [rsp + 0x34]
movzx eax, byte [rsp + 0x36]
and eax, 3
shl eax, 0x10
or eax, ecx
imul rdx, rax, 0x9d89d8a
shr rdx, 0x20
lea r8d, [rdx + rdx*4]
lea r8d, [r8 + r8*4]
add r8d, edx
sub ecx, r8d
add cl, 0x41
mov byte [rsp + 0x78], cl
imul ecx, edx, 0x2763
shr ecx, 0x12
lea r8d, [rcx + rcx*4]
lea r8d, [r8 + r8*4]
add r8d, ecx
sub edx, r8d
add dl, 0x41
mov byte [rsp + 0x79], dl
imul rcx, rax, 0x60f25e
shr rcx, 0x20
imul edx, ecx, 0x9d9
shr edx, 0x10
lea r8d, [rdx + rdx*4]
lea r8d, [r8 + r8*4]
add r8d, edx
sub ecx, r8d
add cl, 0x41
mov byte [rsp + 0x7a], cl
imul rax, rax, 0x3ba8e
shr rax, 0x20
add al, 0x41
mov byte [rsp + 0x7b], al
movzx eax, byte [0x1404c8501]
mov edx, 0x3c
xor ecx, ecx
call fcn.140277170
test rax, rax
je 0x140020edb
mov rdi, rax
movups xmm0, xmmword [rsp + 0x6c]
movups xmmword [rax + 0x2c], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmm2, xmmword [rsp + 0x60]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
lea rcx, [rsp + 0x2a8]
mov r8d, 0x3c
mov rdx, rax
call fcn.1400bedb0
cmp qword [rsp + 0x2a8], 0
jne 0x140020eea
mov qword [rsp + 0x2a8], 0x3c
mov qword [rsp + 0x2b0], rdi
mov qword [rsp + 0x2b8], 0x3c
lea rdx, [rsp + 0x2a8]
mov rcx, r14
call fcn.140021030
mov rsi, rax
mov rcx, qword [0x1404c8458]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, rsi
add rsp, 0x388
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, r8
mov r8d, 1
mov rcx, rbx
mov r14, rdx
mov rdx, rax
call fcn.1402c8070
mov rdx, r14
mov r8, rsi
mov rax, qword [rbx + 0x10]
jmp 0x1400206b5
mov r8d, 1
mov rcx, rbx
call fcn.1402c8070
mov rdx, qword [rbx + 0x10]
jmp 0x1400206d9
mov r8d, 1
mov rcx, rbx
call fcn.1402c8070
mov rdx, qword [rbx + 0x10]
jmp 0x1400206fe
mov rsi, r8
mov r8d, 1
mov r14, rcx
mov rcx, rbx
mov r15, rdx
mov rdx, rax
call fcn.1402c8070
mov rcx, r14
mov rdx, r15
mov r8, rsi
mov rax, qword [rbx + 0x10]
jmp 0x140020690
lea rcx, str.KangarooTwelve_cannot_be_initialized_without_custom_string__qed
lea r8, str.C:UsersNico.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tiny_keccak_2.0.2_srck12.rs
mov edx, 0x3f
call fcn.1402c7a60
mov ecx, 1
mov edx, 0x3c
call fcn.1402c6f80
movups xmm0, xmmword [rsp + 0x2b0]
mov qword [rsp + 0x2a8], 0x3c
mov qword [rsp + 0x2b0], rdi
mov qword [rsp + 0x2b8], 0x3c
movups xmmword [rsp + 0x2c0], xmm0
lea rax, str.C:UsersNico.cargogitcheckoutsqubic_utils_e4b08980b30a75eb_a7aac81qubic_types_srcimpls.rs
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, [0x1402d97f8]
lea r8, [rsp + 0x2a8]
mov edx, 0x2b
call fcn.1402c79b0
int3