Function at 0x14008b390
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov rax, qword [rdx]
test rax, rax
je 0x14008bb99
mov r11, qword [rdx + 8]
test r11, r11
je 0x14008bbb1
mov r15, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x14008bbc9
add rcx, rax
jb 0x14008bbe1
mov r10, rax
sub r10, r11
jb 0x14008bbf9
cmp r9, 0x10
jbe 0x14008bc11
mov r11, rcx
shr r11, 0x3d
jne 0x14008bc29
mov esi, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov rdi, rcx
shl rdi, 0x20
lea r14d, [rsi - 0x20]
test rdx, rdx
cmovne rdi, rcx
cmovne r14d, esi
mov rcx, rdi
shr rcx, 0x30
mov rdx, rdi
shl rdx, 0x10
lea r11d, [r14 - 0x10]
test rcx, rcx
cmovne rdx, rdi
cmovne r11d, r14d
mov rcx, rdx
shr rcx, 0x38
mov rdi, rdx
shl rdi, 8
lea r14d, [r11 - 8]
test rcx, rcx
cmovne rdi, rdx
cmovne r14d, r11d
mov rcx, rdi
shr rcx, 0x3c
mov rdx, rdi
shl rdx, 4
test rcx, rcx
cmovne rdx, rdi
lea ecx, [r14 - 4]
cmovne ecx, r14d
mov r14, rdx
shr r14, 0x3e
lea rdi, [rdx*4]
lea r11d, [rcx - 2]
test r14, r14
cmovne rdi, rdx
cmovne r11d, ecx
xor ecx, ecx
test rdi, rdi
setns cl
shl rdi, cl
sub r11d, ecx
mov qword [rsp + 0x98], r10
mov word [rsp + 0xa0], si
mov ecx, esi
sub cx, r11w
js 0x14008bc41
and ecx, 0x3f
mov r14, r10
shl r14, cl
mov rdx, r14
shr rdx, cl
mov qword [rsp + 0x70], rdx
cmp rdx, r10
jne 0x14008bb73
mov rbx, rax
shl rbx, cl
mov r10, rbx
shr r10, cl
mov qword [rsp + 0x98], rax
mov word [rsp + 0xa0], si
mov qword [rsp + 0x70], r10
cmp r10, rax
jne 0x14008bb73
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 0x14008bb62
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], r8
shl rcx, 4
lea rax, [0x1407720e0]
mov r13, qword [rcx + rax]
movzx edx, word [rcx + rax + 0xa]
mov dword [rsp + 0x28], edx
mov rbp, rdi
shr rbp, 0x20
mov edi, edi
mov r10d, r13d
shr r13, 0x20
mov r12, r13
imul r12, rdi
mov r15, r10
imul r15, rbp
imul rdi, r10
shr rdi, 0x20
mov esi, r15d
add rsi, rdi
mov edi, r12d
add rdi, rsi
add r11w, word [rcx + rax + 8]
mov rsi, r14
shr rsi, 0x20
mov eax, r14d
mov rcx, r13
imul rcx, rsi
mov qword [rsp + 0x30], rcx
mov r14, r13
imul r14, rax
imul rsi, r10
imul rax, r10
shr rax, 0x20
mov ecx, esi
add rcx, rax
mov eax, r14d
add rax, rcx
mov rdx, rbx
shr rdx, 0x20
mov ecx, ebx
mov r8, r13
imul r8, rcx
mov rbx, r10
imul rbx, rdx
imul r10, rcx
shr r10, 0x20
mov ecx, ebx
add rcx, r10
mov r10d, r8d
add r10, rcx
mov rcx, r13
imul rcx, rbp
sub rdi, 0xffffffff80000000
shr r15, 0x20
shr r12, 0x20
shr rdi, 0x20
neg r11d
sub rax, 0xffffffff80000000
shr rsi, 0x20
shr r14, 0x20
shr rax, 0x20
mov qword [rsp + 0xc0], r13
mov qword [rsp + 0xb8], rdx
imul r13, rdx
sub r10, 0xffffffff80000000
shr rbx, 0x20
add r13, rbx
shr r8, 0x20
mov qword [rsp + 0x78], rcx
add rcx, r15
add rcx, r12
mov qword [rsp + 0x60], rdi
lea rdx, [rdi + rcx]
inc rdx
and r11d, 0x3f
mov qword [rsp + 0x38], rdx
mov ecx, r11d
shr rdx, cl
mov edi, 1
shl rdi, cl
mov qword [rsp + 0xa8], r8
add r13, r8
mov qword [rsp + 0x40], r13
shr r10, 0x20
mov qword [rsp + 0x90], r10
mov qword [rsp + 0xd0], rdi
lea r10, [rdi - 1]
cmp edx, 0x2710
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x88], r15
mov qword [rsp + 0x80], r12
mov qword [rsp + 0xc8], rbp
mov qword [rsp + 0xb0], rbx
jae 0x14008b6da
cmp edx, 0x64
jae 0x14008b703
xor ecx, ecx
cmp edx, 0xa
setae cl
lea r9d, [rcx + rcx*8]
inc r9d
jmp 0x14008b71e
cmp edx, 0xf4240
jae 0x14008ba2d
cmp edx, 0x186a0
setb cl
mov edi, 0x2710
mov r9d, 0x186a0
cmovb r9d, edi
xor cl, 5
jmp 0x14008b71e
cmp edx, 0x3e8
setb cl
mov edi, 0x64
mov r9d, 0x3e8
cmovb r9d, edi
xor cl, 3
mov r13, qword [rsp + 0x30]
mov edi, dword [rsp + 0x28]
mov r8, qword [rsp + 0x90]
add qword [rsp + 0x40], r8
mov r15, qword [rsp + 0x38]
mov rbx, r15
mov r8, r10
and rbx, r10
mov r10, r15
movzx ebp, cl
mov ecx, ebp
sub ecx, edi
inc ecx
mov dword [rsp + 0x4c], ecx
add r13, rsi
add r13, r14
add r13, rax
sub r10, r13
mov qword [rsp + 0x28], r10
lea r12, [r10 + 1]
mov r14, r12
mov qword [rsp + 0x30], r8
and r14, r8
neg rbp
mov rdi, qword [rsp + 0x68]
neg rdi
mov esi, 1
nop word cs:[rax + rax]
lea rcx, [rdi + rsi]
mov eax, edx
xor edx, edx
div r9d
cmp rcx, 1
je 0x14008bb3f
add al, 0x30
mov r15d, edx
mov ecx, r11d
shl r15, cl
mov rcx, qword [rsp + 0x58]
mov byte [rcx + rsi - 1], al
lea r8, [r15 + rbx]
mov r10, r12
sub r10, r8
ja 0x14008b807
lea rax, [rsi + rbp]
cmp rax, 1
je 0x14008b912
mov eax, r9d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
inc rsi
cmp r9d, 0xa
mov r9d, eax
jae 0x14008b790
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call dbg.panic
mov edx, r9d
mov ecx, r11d
shl rdx, cl
mov r12, qword [rsp + 0x38]
sub r12, qword [rsp + 0x40]
lea rcx, [r12 + 1]
dec r12
cmp r10, rdx
setb dil
cmp r12, r8
jbe 0x14008ba5b
cmp r10, rdx
mov r14, qword [rsp + 0x58]
jb 0x14008ba90
mov qword [rsp + 0x38], rcx
mov rdi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x80]
lea r9, [rdi + rbp]
add r9, qword [rsp + 0x60]
add r9, qword [rsp + 0x78]
mov r10, r9
sub r10, qword [rsp + 0x40]
sub r10, r15
sub r10, rbx
sub r9, r13
lea r11, [rbx + rdx]
sub r9, r11
sub r9, r15
mov rcx, qword [rsp + 0xb0]
add rcx, r11
add rcx, qword [rsp + 0xa8]
add rcx, qword [rsp + 0x90]
mov r13, qword [rsp + 0xb8]
sub r13, qword [rsp + 0xc8]
mov r8, qword [rsp + 0xc0]
imul r8, r13
add r8, rcx
sub r8, rdi
sub r8, rbp
sub r8, qword [rsp + 0x60]
mov rcx, r8
add r9, 2
nop word [rax + rax]
lea r8, [r15 + r11]
cmp r8, r12
jb 0x14008b8e6
lea rdi, [r15 + rcx]
cmp r10, rdi
jb 0x14008ba83
dec al
mov byte [r14 + rsi - 1], al
sub r9, rdx
setb dil
add rbx, rdx
cmp r8, r12
jae 0x14008b90a
sub r10, rdx
add r11, rdx
add rcx, rdx
test dil, dil
je 0x14008b8d0
add r15, rbx
jmp 0x14008ba88
mov r8d, 1
mov r12, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x68]
mov r13, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0x30]
nop word cs:[rax + rax]
cmp rsi, rdx
jae 0x14008bb53
mov r15, r8
add rbx, rbx
lea rax, [rbx + rbx*4]
mov rbx, rax
and rbx, rdi
lea rcx, [r8 + r8]
lea r8, [rcx + rcx*4]
mov r9, r14
add r9, r14
lea r14, [r9 + r9*4]
mov ecx, r11d
shr rax, cl
lea ecx, [rax + 0x30]
mov byte [r12 + rsi], cl
inc rsi
mov r10, r14
sub r10, rbx
jbe 0x14008b940
sub r13, qword [rsp + 0x40]
imul r13, r8
lea rcx, [r8 + r13]
cmp r10, rbp
setb r10b
jb 0x14008bacb
sub r13, r8
mov r11, r13
sub r11, rbx
jbe 0x14008bacb
add al, 0x2f
lea r8, [r9 + r9*4]
sub r8, rbp
sub r8, rbx
mov rdx, qword [rsp + 0x88]
add rdx, qword [rsp + 0x80]
add rdx, qword [rsp + 0x60]
add rdx, qword [rsp + 0x78]
add rdx, rdx
lea r9, [rdx + rdx*4]
mov rdx, qword [rsp + 0x40]
add rdx, rdx
lea rdi, [rdx + rdx*4]
sub rdi, r9
imul rdi, r15
add rdi, rbp
nop
lea r9, [rbx + rbp]
cmp r9, r13
jb 0x14008ba06
lea r10, [rdi + rbx]
cmp r11, r10
jb 0x14008bac8
mov byte [r12 + rsi - 1], al
sub r8, rbp
setb r10b
cmp r9, r13
jae 0x14008bace
dec al
sub r11, rbp
mov rbx, r9
test r10b, r10b
je 0x14008b9f0
jmp 0x14008bace
cmp edx, 0x5f5e100
mov r13, qword [rsp + 0x30]
jae 0x14008ba62
cmp edx, 0x989680
setb cl
mov r8d, 0xf4240
mov r9d, 0x989680
cmovb r9d, r8d
xor cl, 7
jmp 0x14008b723
mov r14, qword [rsp + 0x58]
jmp 0x14008ba90
cmp edx, 0x3b9aca00
setb cl
mov r8d, 0x5f5e100
mov r9d, 0x3b9aca00
cmovb r9d, r8d
xor cl, 9
jmp 0x14008b723
add r15, rbx
xor edi, edi
mov r8, r15
mov rcx, qword [rsp + 0x38]
mov rax, rcx
sub rax, r8
jbe 0x14008baaa
test dil, dil
jne 0x14008baaa
add rdx, r8
sub rdx, rcx
jb 0x14008bb1f
cmp rax, rdx
jae 0x14008bb1f
cmp r8, 2
mov rax, qword [rsp + 0x50]
jb 0x14008bb24
mov rcx, qword [rsp + 0x28]
add rcx, 0xfffffffffffffffd
cmp r8, rcx
ja 0x14008bb24
mov qword [rax], r14
jmp 0x14008bb11
xor r10d, r10d
mov r9, rbx
mov rdx, rcx
sub rdx, r9
jbe 0x14008bae8
test r10b, r10b
jne 0x14008bae8
add rbp, r9
sub rbp, rcx
jb 0x14008bb1f
cmp rdx, rbp
jae 0x14008bb1f
lea rcx, [r15*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
mov rax, qword [rsp + 0x50]
ja 0x14008bb24
shl r15, 3
lea rcx, [r15 + r15*4]
sub r14, rcx
cmp r9, r14
ja 0x14008bb24
mov qword [rax], r12
mov qword [rax + 8], rsi
mov ecx, dword [rsp + 0x4c]
mov word [rax + 0x10], cx
jmp 0x14008bb2b
mov rax, qword [rsp + 0x50]
mov qword [rax], 0
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, qword [rsp + 0x68]
mov rdx, rcx
call dbg.panic_bounds_check
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, rsi
call dbg.panic_bounds_check
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call dbg.panic_bounds_check
mov qword [rsp + 0xd8], 0
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x98]
lea r8, [rsp + 0xd8]
call dbg.assert_failed<u64, u64>
lea rcx, [0x140771e17]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call dbg.panic
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1d
call dbg.panic
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call dbg.panic
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 dbg.panic
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 dbg.panic
lea rcx, str.assertion_failed:_buf.len_____MAX_SIG_DIGITS
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call dbg.panic
lea rcx, str.assertion_failed:_d.mant__d.plus____1____61_
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call dbg.panic
lea rcx, [0x140771c79]
lea r8, [0x140771cb8]
mov edx, 0x1d
call dbg.panic
int3