Function at 0x1401578f0
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 0x140158122
mov r10, qword [rdx + 8]
test r10, r10
je 0x14015813a
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x140158152
add rcx, rax
jb 0x14015816a
mov rsi, rax
sub rsi, r10
jb 0x140158182
cmp r9, 0x10
jbe 0x14015819a
mov r10, rcx
shr r10, 0x3d
jne 0x1401581b2
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 0x1401581ca
and ecx, 0x3f
mov r10, rsi
shl r10, cl
mov rdx, r10
shr rdx, cl
mov qword [rsp + 0x58], rdx
cmp rdx, rsi
jne 0x1401580fc
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 0x1401580fc
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 0x1401580eb
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rbx
shl rcx, 4
lea r14, [0x14052cdd8]
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 0x140157c58
cmp edx, 0x64
jae 0x140157c7d
xor ecx, ecx
cmp edx, 0xa
setae cl
lea ebp, [rcx + rcx*8]
inc ebp
jmp 0x140157cda
cmp edx, 0xf4240
jae 0x140157c9a
cmp edx, 0x186a0
setb cl
mov r8d, 0x2710
mov ebp, 0x186a0
cmovb ebp, r8d
xor cl, 5
jmp 0x140157cda
cmp edx, 0x3e8
setb cl
mov r8d, 0x64
mov ebp, 0x3e8
cmovb ebp, r8d
xor cl, 3
jmp 0x140157cda
cmp edx, 0x5f5e100
jae 0x140157cbf
cmp edx, 0x989680
setb cl
mov r8d, 0xf4240
mov ebp, 0x989680
cmovb ebp, r8d
xor cl, 7
jmp 0x140157cda
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 0x1401580c8
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 0x140157dd3
lea rax, [r9 + rsi]
cmp rax, 1
je 0x140157ef1
mov eax, ebp
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
inc rsi
cmp ebp, 0xa
mov ebp, eax
jae 0x140157d60
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call fcn.14016c250
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 0x140158002
cmp r10, rdx
mov rbx, qword [rsp + 0x48]
jb 0x140158016
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 0x140157ec6
lea rdi, [r14 + r13]
cmp r11, rdi
jb 0x140158009
dec al
mov byte [rbx + rsi - 1], al
sub r10, rdx
setb dil
add r15, rdx
cmp r8, rbp
jae 0x140157ee9
sub r11, rdx
add r9, rdx
add r13, rdx
test dil, dil
je 0x140157eb0
add r14, r15
jmp 0x14015800e
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 0x1401580dc
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 0x140157f20
sub r13, qword [rsp + 0x28]
imul r13, r8
lea rcx, [r8 + r13]
cmp r10, rbp
setb r10b
jb 0x140158054
sub r13, r8
mov r11, r13
sub r11, r15
jbe 0x140158054
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 0x140157fe2
lea r10, [rdi + r15]
cmp r11, r10
jb 0x140158051
mov byte [r14 + rsi - 1], al
sub r8, rbp
setb r10b
cmp r9, r13
jae 0x140158057
dec al
sub r11, rbp
mov r15, r9
test r10b, r10b
je 0x140157fd0
jmp 0x140158057
mov rbx, qword [rsp + 0x48]
jmp 0x140158016
add r14, r15
xor edi, edi
mov r8, r14
mov rcx, qword [rsp + 0x30]
mov rax, rcx
sub rax, r8
jbe 0x140158030
test dil, dil
jne 0x140158030
add rdx, r8
sub rdx, rcx
jb 0x1401580a8
cmp rax, rdx
jae 0x1401580a8
cmp r8, 2
mov rax, qword [rsp + 0x40]
jb 0x1401580ad
mov rcx, qword [rsp + 0xb8]
add rcx, 0xfffffffffffffffd
cmp r8, rcx
ja 0x1401580ad
mov qword [rax], rbx
jmp 0x14015809a
xor r10d, r10d
mov r9, r15
mov rdx, rcx
sub rdx, r9
jbe 0x140158071
test r10b, r10b
jne 0x140158071
add rbp, r9
sub rbp, rcx
jb 0x1401580a8
cmp rdx, rbp
jae 0x1401580a8
lea rcx, [rbx*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
mov rax, qword [rsp + 0x40]
ja 0x1401580ad
shl rbx, 3
lea rcx, [rbx + rbx*4]
sub r12, rcx
cmp r9, r12
ja 0x1401580ad
mov qword [rax], r14
mov qword [rax + 8], rsi
mov ecx, dword [rsp + 0x3c]
mov word [rax + 0x10], cx
jmp 0x1401580b4
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, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
call fcn.14016c310
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, rsi
call fcn.14016c310
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call fcn.14016c310
mov qword [rsp + 0xf8], 0
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0xa8]
lea r8, [rsp + 0xf8]
call fcn.14016c3b0
lea rcx, [0x14052cb0f]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.14016c250
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1d
call fcn.14016c250
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.14016c250
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.14016c250
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.14016c250
lea rcx, str.assertion_failed:_buf.len_____MAX_SIG_DIGITS
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call fcn.14016c250
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.14016c250
lea rcx, str.assertion_failed:_edelta___0librarycore_src_numdiy_float.rs
lea r8, [0x14052c9b0]
mov edx, 0x1d
call fcn.14016c250
int3