Function at 0x140016af0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov rax, qword [rdx]
test rax, rax
je 0x14001728e
mov r9, qword [rdx + 8]
test r9, r9
je 0x1400172a6
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x1400172be
add rcx, rax
jb 0x1400172d6
mov rsi, rax
sub rsi, r9
jb 0x1400172ee
mov r9, rcx
shr r9, 0x3d
jne 0x140017306
mov r11d, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov rdi, rcx
shl rdi, 0x20
lea r9d, [r11 - 0x20]
test rdx, rdx
cmovne rdi, rcx
cmovne r9d, r11d
mov rcx, rdi
shr rcx, 0x30
mov rdx, rdi
shl rdx, 0x10
lea r10d, [r9 - 0x10]
test rcx, rcx
cmovne rdx, rdi
cmovne r10d, r9d
mov rcx, rdx
shr rcx, 0x38
mov rdi, rdx
shl rdi, 8
lea r9d, [r10 - 8]
test rcx, rcx
cmovne rdi, rdx
cmovne r9d, r10d
mov rcx, rdi
shr rcx, 0x3c
mov rdx, rdi
shl rdx, 4
test rcx, rcx
cmovne rdx, rdi
lea ecx, [r9 - 4]
cmovne ecx, r9d
mov r9, rdx
shr r9, 0x3e
lea rdi, [rdx*4]
lea ebp, [rcx - 2]
test r9, r9
cmovne rdi, rdx
cmovne ebp, ecx
xor ecx, ecx
test rdi, rdi
setns cl
shl rdi, cl
sub ebp, ecx
mov qword [rsp + 0x68], rsi
mov word [rsp + 0x70], r11w
mov ecx, r11d
sub cx, bp
js 0x14001731e
and ecx, 0x3f
mov r9, rsi
shl r9, cl
mov rdx, r9
shr rdx, cl
mov qword [rsp + 0x50], rdx
cmp rdx, rsi
jne 0x14001726b
mov rdx, rax
shl rdx, cl
mov r10, rdx
shr r10, cl
mov qword [rsp + 0x68], rax
mov word [rsp + 0x70], r11w
mov qword [rsp + 0x50], r10
cmp r10, rax
jne 0x14001726b
mov eax, 0xffffffa0
sub eax, ebp
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 0x14001725a
mov r15, r8
mov qword [rsp + 0x40], rbx
shl rcx, 4
lea rbx, [0x1400a1d50]
mov r14, qword [rcx + rbx]
movzx eax, word [rcx + rbx + 0xa]
mov dword [rsp + 0x20], eax
mov rax, rdi
shr rax, 0x20
mov r8, rax
mov qword [rsp + 0x60], rax
mov esi, edi
mov r11d, r14d
shr r14, 0x20
mov rax, r14
imul rax, rsi
mov rdi, rax
mov qword [rsp + 0x48], rax
mov rax, r11
imul rax, r8
imul rsi, r11
shr rsi, 0x20
mov r10d, eax
add r10, rsi
mov esi, edi
add rsi, r10
add bp, word [rcx + rbx + 8]
mov rdi, r9
shr rdi, 0x20
mov ecx, r9d
mov r9, r14
imul r9, rdi
mov qword [rsp + 0x30], r9
mov r13, r14
imul r13, rcx
imul rdi, r11
imul rcx, r11
shr rcx, 0x20
mov r9d, edi
add r9, rcx
mov r12d, r13d
add r12, r9
mov rbx, rdx
shr rbx, 0x20
mov ecx, edx
mov r8, r14
imul r8, rcx
mov rdx, r11
imul rdx, rbx
imul r11, rcx
shr r11, 0x20
mov ecx, edx
add rcx, r11
mov r10d, r8d
add r10, rcx
mov rcx, r14
imul rcx, qword [rsp + 0x60]
sub rsi, 0xffffffff80000000
shr rax, 0x20
mov r9, qword [rsp + 0x48]
shr r9, 0x20
shr rsi, 0x20
neg ebp
sub r12, 0xffffffff80000000
shr rdi, 0x20
shr r13, 0x20
mov qword [rsp + 0x28], r13
shr r12, 0x20
mov qword [rsp + 0xb0], r14
mov r13, r14
mov r14, r9
imul r13, rbx
sub r10, 0xffffffff80000000
shr rdx, 0x20
add r13, rdx
shr r8, 0x20
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x80], rcx
add rcx, rax
add rcx, r9
lea r9, [rsi + rcx]
inc r9
and ebp, 0x3f
mov r11, r9
mov ecx, ebp
shr r11, cl
mov eax, 1
shl rax, cl
mov qword [rsp + 0x88], r8
add r13, r8
shr r10, 0x20
mov qword [rsp + 0x58], r10
mov qword [rsp + 0xc0], rax
lea r10, [rax - 1]
cmp r11d, 0x2710
mov qword [rsp + 0x48], r14
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x90], rdx
jae 0x140016e30
cmp r11d, 0x64
jae 0x140016e55
xor ecx, ecx
cmp r11d, 0xa
setae cl
lea ebx, [rcx + rcx*8]
inc ebx
jmp 0x140016eb0
cmp r11d, 0xf4240
jae 0x140016e71
cmp r11d, 0x186a0
setb cl
mov edx, 0x2710
mov ebx, 0x186a0
cmovb ebx, edx
xor cl, 5
jmp 0x140016eb0
cmp r11d, 0x3e8
setb cl
mov edx, 0x64
mov ebx, 0x3e8
cmovb ebx, edx
xor cl, 3
jmp 0x140016eb0
cmp r11d, 0x5f5e100
jae 0x140016e96
cmp r11d, 0x989680
setb cl
mov edx, 0xf4240
mov ebx, 0x989680
cmovb ebx, edx
xor cl, 7
jmp 0x140016eb0
cmp r11d, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov ebx, 0x3b9aca00
cmovb ebx, edx
xor cl, 9
mov rax, qword [rsp + 0x30]
mov edx, dword [rsp + 0x20]
add r13, qword [rsp + 0x58]
mov qword [rsp + 0x20], r13
mov rsi, r9
and rsi, r10
movzx r8d, cl
mov ecx, r8d
sub ecx, edx
inc ecx
mov dword [rsp + 0x3c], ecx
add rax, rdi
add rax, qword [rsp + 0x28]
add rax, r12
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], rax
sub r9, rax
mov qword [rsp + 0x78], r9
mov rax, r10
lea r10, [r9 + 1]
mov r12, r10
mov qword [rsp + 0xb8], rax
and r12, rax
xor r14d, r14d
nop dword [rax]
mov eax, r11d
xor edx, edx
div ebx
add al, 0x30
mov rdi, r15
mov byte [r15 + r14], al
mov r11d, edx
mov rdx, r11
mov r13, rbp
mov ecx, ebp
shl rdx, cl
lea r15, [r14 + 1]
lea r9, [rdx + rsi]
mov rbp, r10
sub rbp, r9
ja 0x140016f7e
cmp r8, r14
je 0x140017091
mov eax, ebx
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
mov r14, r15
cmp ebx, 0xa
mov ebx, eax
mov r15, rdi
mov rbp, r13
jae 0x140016f10
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call fcn.140052fe0
mov r8d, ebx
mov ecx, r13d
shl r8, cl
mov rcx, r8
mov r13, qword [rsp + 0x28]
sub r13, qword [rsp + 0x20]
lea r10, [r13 + 1]
dec r13
cmp rbp, r8
setb r8b
cmp r13, r9
jbe 0x140017180
cmp rbp, rcx
jb 0x140017180
mov qword [rsp + 0x28], r10
mov r12, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x48]
lea r10, [r12 + r8]
mov rbp, qword [rsp + 0xa0]
add r10, rbp
add r10, qword [rsp + 0x80]
mov r11, r10
sub r11, qword [rsp + 0x20]
sub r11, r9
lea rbx, [rsi + rcx]
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x90]
add rcx, rbx
add rcx, qword [rsp + 0x88]
add rcx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x98]
sub r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0xb0]
imul r9, r8
add r9, rcx
mov rcx, qword [rsp + 0x20]
sub r9, r12
sub r9, qword [rsp + 0x48]
sub r9, rbp
sub r10, qword [rsp + 0x30]
sub r10, rbx
sub r10, rdx
add r10, 2
nop word cs:[rax + rax]
lea r12, [rdx + rbx]
cmp r12, r13
jb 0x140017066
lea r8, [rdx + r9]
cmp r11, r8
jb 0x140017172
dec al
mov byte [rdi + r14], al
sub r10, rcx
setb r8b
add rsi, rcx
cmp r12, r13
jae 0x140017089
sub r11, rcx
add r9, rcx
add rbx, rcx
test r8b, r8b
je 0x140017050
add rdx, rsi
jmp 0x140017178
inc r14
mov r8d, 1
mov rbx, rdi
mov rcx, r13
mov r15, qword [rsp + 0x28]
mov r13, qword [rsp + 0xc0]
mov r10, qword [rsp + 0xb8]
nop word cs:[rax + rax]
cmp r14, 0x10
ja 0x140017244
mov rax, r8
add rsi, rsi
lea rdx, [rsi + rsi*4]
mov rsi, rdx
and rsi, r10
add r8, r8
lea r8, [r8 + r8*4]
add r12, r12
lea r12, [r12 + r12*4]
shr rdx, cl
lea r9d, [rdx + 0x30]
mov byte [rbx + r14], r9b
inc r14
mov r9, r12
sub r9, rsi
jbe 0x1400170c0
sub r15, qword [rsp + 0x20]
imul r15, r8
lea rcx, [r15 + r8]
cmp r9, r13
setb r10b
jb 0x1400171d0
sub r15, r8
mov r8, r15
sub r8, rsi
jbe 0x1400171d0
add dl, 0x2f
mov r11, r13
sub r11, r15
mov rdi, r12
sub rdi, r13
sub rdi, rsi
nop dword [rax]
lea r9, [rsi + r13]
cmp r9, r15
jb 0x140017152
lea r10, [r11 + rsi]
cmp r8, r10
jb 0x1400171cd
mov byte [rbx + r14 - 1], dl
sub rdi, r13
setb r10b
cmp r9, r15
jae 0x1400171d3
dec dl
sub r8, r13
mov rsi, r9
test r10b, r10b
je 0x140017140
jmp 0x1400171d3
add rdx, rsi
xor r8d, r8d
mov r9, rdx
mov r10, qword [rsp + 0x28]
mov rax, r10
sub rax, r9
mov rdx, qword [rsp + 0x40]
jbe 0x14001719f
test r8b, r8b
jne 0x14001719f
add rcx, r9
sub rcx, r10
jb 0x1400171c4
cmp rax, rcx
jae 0x1400171c4
cmp r9, 2
jb 0x1400171c4
mov rax, qword [rsp + 0x78]
add rax, 0xfffffffffffffffd
cmp r9, rax
ja 0x1400171c4
mov qword [rdx], rdi
mov qword [rdx + 8], r15
mov eax, dword [rsp + 0x3c]
mov word [rdx + 0x10], ax
jmp 0x14001721a
mov qword [rdx], 0
jmp 0x14001721a
xor r10d, r10d
mov r9, rsi
mov rdx, rcx
sub rdx, r9
jbe 0x1400171ed
test r10b, r10b
jne 0x1400171ed
add r13, r9
sub r13, rcx
jb 0x14001720e
cmp rdx, r13
jae 0x14001720e
lea rcx, [rax*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
ja 0x14001720e
shl rax, 3
lea rax, [rax + rax*4]
sub r12, rax
cmp r9, r12
jbe 0x14001722e
mov rax, qword [rsp + 0x40]
mov qword [rax], 0
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x40]
mov qword [rax], rbx
mov qword [rax + 8], r14
mov ecx, dword [rsp + 0x3c]
mov word [rax + 0x10], cx
jmp 0x14001721a
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov ecx, 0x11
mov edx, 0x11
call fcn.140052ee0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call fcn.140052ee0
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x68]
lea r8, [rsp + 0xc8]
call fcn.140053030
lea rcx, [0x1400a1acf]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.140052fe0
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1d
call fcn.140052fe0
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.140052fe0
lea rcx, str.assertion_failed:_d.mant.checked_add_d.plus_.is_some__
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x36
call fcn.140052fe0
lea rcx, str.assertion_failed:_d.mant.checked_sub_d.minus_.is_some__
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x37
call fcn.140052fe0
lea rcx, str.assertion_failed:_d.mant__d.plus____1____61_
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call fcn.140052fe0
lea rcx, str.assertion_failed:_edelta___0librarycore_src_numdiy_float.rs
lea r8, [0x1400a1970]
mov edx, 0x1d
call fcn.140052fe0
int3