Function at 0x14007c110
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x128
mov rax, qword [rdx]
test rax, rax
je 0x14007c942
mov r10, qword [rdx + 8]
test r10, r10
je 0x14007c95a
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x14007c972
add rcx, rax
jb 0x14007c98a
mov rsi, rax
sub rsi, r10
jb 0x14007c9a2
cmp r9, 0x10
jbe 0x14007c9ba
mov r10, rcx
shr r10, 0x3d
jne 0x14007c9d2
mov r14d, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov rdi, rcx
shl rdi, 0x20
lea r10d, [r14 - 0x20]
test rdx, rdx
cmovne rdi, rcx
cmovne r10d, r14d
mov rcx, rdi
shr rcx, 0x30
mov rdx, rdi
shl rdx, 0x10
lea r11d, [r10 - 0x10]
test rcx, rcx
cmovne rdx, rdi
cmovne r11d, r10d
mov rcx, rdx
shr rcx, 0x38
mov rdi, rdx
shl rdi, 8
lea r10d, [r11 - 8]
test rcx, rcx
cmovne rdi, rdx
cmovne r10d, r11d
mov rcx, rdi
shr rcx, 0x3c
mov rdx, rdi
shl rdx, 4
test rcx, rcx
cmovne rdx, rdi
lea ecx, [r10 - 4]
cmovne ecx, r10d
mov r10, rdx
shr r10, 0x3e
lea rdi, [rdx*4]
lea r11d, [rcx - 2]
test r10, r10
cmovne rdi, rdx
cmovne r11d, ecx
xor ecx, ecx
test rdi, rdi
setns cl
shl rdi, cl
sub r11d, ecx
mov qword [rsp + 0xa8], rsi
mov word [rsp + 0xb0], r14w
mov ecx, r14d
sub cx, r11w
js 0x14007c9ea
and ecx, 0x3f
mov r10, rsi
shl r10, cl
mov rdx, r10
shr rdx, cl
mov qword [rsp + 0x58], rdx
cmp rdx, rsi
jne 0x14007c91c
mov r12, rax
shl r12, cl
mov rsi, r12
shr rsi, cl
mov qword [rsp + 0xa8], rax
mov word [rsp + 0xb0], r14w
mov qword [rsp + 0x58], rsi
cmp rsi, rax
jne 0x14007c91c
mov eax, 0xffffffa0
sub eax, r11d
cwde
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x153b0
cdqe
imul rax, rax, 0x7b4dc993
mov rcx, rax
shr rcx, 0x3f
sar rax, 0x2a
add eax, ecx
movsxd rcx, eax
cmp ecx, 0x51
jae 0x14007c90b
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rbx
shl rcx, 4
lea r14, [0x14128d640]
mov r13, qword [rcx + r14]
movzx eax, word [rcx + r14 + 0xa]
mov dword [rsp + 0x28], eax
mov rbx, rdi
shr rbx, 0x20
mov r15d, edi
mov esi, r13d
shr r13, 0x20
mov rbp, r13
imul rbp, r15
mov rdx, rsi
imul rdx, rbx
imul r15, rsi
shr r15, 0x20
mov edi, edx
add rdi, r15
mov r15d, ebp
add r15, rdi
add r11w, word [rcx + r14 + 8]
mov rdi, r10
shr rdi, 0x20
mov ecx, r10d
mov r10, r13
imul r10, rdi
mov qword [rsp + 0x98], r10
mov r14, r13
imul r14, rcx
imul rdi, rsi
imul rcx, rsi
shr rcx, 0x20
mov r10d, edi
add r10, rcx
mov eax, r14d
add rax, r10
mov r10, r12
shr r10, 0x20
mov ecx, r12d
mov r8, r13
imul r8, rcx
mov r12, rsi
imul r12, r10
imul rsi, rcx
shr rsi, 0x20
mov ecx, r12d
add rcx, rsi
mov r9d, r8d
add r9, rcx
mov rcx, r13
mov qword [rsp + 0xe8], rbx
imul rcx, rbx
sub r15, 0xffffffff80000000
shr rdx, 0x20
shr rbp, 0x20
shr r15, 0x20
neg r11d
sub rax, 0xffffffff80000000
shr rdi, 0x20
shr r14, 0x20
mov qword [rsp + 0x90], r14
mov r14, rdx
shr rax, 0x20
mov qword [rsp + 0x88], rax
mov rbx, r13
mov qword [rsp + 0xd8], r10
imul rbx, r10
sub r9, 0xffffffff80000000
mov qword [rsp + 0x60], rcx
add rcx, rdx
mov qword [rsp + 0x68], rbp
add rcx, rbp
lea r10, [r15 + rcx]
inc r10
and r11d, 0x3f
mov rdx, r10
mov ecx, r11d
shr rdx, cl
shr r12, 0x20
shr r8, 0x20
mov esi, 1
shl rsi, cl
mov qword [rsp + 0xd0], r12
lea rax, [r12 + rbx]
mov qword [rsp + 0xc8], r8
add rax, r8
shr r9, 0x20
mov qword [rsp + 0x80], r9
lea rcx, [rsi - 1]
mov qword [rsp + 0xa0], rcx
cmp edx, 0x2710
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x50], r15
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xc0], rbx
jae 0x14007c478
cmp edx, 0x64
jae 0x14007c49d
xor ecx, ecx
cmp edx, 0xa
setae cl
lea ebp, [rcx + rcx*8]
inc ebp
jmp 0x14007c4fa
cmp edx, 0xf4240
jae 0x14007c4ba
cmp edx, 0x186a0
setb cl
mov r8d, 0x2710
mov ebp, 0x186a0
cmovb ebp, r8d
xor cl, 5
jmp 0x14007c4fa
cmp edx, 0x3e8
setb cl
mov r8d, 0x64
mov ebp, 0x3e8
cmovb ebp, r8d
xor cl, 3
jmp 0x14007c4fa
cmp edx, 0x5f5e100
jae 0x14007c4df
cmp edx, 0x989680
setb cl
mov r8d, 0xf4240
mov ebp, 0x989680
cmovb ebp, r8d
xor cl, 7
jmp 0x14007c4fa
cmp edx, 0x3b9aca00
setb cl
mov r8d, 0x5f5e100
mov ebp, 0x3b9aca00
cmovb ebp, r8d
xor cl, 9
mov r8d, dword [rsp + 0x28]
add rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov r15, r10
mov rsi, qword [rsp + 0xa0]
and r15, rsi
movzx r9d, cl
mov ecx, r9d
sub ecx, r8d
inc ecx
mov dword [rsp + 0x3c], ecx
mov qword [rsp + 0xe0], rdi
mov rax, qword [rsp + 0x98]
add rax, rdi
add rax, qword [rsp + 0x90]
add rax, qword [rsp + 0x88]
mov qword [rsp + 0x78], r10
sub r10, rax
mov qword [rsp + 0xb8], r10
lea rbx, [r10 + 1]
mov r12, rbx
and r12, rsi
neg r9
mov rdi, qword [rsp + 0x30]
neg rdi
mov esi, 1
nop word [rax + rax]
lea rcx, [rdi + rsi]
mov eax, edx
xor edx, edx
div ebp
cmp rcx, 1
je 0x14007c8e8
add al, 0x30
mov r14d, edx
mov ecx, r11d
shl r14, cl
mov rcx, qword [rsp + 0x48]
mov byte [rcx + rsi - 1], al
lea r8, [r14 + r15]
mov r10, rbx
sub r10, r8
ja 0x14007c5f3
lea rax, [r9 + rsi]
cmp rax, 1
je 0x14007c711
mov eax, ebp
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
inc rsi
cmp ebp, 0xa
mov ebp, eax
jae 0x14007c580
lea rcx, [0x14128dc60]
lea r8, [0x14128dc40]
mov edx, 0x19
call sym.core::panicking::panic::hef3431a3c19424e4
mov edx, ebp
mov ecx, r11d
shl rdx, cl
mov rbp, qword [rsp + 0x78]
sub rbp, qword [rsp + 0x28]
lea rcx, [rbp + 1]
dec rbp
cmp r10, rdx
setb dil
cmp rbp, r8
jbe 0x14007c822
cmp r10, rdx
mov rbx, qword [rsp + 0x48]
jb 0x14007c836
mov qword [rsp + 0x30], rcx
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x68]
lea r10, [rdi + r12]
add r10, qword [rsp + 0x50]
add r10, qword [rsp + 0x60]
mov rcx, qword [rsp + 0xd0]
add rcx, qword [rsp + 0xc8]
add rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0xc0]
add r8, rcx
mov r11, r10
sub r11, r8
sub r11, r14
sub r11, r15
mov r8, qword [rsp + 0xe0]
add r8, qword [rsp + 0x90]
add r8, qword [rsp + 0x88]
add r8, qword [rsp + 0x98]
sub r10, r8
lea r9, [r15 + rdx]
sub r10, r9
sub r10, r14
mov r8, qword [rsp + 0xd8]
sub r8, qword [rsp + 0xe8]
imul r13, r8
add r13, rcx
add r13, r9
sub r13, rdi
sub r13, r12
sub r13, qword [rsp + 0x50]
add r10, 2
nop dword [rax]
lea r8, [r14 + r9]
cmp r8, rbp
jb 0x14007c6e6
lea rdi, [r14 + r13]
cmp r11, rdi
jb 0x14007c829
dec al
mov byte [rbx + rsi - 1], al
sub r10, rdx
setb dil
add r15, rdx
cmp r8, rbp
jae 0x14007c709
sub r11, rdx
add r9, rdx
add r13, rdx
test dil, dil
je 0x14007c6d0
add r14, r15
jmp 0x14007c82e
mov r8d, 1
mov r14, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
mov r13, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xa0]
nop word cs:[rax + rax]
cmp rsi, rdx
jae 0x14007c8fc
mov rbx, r8
add r15, r15
lea rax, [r15 + r15*4]
mov r15, rax
and r15, rdi
lea rcx, [r8 + r8]
lea r8, [rcx + rcx*4]
mov r9, r12
add r9, r12
lea r12, [r9 + r9*4]
mov ecx, r11d
shr rax, cl
lea ecx, [rax + 0x30]
mov byte [r14 + rsi], cl
inc rsi
mov r10, r12
sub r10, r15
jbe 0x14007c740
sub r13, qword [rsp + 0x28]
imul r13, r8
lea rcx, [r8 + r13]
cmp r10, rbp
setb r10b
jb 0x14007c874
sub r13, r8
mov r11, r13
sub r11, r15
jbe 0x14007c874
add al, 0x2f
lea r8, [r9 + r9*4]
sub r8, rbp
sub r8, r15
mov rdx, qword [rsp + 0x70]
add rdx, qword [rsp + 0x68]
add rdx, qword [rsp + 0x50]
add rdx, qword [rsp + 0x60]
add rdx, rdx
lea r9, [rdx + rdx*4]
mov rdx, qword [rsp + 0x28]
add rdx, rdx
lea rdi, [rdx + rdx*4]
sub rdi, r9
imul rdi, rbx
add rdi, rbp
nop dword [rax]
lea r9, [r15 + rbp]
cmp r9, r13
jb 0x14007c802
lea r10, [rdi + r15]
cmp r11, r10
jb 0x14007c871
mov byte [r14 + rsi - 1], al
sub r8, rbp
setb r10b
cmp r9, r13
jae 0x14007c877
dec al
sub r11, rbp
mov r15, r9
test r10b, r10b
je 0x14007c7f0
jmp 0x14007c877
mov rbx, qword [rsp + 0x48]
jmp 0x14007c836
add r14, r15
xor edi, edi
mov r8, r14
mov rcx, qword [rsp + 0x30]
mov rax, rcx
sub rax, r8
jbe 0x14007c850
test dil, dil
jne 0x14007c850
add rdx, r8
sub rdx, rcx
jb 0x14007c8c8
cmp rax, rdx
jae 0x14007c8c8
cmp r8, 2
mov rax, qword [rsp + 0x40]
jb 0x14007c8cd
mov rcx, qword [rsp + 0xb8]
add rcx, 0xfffffffffffffffd
cmp r8, rcx
ja 0x14007c8cd
mov qword [rax], rbx
jmp 0x14007c8ba
xor r10d, r10d
mov r9, r15
mov rdx, rcx
sub rdx, r9
jbe 0x14007c891
test r10b, r10b
jne 0x14007c891
add rbp, r9
sub rbp, rcx
jb 0x14007c8c8
cmp rdx, rbp
jae 0x14007c8c8
lea rcx, [rbx*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
mov rax, qword [rsp + 0x40]
ja 0x14007c8cd
shl rbx, 3
lea rcx, [rbx + rbx*4]
sub r12, rcx
cmp r9, r12
ja 0x14007c8cd
mov qword [rax], r14
mov qword [rax + 8], rsi
mov ecx, dword [rsp + 0x3c]
mov word [rax + 0x10], cx
jmp 0x14007c8d4
mov rax, qword [rsp + 0x40]
mov qword [rax], 0
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x14128dc80]
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
call sym.core::panicking::panic_bounds_check::hbf008b51f5cecb48
lea r8, [0x14128dc98]
mov rcx, rsi
call sym.core::panicking::panic_bounds_check::hbf008b51f5cecb48
lea r8, [0x14128db80]
mov edx, 0x51
call sym.core::panicking::panic_bounds_check::hbf008b51f5cecb48
mov qword [rsp + 0xf8], 0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0xf8]
call sym.core::panicking::assert_failed::he7ccf167dc1859b8
lea rcx, [0x14128d377]
lea r8, [0x14128db98]
mov edx, 0x1c
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d3b0]
lea r8, [0x14128dbb0]
mov edx, 0x1d
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d3e8]
lea r8, [0x14128dbc8]
mov edx, 0x1c
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d500]
lea r8, [0x14128dcc8]
mov edx, 0x36
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d4b0]
lea r8, [0x14128dcb0]
mov edx, 0x37
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d420]
lea r8, [0x14128dbe0]
mov edx, 0x2d
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128dbf8]
lea r8, [0x14128dc28]
mov edx, 0x2d
call sym.core::panicking::panic::hef3431a3c19424e4
lea rcx, [0x14128d1d9]
lea r8, [0x14128d218]
mov edx, 0x1d
call sym.core::panicking::panic::hef3431a3c19424e4
int3