Function at 0x10086560
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x98], r8
mov rax, qword [rdx]
test rax, rax
je 0x10086d1b
mov r8, qword [rdx + 8]
test r8, r8
je 0x10086d33
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x10086d4b
add rcx, rax
jb 0x10086d63
mov rsi, rax
sub rsi, r8
jb 0x10086d7b
cmp r9, 0x10
jbe 0x10086d93
mov r8, rcx
shr r8, 0x3d
jne 0x10086dab
mov r10d, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov r8, rcx
shl r8, 0x20
lea edi, [r10 - 0x20]
test rdx, rdx
cmovne edi, r10d
cmovne r8, rcx
mov rcx, r8
shr rcx, 0x30
mov rdx, r8
shl rdx, 0x10
lea r11d, [rdi - 0x10]
test rcx, rcx
cmovne r11d, edi
cmovne rdx, r8
mov rcx, rdx
shr rcx, 0x38
mov r8, rdx
shl r8, 8
lea edi, [r11 - 8]
test rcx, rcx
cmovne edi, r11d
cmovne r8, rdx
mov rcx, r8
shr rcx, 0x3c
mov rdx, r8
shl rdx, 4
lea r11d, [rdi - 4]
test rcx, rcx
cmovne r11d, edi
cmovne rdx, r8
mov rcx, rdx
shr rcx, 0x3e
lea rdi, [rdx*4]
lea r15d, [r11 - 2]
test rcx, rcx
cmovne r15d, r11d
cmovne rdi, rdx
xor ecx, ecx
test rdi, rdi
setns cl
sub r15d, ecx
shl rdi, cl
mov qword [rbp + 8], rsi
mov word [rbp + 0x10], r10w
mov ecx, r10d
sub cx, r15w
js 0x10086dc3
and ecx, 0x3f
mov r14, rsi
shl r14, cl
mov rdx, r14
shr rdx, cl
mov qword [rbp + 0x68], rdx
cmp rdx, rsi
jne 0x10086d02
mov rdx, rax
shl rdx, cl
mov r8, rdx
shr r8, cl
mov qword [rbp + 8], rax
mov word [rbp + 0x10], r10w
mov qword [rbp + 0x68], r8
cmp r8, rax
jne 0x10086d02
mov qword [rbp + 0x88], rbx
mov qword [rbp + 0x70], r9
mov eax, 0xffffffa0
sub eax, r15d
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 0x10086ddb
mov r9, r15
shl rcx, 4
lea r8, [0x10152a88]
mov r13, qword [rcx + r8]
movzx eax, word [rcx + r8 + 0xa]
mov dword [rbp + 0x80], eax
mov rax, rdi
shr rax, 0x20
mov qword [rbp + 0x20], rax
mov r11d, edi
mov r10d, r13d
shr r13, 0x20
mov r15, r13
imul r15, r11
mov rdi, r10
imul rdi, rax
imul r11, r10
shr r11, 0x20
mov esi, edi
add rsi, r11
mov r11d, r15d
add r11, rsi
add r9w, word [rcx + r8 + 8]
mov r12, r14
shr r12, 0x20
mov ecx, r14d
mov r8, r13
imul r8, r12
mov qword [rbp + 0x28], r8
mov r14, r13
imul r14, rcx
imul r12, r10
imul rcx, r10
shr rcx, 0x20
mov r8d, r12d
add r8, rcx
mov ebx, r14d
add rbx, r8
mov ecx, edx
mov rsi, r13
imul rsi, rcx
mov rax, r10
imul r10, rcx
shr rdx, 0x20
imul rax, rdx
shr r10, 0x20
mov ecx, eax
add rcx, r10
mov r10d, esi
add r10, rcx
mov rcx, r13
imul rcx, qword [rbp + 0x20]
sub r11, 0xffffffff80000000
shr rdi, 0x20
shr r15, 0x20
shr r11, 0x20
neg r9d
sub rbx, 0xffffffff80000000
shr r12, 0x20
shr r14, 0x20
mov qword [rbp + 0x30], r14
shr rbx, 0x20
mov qword [rbp + 0x38], rbx
mov rbx, r13
mov qword [rbp - 0x18], rdx
imul rbx, rdx
sub r10, 0xffffffff80000000
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x60], rcx
add rcx, rdi
mov qword [rbp + 0x58], r15
add rcx, r15
mov qword [rbp + 0x78], r11
add r11, rcx
inc r11
and r9d, 0x3f
mov rdx, r11
mov ecx, r9d
shr rdx, cl
shr rax, 0x20
shr rsi, 0x20
mov r8d, 1
mov qword [rbp + 0xa0], r9
shl r8, cl
mov qword [rbp - 0x20], rax
mov qword [rbp - 8], rbx
add rax, rbx
mov qword [rbp - 0x10], rsi
add rax, rsi
shr r10, 0x20
mov qword [rbp + 0x40], r10
mov qword [rbp - 0x30], r8
lea rcx, [r8 - 1]
mov qword [rbp + 0x18], rcx
cmp edx, 0x2710
jae 0x10086898
cmp edx, 0x64
jae 0x100868be
xor ecx, ecx
cmp edx, 0xa
setae cl
lea r9d, [rcx + rcx*8]
inc r9d
jmp 0x1008691e
cmp edx, 0xf4240
jae 0x100868dc
cmp edx, 0x186a0
setb cl
mov r8d, 0x2710
mov r9d, 0x186a0
cmovb r9d, r8d
xor cl, 5
jmp 0x1008691e
cmp edx, 0x3e8
setb cl
mov r8d, 0x64
mov r9d, 0x3e8
cmovb r9d, r8d
xor cl, 3
jmp 0x1008691e
cmp edx, 0x5f5e100
jae 0x10086902
cmp edx, 0x989680
setb cl
mov r8d, 0xf4240
mov r9d, 0x989680
cmovb r9d, r8d
xor cl, 7
jmp 0x1008691e
cmp edx, 0x3b9aca00
setb cl
mov r8d, 0x5f5e100
mov r9d, 0x3b9aca00
cmovb r9d, r8d
xor cl, 9
add rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rax
mov r15, r11
mov r8, qword [rbp + 0x18]
and r15, r8
movzx ebx, cl
mov ecx, ebx
sub ecx, dword [rbp + 0x80]
inc ecx
mov dword [rbp + 0x94], ecx
mov qword [rbp - 0x28], r12
mov rax, qword [rbp + 0x28]
add rax, r12
add rax, qword [rbp + 0x30]
add rax, qword [rbp + 0x38]
mov qword [rbp + 0x80], r11
sub r11, rax
mov qword [rbp], r11
inc r11
mov r12, r11
and r12, r8
neg rbx
mov rdi, qword [rbp + 0x70]
neg rdi
mov esi, 1
nop dword [rax]
lea rcx, [rdi + rsi]
mov eax, edx
xor edx, edx
div r9d
cmp rcx, 1
je 0x10086ce0
add al, 0x30
mov r14d, edx
mov rcx, qword [rbp + 0xa0]
shl r14, cl
mov rcx, qword [rbp + 0x98]
mov byte [rcx + rsi - 1], al
lea r10, [r14 + r15]
mov r8, r11
sub r8, r10
ja 0x100869f1
lea rax, [rbx + rsi]
cmp rax, 1
je 0x10086af8
mov eax, r9d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
inc rsi
cmp r9d, 0xa
mov r9d, eax
jae 0x10086980
lea rcx, str.core_src_num_flt2dec_strategygrisu.rs
call sym.core::panicking::panic_const::panic_const_div_by_zero::hc41c53e20cbd623d
mov edx, r9d
mov rcx, qword [rbp + 0xa0]
shl rdx, cl
mov r12, qword [rbp + 0x80]
sub r12, qword [rbp + 0x48]
lea rcx, [r12 + 1]
dec r12
cmp r8, rdx
setb dil
cmp r12, r10
jbe 0x10086c22
cmp r8, rdx
jb 0x10086c22
mov qword [rbp + 0xa0], rcx
mov rdi, qword [rbp + 0x50]
mov rbx, qword [rbp + 0x58]
lea r9, [rdi + rbx]
add r9, qword [rbp + 0x78]
add r9, qword [rbp + 0x60]
mov rcx, qword [rbp - 0x20]
add rcx, qword [rbp - 0x10]
add rcx, qword [rbp + 0x40]
mov r8, qword [rbp - 8]
add r8, rcx
mov r11, r9
sub r11, r8
sub r11, r14
sub r11, r15
mov r8, qword [rbp - 0x28]
add r8, qword [rbp + 0x30]
add r8, qword [rbp + 0x38]
add r8, qword [rbp + 0x28]
sub r9, r8
lea r8, [r15 + rdx]
sub r9, r8
sub r9, r14
mov r10, qword [rbp - 0x18]
sub r10, qword [rbp + 0x20]
imul r13, r10
add r13, rcx
add r13, r8
sub r13, rdi
sub r13, rbx
sub r13, qword [rbp + 0x78]
add r9, 2
nop word cs:[rax + rax]
lea r10, [r14 + r8]
cmp r10, r12
jb 0x10086ac6
lea rdi, [r14 + r13]
cmp r11, rdi
jb 0x10086c13
dec al
mov rdi, qword [rbp + 0x98]
mov byte [rdi + rsi - 1], al
sub r9, rdx
setb dil
add r15, rdx
cmp r10, r12
jae 0x10086af0
sub r11, rdx
add r8, rdx
add r13, rdx
test dil, dil
je 0x10086ab0
add r14, r15
jmp 0x10086c18
mov r8d, 1
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0xa0]
mov r13, qword [rbp - 0x30]
mov rdi, qword [rbp + 0x48]
mov r11, qword [rbp + 0x18]
nop word cs:[rax + rax]
cmp rsi, rdx
jae 0x10086cf3
mov rbx, r8
add r15, r15
lea r14, [r15 + r15*4]
mov r15, r14
and r15, r11
lea rax, [r8 + r8]
lea r8, [rax + rax*4]
mov r9, r12
add r9, r12
lea r12, [r9 + r9*4]
shr r14, cl
lea r10d, [r14 + 0x30]
mov rax, qword [rbp + 0x98]
mov byte [rax + rsi], r10b
inc rsi
mov r10, r12
sub r10, r15
jbe 0x10086b20
mov r11, qword [rbp + 0x80]
sub r11, rdi
imul r11, r8
lea rcx, [r11 + r8]
cmp r10, r13
setb r10b
jb 0x10086c5f
sub r11, r8
mov rdx, r11
sub r11, r15
jbe 0x10086c5f
add r14b, 0x2f
lea r8, [r9 + r9*4]
sub r8, r13
sub r8, r15
mov rax, qword [rbp + 0x50]
add rax, qword [rbp + 0x58]
add rax, qword [rbp + 0x78]
add rax, qword [rbp + 0x60]
add rax, rax
lea r9, [rax + rax*4]
add rdi, rdi
lea rdi, [rdi + rdi*4]
sub rdi, r9
imul rdi, rbx
add rdi, r13
mov rax, qword [rbp + 0x98]
nop word cs:[rax + rax]
lea r9, [r15 + r13]
cmp r9, rdx
jb 0x10086bf2
lea r10, [rdi + r15]
cmp r11, r10
jb 0x10086c5c
mov byte [rax + rsi - 1], r14b
sub r8, r13
setb r10b
cmp r9, rdx
jae 0x10086c62
dec r14b
sub r11, r13
mov r15, r9
test r10b, r10b
je 0x10086be0
jmp 0x10086c62
add r14, r15
xor edi, edi
mov r10, r14
mov rcx, qword [rbp + 0xa0]
mov rax, rcx
sub rax, r10
jbe 0x10086c40
test dil, dil
jne 0x10086c40
add rdx, r10
sub rdx, rcx
jb 0x10086cbe
cmp rax, rdx
jae 0x10086cbe
cmp r10, 2
mov rax, qword [rbp + 0x88]
jb 0x10086cc5
mov rcx, qword [rbp]
add rcx, 0xfffffffffffffffd
cmp r10, rcx
jbe 0x10086ca4
jmp 0x10086cc5
xor r10d, r10d
mov r9, r15
mov rdx, rcx
sub rdx, r9
jbe 0x10086c7c
test r10b, r10b
jne 0x10086c7c
add r13, r9
sub r13, rcx
jb 0x10086cbe
cmp rdx, r13
jae 0x10086cbe
lea rcx, [rbx*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
mov rax, qword [rbp + 0x88]
ja 0x10086cc5
shl rbx, 3
lea rcx, [rbx + rbx*4]
sub r12, rcx
cmp r9, r12
ja 0x10086cc5
mov rcx, qword [rbp + 0x98]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov ecx, dword [rbp + 0x94]
mov word [rax + 0x10], cx
jmp 0x10086ccc
mov rax, qword [rbp + 0x88]
mov qword [rax], 0
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov rcx, qword [rbp + 0x70]
mov rdx, rcx
call sym.core::panicking::panic_bounds_check::h2af885eb59ed1636
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov rcx, rsi
call sym.core::panicking::panic_bounds_check::h2af885eb59ed1636
mov qword [rbp - 0x60], 0
lea rcx, [rbp + 0x68]
lea rdx, [rbp + 8]
lea r8, [rbp - 0x60]
call sym.core::panicking::assert_failed::hd0bf9d6d7f762242
lea rcx, [0x101527c3]
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1d
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_d.mant.checked_add_d.plus_.is_some__
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x36
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_d.mant.checked_sub_d.minus_.is_some__
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x37
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_buf.len_____MAX_SIG_DIGITS
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, str.assertion_failed:_d.mant__d.plus____1____61_
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea rcx, [0x10152699]
lea r8, [0x101526d0]
mov edx, 0x1d
call sym.core::panicking::panic::hbd6cd6a2d9022e85
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call sym.core::panicking::panic_bounds_check::h2af885eb59ed1636
int3