Function at 0x49efc0
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 qword [rsp + 0x40], r8
mov rbx, qword [rdx]
test rbx, rbx
je 0x49f7c5
mov rax, qword [rdx + 8]
test rax, rax
je 0x49f7d5
mov rdi, qword [rdx + 0x10]
test rdi, rdi
je 0x49f7e8
add rdi, rbx
jb 0x49f802
mov rbp, rbx
sub rbp, rax
jb 0x49f81c
cmp r9, 0x11
jb 0x49f836
mov rax, rdi
shr rax, 0x3d
jne 0x49f846
mov r8, rcx
mov eax, dword [rdx + 0x18]
mov rdx, rdi
shr rdx, 0x20
mov rcx, rdi
shl rcx, 0x20
test rdx, rdx
cmovne rcx, rdi
lea edx, [rax - 0x20]
cmovne edx, eax
mov rdi, rcx
shr rdi, 0x30
mov rsi, rcx
shl rsi, 0x10
test rdi, rdi
cmovne rsi, rcx
lea edi, [rdx - 0x10]
cmovne edi, edx
mov rdx, rsi
shr rdx, 0x38
mov rcx, rsi
shl rcx, 8
test rdx, rdx
cmovne rcx, rsi
lea edx, [rdi - 8]
cmovne edx, edi
mov rsi, rcx
shr rsi, 0x3c
mov rdi, rcx
shl rdi, 4
test rsi, rsi
cmovne rdi, rcx
lea ecx, [rdx - 4]
cmovne ecx, edx
mov rdx, rdi
shr rdx, 0x3e
lea r10, [rdi*4]
test rdx, rdx
cmovne r10, rdi
lea edi, [rcx - 2]
cmovne edi, ecx
mov rcx, r10
not rcx
shr rcx, 0x3f
mov rdx, r10
shl rdx, cl
sar r10, 0x3f
not r10d
add r10d, edi
mov qword [rsp + 0x88], rbp
mov word [rsp + 0x90], ax
mov ecx, eax
sub cx, r10w
js 0x49f860
and ecx, 0x3f
mov rsi, 0xffffffffffffffff
shr rsi, cl
mov rdi, rsi
and rdi, rbp
mov qword [rsp + 0x68], rdi
cmp rbp, rsi
ja 0x49f79d
shl rbp, cl
mov qword [rsp + 0x88], rbx
mov word [rsp + 0x90], ax
mov rax, rsi
and rax, rbx
mov qword [rsp + 0x68], rax
cmp rbx, rsi
ja 0x49f79d
shl rbx, cl
mov eax, 0xffffffa0
sub eax, r10d
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 0x49f78a
mov qword [rsp + 0x48], r8
shl rcx, 4
lea r14, [0x0091cc18]
mov r15, qword [rcx + r14]
movzx eax, word [rcx + r14 + 0xa]
mov dword [rsp + 0x28], eax
mov rax, rdx
shr rax, 0x20
mov qword [rsp + 0x80], rax
mov edi, edx
mov edx, r15d
shr r15, 0x20
mov r11, r15
imul r11, rdi
mov r8, rdx
imul r8, rax
imul rdi, rdx
shr rdi, 0x20
mov esi, r8d
add rsi, rdi
mov edi, r11d
add r10w, word [rcx + r14 + 8]
add rdi, rsi
mov r14, rbp
shr r14, 0x20
mov ecx, ebp
mov rsi, r15
imul rsi, r14
mov qword [rsp + 0x30], rsi
mov rax, r15
imul rax, rcx
imul r14, rdx
imul rcx, rdx
shr rcx, 0x20
mov ebp, r14d
add rbp, rcx
mov r12d, eax
add r12, rbp
mov r13, rbx
shr r13, 0x20
mov ecx, ebx
mov rbx, r15
imul rbx, rcx
mov rsi, rdx
imul rsi, r13
imul rdx, rcx
shr rdx, 0x20
mov ecx, esi
add rcx, rdx
mov ebp, ebx
add rbp, rcx
mov rcx, r15
imul rcx, qword [rsp + 0x80]
sub rdi, 0xffffffff80000000
shr r8, 0x20
shr r11, 0x20
shr rdi, 0x20
neg r10d
sub r12, 0xffffffff80000000
shr r14, 0x20
shr rax, 0x20
mov qword [rsp + 0x60], rax
shr r12, 0x20
mov qword [rsp + 0xd0], r15
imul r15, r13
sub rbp, 0xffffffff80000000
shr rsi, 0x20
mov qword [rsp + 0xa8], rsi
add r15, rsi
shr rbx, 0x20
mov qword [rsp + 0xb8], r8
mov qword [rsp + 0x98], rcx
add rcx, r8
mov qword [rsp + 0xc0], r11
add rcx, r11
mov qword [rsp + 0x70], rdi
lea r8, [rdi + rcx]
add r8, 1
and r10d, 0x3f
mov qword [rsp + 0x38], r8
mov ecx, r10d
shr r8, cl
mov eax, 1
shl rax, cl
add r15, rbx
shr rbp, 0x20
mov qword [rsp + 0x78], rbp
lea rcx, [rax - 1]
mov qword [rsp + 0x50], rcx
cmp r8d, 0x2710
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xb0], r13
mov qword [rsp + 0xa0], rbx
jae 0x49f31b
cmp r8d, 0x64
jae 0x49f33e
xor ecx, ecx
cmp r8d, 0xa
setae cl
lea r13d, [rcx + rcx*8]
add r13d, 1
jmp 0x49f359
cmp r8d, 0xf4240
jae 0x49f369
cmp r8d, 0x186a0
mov ecx, 0x2710
mov r13d, 0x186a0
cmovb r13d, ecx
mov cl, 5
jmp 0x49f356
cmp r8d, 0x3e8
mov ecx, 0x64
mov r13d, 0x3e8
cmovb r13d, ecx
mov cl, 3
sbb cl, 0
mov rax, qword [rsp + 0x30]
mov esi, dword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
jmp 0x49f3b5
cmp r8d, 0x5f5e100
mov esi, dword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
jae 0x49f395
cmp r8d, 0x989680
mov ecx, 0xf4240
mov r13d, 0x989680
cmovb r13d, ecx
mov cl, 7
jmp 0x49f3ad
cmp r8d, 0x3b9aca00
mov ecx, 0x5f5e100
mov r13d, 0x3b9aca00
cmovb r13d, ecx
mov cl, 9
sbb cl, 0
mov rax, qword [rsp + 0x30]
add r15, qword [rsp + 0x78]
mov qword [rsp + 0x28], r15
mov r15, qword [rsp + 0x38]
mov r11, r15
mov rdx, qword [rsp + 0x50]
and r11, rdx
movzx ebp, cl
mov ecx, ebp
sub ecx, esi
add ecx, 1
mov dword [rsp + 0x5c], ecx
add rax, r14
add rax, rdi
add rax, r12
mov qword [rsp + 0x30], rax
sub r15, rax
add r15, 1
mov r14, r15
and r14, rdx
xor esi, esi
mov ebx, 0xcccccccd
nop
mov eax, r8d
xor edx, edx
div r13d
cmp r9, rsi
je 0x49f765
mov r8d, edx
mov rdx, r9
mov r12d, r8d
mov ecx, r10d
shl r12, cl
add al, 0x30
mov rcx, qword [rsp + 0x40]
mov byte [rcx + rsi], al
lea rdi, [r12 + r11]
mov r9, r15
sub r9, rdi
ja 0x49f474
cmp rbp, rsi
je 0x49f596
mov eax, r13d
imul rax, rbx
shr rax, 0x23
add rsi, 1
cmp r13d, 0xa
mov r13d, eax
mov r9, rdx
jae 0x49f400
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call fcn.004a3ff0
ud2
mov r14d, r13d
mov ecx, r10d
shl r14, cl
lea r10, [rsi + 1]
cmp rsi, rdx
jae 0x49f87a
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rsp + 0x28]
lea rbp, [rdx + 1]
add rdx, 0xffffffffffffffff
cmp r9, r14
setae bl
cmp rdx, rdi
mov rcx, qword [rsp + 0xd0]
jbe 0x49f6aa
cmp r9, r14
jb 0x49f6aa
mov r8, rdx
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x38], r10
mov rbx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb8]
lea r9, [rdi + rbx]
add r9, qword [rsp + 0x70]
add r9, qword [rsp + 0x98]
mov r13, r9
sub r13, qword [rsp + 0x28]
sub r13, r12
sub r13, r11
sub r9, qword [rsp + 0x30]
lea rdx, [r11 + r14]
sub r9, rdx
sub r9, r12
mov r10, qword [rsp + 0xa8]
add r10, rdx
add r10, qword [rsp + 0xa0]
add r10, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xb0]
sub rbp, qword [rsp + 0x80]
imul rcx, rbp
add rcx, r10
sub rcx, rdi
sub rcx, rbx
sub rcx, qword [rsp + 0x70]
add r9, 2
mov r10, qword [rsp + 0x40]
nop word [rax + rax]
lea rdi, [r12 + rdx]
cmp rdi, r8
jb 0x49f566
lea rbp, [r12 + rcx]
cmp r13, rbp
jb 0x49f698
add al, 0xff
mov rbp, r9
sub rbp, r14
setae bl
add r11, r14
mov byte [r10 + rsi], al
cmp rdi, r8
jae 0x49f58e
sub r13, r14
add rcx, r14
add rdx, r14
cmp r9, r14
mov r9, rbp
jae 0x49f550
add r12, r11
jmp 0x49f69d
add rsi, 1
mov eax, 1
mov r13, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp rsi, rdx
jae 0x49f779
mov r15, rax
add r11, r11
lea rbx, [r11 + r11*4]
mov rbp, r14
add rbp, r14
lea r14, [rbp*4]
add r14, rbp
add rax, rax
lea rax, [rax + rax*4]
mov r11, rbx
and r11, r8
mov ecx, r10d
shr rbx, cl
lea ecx, [rbx + 0x30]
mov byte [rdi + rsi], cl
add rsi, 1
mov rcx, r14
sub rcx, r11
jbe 0x49f5c0
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rsp + 0x28]
imul rdx, rax
lea r8, [rdx + rax]
sub rdx, rax
cmp rcx, r13
setae r9b
mov rax, rdx
sub rax, r11
jbe 0x49f6ec
cmp rcx, r13
jb 0x49f6ec
mov r12, rdx
add bl, 0x2f
lea rbp, [rbp + rbp*4]
sub rbp, r13
sub rbp, r11
mov r10, r13
sub r10, rdx
mov rdi, qword [rsp + 0x40]
nop word cs:[rax + rax]
lea rdx, [r11 + r13]
cmp rdx, r12
jb 0x49f672
lea rcx, [r10 + r11]
cmp rax, rcx
jb 0x49f6e9
mov rcx, rbp
sub rcx, r13
setae r9b
mov byte [rdi + rsi - 1], bl
cmp rdx, r12
jae 0x49f6ef
add bl, 0xff
sub rax, r13
mov r11, rdx
cmp rbp, r13
mov rbp, rcx
jae 0x49f660
jmp 0x49f6ef
add r12, r11
mov bl, 1
mov rdi, r12
mov r10, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x50]
mov rax, rbp
sub rax, rdi
jbe 0x49f6c7
test bl, bl
je 0x49f6c7
add r14, rdi
sub r14, rbp
jb 0x49f745
cmp rax, r14
jae 0x49f745
cmp rdi, 2
jb 0x49f745
add r15, 0xfffffffffffffffc
cmp rdi, r15
ja 0x49f745
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
mov qword [rax + 8], r10
jmp 0x49f73b
mov r9b, 1
mov rdx, r11
mov rax, r8
sub rax, rdx
jbe 0x49f709
test r9b, r9b
je 0x49f709
add r13, rdx
sub r13, r8
jb 0x49f745
cmp rax, r13
jae 0x49f745
lea rax, [r15*4]
lea rax, [rax + rax*4]
cmp rax, rdx
mov rax, qword [rsp + 0x48]
ja 0x49f74a
shl r15, 3
lea rcx, [r15 + r15*4]
sub r14, rcx
cmp rdx, r14
ja 0x49f74a
mov rcx, qword [rsp + 0x40]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov ecx, dword [rsp + 0x5c]
mov word [rax + 0x10], cx
jmp 0x49f751
mov rax, qword [rsp + 0x48]
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, r9
mov rdx, r9
call fcn.004a40c0
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, rsi
call fcn.004a40c0
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call fcn.004a40c0
ud2
mov qword [rsp + 0xd8], 0
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x88]
lea r8, [rsp + 0xd8]
call fcn.004a42a0
ud2
lea rcx, [0x0091c9af]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x49f7f6
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x49f86e
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.004a3ff0
ud2
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.004a3ff0
ud2
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.004a3ff0
ud2
lea rcx, str.assertion_failed:_buf.len_____MAX_SIG_DIGITS
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x49f854
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.004a3ff0
ud2
lea rcx, [0x0091c7e9]
lea r8, [0x0091c828]
mov edx, 0x1d
call fcn.004a3ff0
ud2
mov rcx, r10
call fcn.004ab1c0
ud2