Function at 0x53c310
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 rsi, qword [rdx]
test rsi, rsi
je 0x53cb2a
mov rax, qword [rdx + 8]
test rax, rax
je 0x53cb3a
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x53cb4d
add rcx, rsi
jb 0x53cb67
mov rdi, rsi
sub rdi, rax
jb 0x53cb81
cmp r9, 0x11
jb 0x53cb9b
mov rax, rcx
shr rax, 0x3d
jne 0x53cbab
mov rbp, r8
mov eax, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov r8, rcx
shl r8, 0x20
lea r11d, [rax - 0x20]
test rdx, rdx
cmovne r8, rcx
cmovne r11d, eax
mov rcx, r8
shr rcx, 0x30
mov rdx, r8
shl rdx, 0x10
lea r10d, [r11 - 0x10]
test rcx, rcx
cmovne rdx, r8
cmovne r10d, r11d
mov rcx, rdx
shr rcx, 0x38
mov r8, rdx
shl r8, 8
lea r11d, [r10 - 8]
test rcx, rcx
cmovne r8, rdx
cmovne r11d, r10d
mov rcx, r8
shr rcx, 0x3c
mov r10, r8
shl r10, 4
test rcx, rcx
cmovne r10, r8
lea ecx, [r11 - 4]
cmovne ecx, r11d
mov r8, r10
shr r8, 0x3e
lea rdx, [r10*4]
lea r11d, [rcx - 2]
test r8, r8
cmovne rdx, r10
cmovne r11d, ecx
xor ecx, ecx
test rdx, rdx
setns cl
shl rdx, cl
sub r11d, ecx
mov qword [rsp + 0x88], rdi
mov word [rsp + 0x90], ax
mov ecx, eax
sub cx, r11w
js 0x53cbc5
and ecx, 0x3f
mov r8, 0xffffffffffffffff
shr r8, cl
mov r10, r8
and r10, rdi
mov qword [rsp + 0x60], r10
cmp rdi, r8
ja 0x53caf4
shl rdi, cl
mov qword [rsp + 0x88], rsi
mov word [rsp + 0x90], ax
mov rax, r8
and rax, rsi
mov qword [rsp + 0x60], rax
cmp rsi, r8
ja 0x53caf4
mov eax, 0xffffffa0
sub eax, r11d
cwde
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x153b0
cdqe
imul rax, rax, 0x7b4dc993
mov r8, rax
shr r8, 0x3f
sar rax, 0x2a
add eax, r8d
cdqe
cmp eax, 0x51
jae 0x53cade
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x50], rbx
shl rsi, cl
shl rax, 4
lea r8, [0x0065e920]
mov r15, qword [rax + r8]
movzx ecx, word [rax + r8 + 0xa]
mov dword [rsp + 0x28], ecx
mov rcx, rdx
shr rcx, 0x20
mov r9, rcx
mov qword [rsp + 0x80], rcx
mov edx, edx
mov ecx, r15d
shr r15, 0x20
mov r12, r15
imul r12, rdx
mov r13, rcx
imul r13, r9
imul rdx, rcx
shr rdx, 0x20
mov r10d, r13d
add r10, rdx
mov ebx, r12d
add r11w, word [rax + r8 + 8]
add rbx, r10
mov rdx, rdi
shr rdx, 0x20
mov eax, edi
mov rdi, rdx
mov rdx, r15
imul rdx, rdi
mov qword [rsp + 0x38], rdx
mov r9, r15
imul r9, rax
imul rdi, rcx
imul rax, rcx
shr rax, 0x20
mov edx, edi
add rdx, rax
mov eax, r9d
add rax, rdx
mov r8, rsi
shr r8, 0x20
mov edx, esi
mov r14, r15
imul r14, rdx
mov rsi, rcx
imul rsi, r8
imul rcx, rdx
shr rcx, 0x20
mov edx, esi
add rdx, rcx
mov r10d, r14d
add r10, rdx
mov rcx, r15
imul rcx, qword [rsp + 0x80]
sub rbx, 0xffffffff80000000
shr r13, 0x20
shr r12, 0x20
mov qword [rsp + 0xc8], r13
mov qword [rsp + 0x98], rcx
add rcx, r13
mov qword [rsp + 0x68], r12
add rcx, r12
shr rbx, 0x20
neg r11d
sub rax, 0xffffffff80000000
shr rdi, 0x20
shr r9, 0x20
mov qword [rsp + 0x58], r9
shr rax, 0x20
mov qword [rsp + 0xd0], r15
mov r12, r15
mov qword [rsp + 0xb0], r8
imul r12, r8
sub r10, 0xffffffff80000000
shr rsi, 0x20
mov qword [rsp + 0xa8], rsi
add r12, rsi
shr r14, 0x20
lea rsi, [rcx + rbx]
mov qword [rsp + 0xc0], rbx
lea rdx, [rbx + rcx]
inc rdx
and r11d, 0x3f
mov qword [rsp + 0x40], rdx
mov ecx, r11d
shr rdx, cl
mov r8d, 1
shl r8, cl
mov qword [rsp + 0xa0], r14
add r12, r14
shr r10, 0x20
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x70], r8
lea r10, [r8 - 1]
cmp edx, 0x2710
jae 0x53c66c
cmp edx, 0x64
jae 0x53c692
xor ecx, ecx
cmp edx, 0xa
setae cl
lea r15d, [rcx + rcx*8]
inc r15d
jmp 0x53c6ae
cmp edx, 0xf4240
jae 0x53c6ba
cmp edx, 0x186a0
setb cl
mov r8d, 0x2710
mov r15d, 0x186a0
cmovb r15d, r8d
xor cl, 5
jmp 0x53c6ae
cmp edx, 0x3e8
setb cl
mov r8d, 0x64
mov r15d, 0x3e8
cmovb r15d, r8d
xor cl, 3
mov r9d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x38]
jmp 0x53c706
cmp edx, 0x5f5e100
mov r13, qword [rsp + 0x38]
jae 0x53c6e5
cmp edx, 0x989680
setb cl
mov r8d, 0xf4240
mov r15d, 0x989680
cmovb r15d, r8d
xor cl, 7
jmp 0x53c701
cmp edx, 0x3b9aca00
setb cl
mov r8d, 0x5f5e100
mov r15d, 0x3b9aca00
cmovb r15d, r8d
xor cl, 9
mov r9d, dword [rsp + 0x28]
add r12, qword [rsp + 0x78]
mov qword [rsp + 0x28], r12
mov rbx, qword [rsp + 0x40]
mov r14, r10
and rbx, r10
movzx r8d, cl
mov ecx, r8d
sub ecx, r9d
inc ecx
mov dword [rsp + 0x4c], ecx
add rdi, r13
add rdi, qword [rsp + 0x58]
add rdi, rax
mov qword [rsp + 0xb8], rdi
sub rsi, rdi
mov qword [rsp + 0x58], rsi
lea r13, [rsi + 2]
mov r10, r13
mov qword [rsp + 0x38], r14
and r10, r14
xor esi, esi
mov edi, 0xcccccccd
nop dword [rax]
mov eax, edx
xor edx, edx
div r15d
cmp qword [rsp + 0x30], rsi
je 0x53cab7
add al, 0x30
mov r12d, edx
mov ecx, r11d
shl r12, cl
mov r14, rbp
mov byte [rbp + rsi], al
lea rbp, [r12 + rbx]
mov r9, r13
sub r9, rbp
ja 0x53c7cd
cmp r8, rsi
je 0x53c8f7
mov eax, r15d
imul rax, rdi
shr rax, 0x23
inc rsi
cmp r15d, 0xa
mov r15d, eax
mov rbp, r14
jae 0x53c760
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x19
call fcn.00532500
ud2
mov edi, r15d
mov ecx, r11d
shl rdi, cl
lea rcx, [rsi + 1]
mov rdx, qword [rsp + 0x30]
cmp rsi, rdx
jae 0x53cbdf
mov r8, qword [rsp + 0x40]
mov r10, qword [rsp + 0x28]
sub r8, r10
lea r11, [r8 + 1]
dec r8
cmp r9, rdi
setae r15b
cmp r8, rbp
jbe 0x53c9fb
cmp r9, rdi
jb 0x53c9fb
mov rdx, r8
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x30], rcx
mov rcx, r10
mov r13, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x68]
lea r10, [r8 + r13]
mov rbp, qword [rsp + 0xc0]
add r10, rbp
add r10, qword [rsp + 0x98]
mov r11, r10
sub r11, rcx
sub r11, r12
sub r11, rbx
sub r10, qword [rsp + 0xb8]
lea r8, [rbx + rdi]
sub r10, r8
sub r10, r12
mov r9, qword [rsp + 0xa8]
add r9, r8
add r9, qword [rsp + 0xa0]
add r9, qword [rsp + 0x78]
mov r15, qword [rsp + 0xb0]
sub r15, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xd0]
imul rcx, r15
add rcx, r9
sub rcx, r13
sub rcx, qword [rsp + 0x68]
sub rcx, rbp
add r10, 2
mov rbp, r14
lea r13, [r12 + r8]
cmp r13, rdx
jb 0x53c8c6
lea r9, [r12 + rcx]
cmp r11, r9
jb 0x53c9e8
dec al
mov r9, r10
sub r9, rdi
setae r15b
add rbx, rdi
mov byte [rbp + rsi], al
cmp r13, rdx
jae 0x53c8ef
sub r11, rdi
add rcx, rdi
add r8, rdi
cmp r10, rdi
mov r10, r9
jae 0x53c8b0
add r12, rbx
jmp 0x53c9ee
inc rsi
mov r9d, 1
mov r13, r14
mov rdx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
nop word cs:[rax + rax]
cmp rsi, rdx
jae 0x53cacd
mov r12, r9
add rbx, rbx
lea rax, [rbx + rbx*4]
mov rbx, rax
and rbx, r14
lea rcx, [r9 + r9]
lea r9, [rcx + rcx*4]
mov r8, r10
add r8, r10
lea r10, [r8 + r8*4]
mov ecx, r11d
shr rax, cl
lea ecx, [rax + 0x30]
mov byte [r13 + rsi], cl
inc rsi
mov rdi, r10
sub rdi, rbx
jbe 0x53c920
sub rbp, qword [rsp + 0x28]
imul rbp, r9
lea rcx, [r9 + rbp]
mov rdx, qword [rsp + 0x70]
cmp rdi, rdx
setae r11b
jb 0x53ca3e
sub rbp, r9
mov r9, rbp
sub r9, rbx
jbe 0x53ca3e
add al, 0x2f
lea rdi, [r8 + r8*4]
sub rdi, rdx
sub rdi, rbx
mov r14, rdx
sub r14, rbp
nop word cs:[rax + rax]
lea r8, [rbx + rdx]
cmp r8, rbp
jb 0x53c9c2
lea r11, [r14 + rbx]
cmp r9, r11
jb 0x53ca3b
mov r15, rdi
sub r15, rdx
setae r11b
mov byte [r13 + rsi - 1], al
cmp r8, rbp
jae 0x53ca41
dec al
sub r9, rdx
mov rbx, r8
cmp rdi, rdx
mov rdi, r15
jae 0x53c9b0
jmp 0x53ca41
add r12, rbx
mov r15b, 1
mov rbp, r12
mov rcx, qword [rsp + 0x30]
mov r11, qword [rsp + 0x40]
mov rax, r11
sub rax, rbp
jbe 0x53ca19
test r15b, r15b
je 0x53ca19
add rdi, rbp
sub rdi, r11
jb 0x53ca97
cmp rax, rdi
jae 0x53ca97
cmp rbp, 2
mov rax, qword [rsp + 0x50]
jb 0x53ca9c
mov rdx, qword [rsp + 0x58]
add rdx, 0xfffffffffffffffe
cmp rbp, rdx
ja 0x53ca9c
mov qword [rax], r14
mov qword [rax + 8], rcx
jmp 0x53ca8d
mov r11b, 1
mov r8, rbx
mov rdx, rcx
sub rdx, r8
jbe 0x53ca60
test r11b, r11b
je 0x53ca60
mov rax, qword [rsp + 0x70]
add rax, r8
sub rax, rcx
jb 0x53ca97
cmp rdx, rax
jae 0x53ca97
lea rcx, [r12*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r8
mov rax, qword [rsp + 0x50]
ja 0x53ca9c
shl r12, 3
lea rcx, [r12 + r12*4]
sub r10, rcx
cmp r8, r10
ja 0x53ca9c
mov qword [rax], r13
mov qword [rax + 8], rsi
mov ecx, dword [rsp + 0x4c]
mov word [rax + 0x10], cx
jmp 0x53caa3
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.library_core_src_num_flt2dec_strategy_grisu.rs
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
call fcn.005325b0
ud2
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov rcx, rsi
call fcn.005325b0
ud2
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x51
mov rcx, rax
call fcn.005325b0
ud2
mov qword [rsp + 0xe8], 0
lea rax, [0x006577e8]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x60]
lea r8, [rsp + 0x88]
lea r9, [rsp + 0xd8]
xor ecx, ecx
call fcn.00532830
ud2
lea rcx, str.assertion_failed:_d.mant___0
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
jmp 0x53cb5b
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
jmp 0x53cbd3
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x1c
call fcn.00532500
ud2
lea rcx, str.assertion_failed:_d.mant.checked_add_d.plus_.is_some__
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x36
call fcn.00532500
ud2
lea rcx, str.assertion_failed:_d.mant.checked_sub_d.minus_.is_some__
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x37
call fcn.00532500
ud2
lea rcx, str.assertion_failed:_buf.len_____MAX_SIG_DIGITS
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
jmp 0x53cbb9
lea rcx, str.assertion_failed:_d.mant__d.plus____1____61_
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
mov edx, 0x2d
call fcn.00532500
ud2
lea rcx, str.assertion_failed:_edelta___0library_core_src_num_diy_float.rs
lea r8, [0x006577d0]
mov edx, 0x1d
call fcn.00532500
ud2
lea r8, str.library_core_src_num_flt2dec_strategy_grisu.rs
call fcn.0053de60
ud2