Function at 0x1400d9400
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm7
movapd xmmword [rsp + 0x50], xmm6
mov r14, rcx
mov qword [rsp + 0x30], 0
mov rbx, qword [rcx + 0x28]
mov r15, qword [rcx + 0x158]
and r15d, 0x3f
mov rsi, rbx
mov ecx, r15d
shr rsi, cl
test rsi, rsi
je 0x1400d94ed
mov rax, rsi
shr rax, 0x3d
lea rdx, [rsi*4]
test rax, rax
mov qword [rsp + 0x38], rdx
jne 0x1400d9969
movzx eax, byte [0x14035b110]
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x1400d9975
mov rdi, rax
cmp rsi, 8
jb 0x1400d94aa
lea rax, [rdi + rsi*4]
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x30]
cmp rdx, rax
setb al
cmp rcx, rdi
jbe 0x1400d954d
test al, al
je 0x1400d954d
xor eax, eax
mov r8, rsi
mov rdx, rax
and r8, 3
je 0x1400d94db
mov r9, rax
nop dword [rax + rax]
movzx ecx, byte [rsp + 0x30]
mov r10, r9
shl r10, cl
lea rdx, [r9 + 1]
mov dword [rdi + r9*4], r10d
mov r9, rdx
dec r8
jne 0x1400d94c0
sub rax, rsi
cmp rax, 0xfffffffffffffffc
jbe 0x1400d9500
test rsi, rsi
jne 0x1400d95da
lea rcx, [0x1402cb948]
call sym.core::option::unwrap_failed::hec1ab125882a5e1e
nop dword [rax]
movzx ecx, byte [rsp + 0x30]
mov rax, rdx
shl rax, cl
mov dword [rdi + rdx*4], eax
movzx ecx, byte [rsp + 0x30]
lea eax, [rdx + 1]
shl rax, cl
mov dword [rdi + rdx*4 + 4], eax
movzx ecx, byte [rsp + 0x30]
lea rax, [rdx + 2]
mov r8, rax
shl r8, cl
mov dword [rdi + rdx*4 + 8], r8d
movzx ecx, byte [rsp + 0x30]
inc eax
shl rax, cl
mov dword [rdi + rdx*4 + 0xc], eax
add rdx, 4
cmp rdx, rsi
jne 0x1400d9500
jmp 0x1400d95da
mov rax, rsi
and rax, 0xfffffffffffffffc
movq xmm0, qword [rsp + 0x30]
pshufd xmm0, xmm0, 0x44
pand xmm0, xmmword [0x1402b5360]
movdqa xmm1, xmmword [0x1402b5370]
xor ecx, ecx
movdqa xmm2, xmmword [0x1402b5380]
pshufd xmm3, xmm0, 0xee
movdqa xmm4, xmmword [0x1402b5390]
nop word cs:[rax + rax]
movdqa xmm5, xmm1
movdqa xmm6, xmm1
psllq xmm6, xmm0
paddq xmm5, xmm2
movdqa xmm7, xmm1
psllq xmm7, xmm3
movsd xmm7, xmm6
movdqa xmm6, xmm5
psllq xmm6, xmm0
psllq xmm5, xmm3
movsd xmm5, xmm6
shufps xmm7, xmm5, 0x88
movups xmmword [rdi + rcx*4], xmm7
add rcx, 4
paddq xmm1, xmm4
cmp rax, rcx
jne 0x1400d9590
cmp rsi, rax
jne 0x1400d94ac
mov r13, qword [rsp + 0x30]
movabs r9, 0x1fffffffffffffff
mov r12, qword [r14 + 0x20]
mov qword [rsp + 0x40], r14
mov r11, qword [r14 + 0x160]
and r13d, 0x3f
mov rbp, rsi
mov r8d, esi
dec r8d
lea rdx, [rbp - 0x80000000]
nop dword [rax]
sub rbp, 1
jb 0x1400d970e
cmp rdx, 0xffffffff80000000
jbe 0x1400d98f3
mov rax, rbp
mov ecx, r15d
shl rax, cl
add rax, r11
cmp rax, rbx
jae 0x1400d9921
mov rax, qword [r12 + rax*8]
shr rax, 0x2a
cmp eax, 0x3ffffe
ja 0x1400d9610
cmp r8d, ebp
je 0x1400d96e1
mov r10d, r8d
mov qword [rsp + 0x48], r10
mov ecx, r15d
shl r10, cl
mov edx, ebp
mov r9, rdx
shl r9, cl
mov r14d, 1
cmp r10, rbx
jae 0x1400d9957
cmp r9, rbx
jae 0x1400d9945
mov rcx, qword [r12 + r10*8]
mov rax, qword [r12 + r9*8]
mov qword [r12 + r10*8], rax
mov qword [r12 + r9*8], rcx
mov rax, r14
mov ecx, r15d
shr rax, cl
inc r9
inc r10
inc r14
test rax, rax
je 0x1400d9670
mov ecx, r13d
mov r10, qword [rsp + 0x48]
shr r10, cl
shr rdx, cl
cmp r10, rsi
jae 0x1400d9984
cmp rdx, rsi
movabs r9, 0x1fffffffffffffff
jae 0x1400d9996
mov eax, dword [rdi + r10*4]
mov ecx, dword [rdi + rdx*4]
mov dword [rdi + r10*4], ecx
mov dword [rdi + rdx*4], eax
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x170], r8d
test r8d, r8d
jne 0x1400d9603
lea rcx, str.match_states_should_be_a_proper_subset_of_all_states
lea r8, [0x1402cb698]
mov edx, 0x34
call sym.core::option::expect_failed::h871cc0eae5c1c846
test rsi, rsi
je 0x1400d9742
cmp rsi, r9
ja 0x1400d9969
movzx eax, byte [0x14035b110]
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x1400d9975
mov rbp, rax
mov r8, qword [rsp + 0x38]
jmp 0x1400d974a
mov ebp, 4
xor r8d, r8d
mov rcx, rbp
mov rdx, rdi
call sym.memcpy
xor edx, edx
jmp 0x1400d976c
mov dword [rdi + rdx*4], r9d
inc rdx
cmp rdx, rsi
je 0x1400d97af
mov r8, rdx
mov ecx, r13d
shl r8, cl
cmp rdx, rsi
je 0x1400d98e1
mov eax, dword [rbp + rdx*4]
cmp eax, r8d
je 0x1400d9764
nop word [rax + rax]
mov r9d, eax
mov eax, eax
mov ecx, r13d
shr rax, cl
cmp rax, rsi
jae 0x1400d98cf
mov eax, dword [rbp + rax*4]
cmp eax, r8d
jne 0x1400d9790
jmp 0x1400d9760
mov rax, qword [rsp + 0x40]
mov r8, qword [rax + 0x150]
test r8, r8
je 0x1400d9821
xor r9d, r9d
movabs r10, 0x7ffffffffff
nop dword [rax]
mov rax, r9
inc r9
mov ecx, r15d
shl rax, cl
mov r11, r8
nop
cmp rax, rbx
jae 0x1400d98ab
mov r14, qword [r12 + rax*8]
mov rdx, r14
shr rdx, 0x2b
mov ecx, r13d
shr rdx, cl
cmp rdx, rsi
jae 0x1400d98bd
mov ecx, dword [rdi + rdx*4]
shl rcx, 0x2b
and r14, r10
or r14, rcx
mov qword [r12 + rax*8], r14
inc rax
dec r11
jne 0x1400d97e0
cmp r9, rsi
jne 0x1400d97d0
mov rax, qword [rsp + 0x40]
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x1400d9864
mov r8, qword [rax + 0x38]
xor r9d, r9d
nop word cs:[rax + rax]
mov eax, dword [r8 + r9*4]
mov ecx, r13d
shr rax, cl
cmp rax, rsi
jae 0x1400d9933
mov eax, dword [rdi + rax*4]
mov dword [r8 + r9*4], eax
inc r9
cmp rdx, r9
jne 0x1400d9840
jmp 0x1400d9869
test rsi, rsi
je 0x1400d987a
mov rcx, qword [0x14035b0d0]
xor edx, edx
mov r8, rbp
call fcn.140137fbc
test rsi, rsi
je 0x1400d9890
mov rcx, qword [0x14035b0d0]
xor edx, edx
mov r8, rdi
call fcn.140137fbc
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x1402cb978]
mov rcx, rax
mov rdx, rbx
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402cbb58]
mov rcx, rdx
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402ca318]
mov rcx, rax
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402ca300]
mov rcx, rsi
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
mov qword [rsp + 0x30], rbp
lea rax, [0x1402cb648]
mov qword [rsp + 0x20], rax
lea rcx, [0x1402cb5ba]
lea r9, [0x1402cb470]
lea r8, [rsp + 0x30]
mov edx, 0x15
call sym.core::result::unwrap_failed::h9b9528a0a4171737
lea r8, [0x1402cb918]
mov rcx, rax
mov rdx, rbx
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402cbb58]
mov rcx, rax
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402cb960]
mov rcx, r9
mov rdx, rbx
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402cb960]
mov rcx, r10
mov rdx, rbx
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
call sym.alloc::raw_vec::handle_error::h5313441c9bd13595
mov ecx, 4
mov rdx, qword [rsp + 0x38]
call sym.alloc::raw_vec::handle_error::h5313441c9bd13595
lea r8, [0x1402ca2e8]
mov rcx, r10
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
lea r8, [0x1402ca2e8]
mov rcx, rdx
mov rdx, rsi
call sym.core::panicking::panic_bounds_check::ha5eba36dbaff2278
int3