Function at 0x140040590
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov r11, qword [rdx]
test r11, r11
je 0x140040d4a
mov rax, qword [rdx + 8]
test rax, rax
je 0x140040d5a
mov rdi, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x140040d6a
add rcx, r11
jb 0x140040d84
mov r9, r11
sub r9, rax
jb 0x140040d9e
mov rax, rcx
shr rax, 0x3d
jne 0x140040db8
mov eax, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov rbx, rcx
shl rbx, 0x20
lea r10d, [rax - 0x20]
test rdx, rdx
cmovne rbx, rcx
cmovne r10d, eax
mov rcx, rbx
shr rcx, 0x30
mov rdx, rbx
shl rdx, 0x10
lea esi, [r10 - 0x10]
test rcx, rcx
cmovne rdx, rbx
cmovne esi, r10d
mov rcx, rdx
shr rcx, 0x38
mov rbx, rdx
shl rbx, 8
lea r10d, [rsi - 8]
test rcx, rcx
cmovne rbx, rdx
cmovne r10d, esi
mov rcx, rbx
shr rcx, 0x3c
mov rsi, rbx
shl rsi, 4
test rcx, rcx
cmovne rsi, rbx
lea ecx, [r10 - 4]
cmovne ecx, r10d
mov r10, rsi
shr r10, 0x3e
lea rdx, [rsi*4]
lea ebp, [rcx - 2]
test r10, r10
cmovne rdx, rsi
cmovne ebp, ecx
xor ecx, ecx
test rdx, rdx
setns cl
shl rdx, cl
sub ebp, ecx
mov qword [rsp + 0x70], r9
mov word [rsp + 0x78], ax
mov ecx, eax
sub cx, bp
js 0x140040dd2
and ecx, 0x3f
mov rsi, 0xffffffffffffffff
shr rsi, cl
mov r10, rsi
and r10, r9
mov qword [rsp + 0x50], r10
cmp r9, rsi
ja 0x140040d25
shl r9, cl
mov qword [rsp + 0x70], r11
mov word [rsp + 0x78], ax
mov rax, rsi
and rax, r11
mov qword [rsp + 0x50], rax
cmp r11, rsi
ja 0x140040d25
mov eax, 0xffffffa0
sub eax, ebp
cwde
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x153b0
cdqe
imul rax, rax, 0x7b4dc993
mov r10, rax
shr r10, 0x3f
sar rax, 0x2a
add eax, r10d
cdqe
cmp eax, 0x51
jae 0x140040d0f
mov r15, r8
mov qword [rsp + 0x40], rdi
shl r11, cl
shl rax, 4
lea r8, [0x140295220]
mov rsi, qword [rax + r8]
movzx ecx, word [rax + r8 + 0xa]
mov dword [rsp + 0x20], ecx
mov rcx, rdx
shr rcx, 0x20
mov r10, rcx
mov qword [rsp + 0x68], rcx
mov edx, edx
mov ecx, esi
shr rsi, 0x20
mov rbx, rsi
imul rbx, rdx
mov r13, rcx
imul r13, r10
imul rdx, rcx
shr rdx, 0x20
mov r10d, r13d
add r10, rdx
mov r14d, ebx
add r14, r10
add bp, word [rax + r8 + 8]
mov rax, r9
shr rax, 0x20
mov edx, r9d
mov r9, rsi
imul r9, rax
mov qword [rsp + 0x28], r9
mov r10, rsi
imul r10, rdx
imul rax, rcx
imul rdx, rcx
shr rdx, 0x20
mov r9d, eax
add r9, rdx
mov r12d, r10d
add r12, r9
mov r9, r11
shr r9, 0x20
mov edx, r11d
mov rdi, rsi
imul rdi, rdx
mov r11, rcx
imul r11, r9
imul rcx, rdx
shr rcx, 0x20
mov edx, r11d
add rdx, rcx
mov r8d, edi
add r8, rdx
mov rcx, rsi
imul rcx, qword [rsp + 0x68]
sub r14, 0xffffffff80000000
shr r13, 0x20
shr rbx, 0x20
shr r14, 0x20
neg ebp
sub r12, 0xffffffff80000000
shr rax, 0x20
shr r10, 0x20
shr r12, 0x20
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xa0], r9
imul rsi, r9
sub r8, 0xffffffff80000000
shr r11, 0x20
mov qword [rsp + 0x98], r11
add rsi, r11
shr rdi, 0x20
mov qword [rsp + 0x88], rcx
add rcx, r13
add rcx, rbx
mov qword [rsp + 0xa8], r14
lea r9, [r14 + rcx]
inc r9
and ebp, 0x3f
mov r11, r9
mov ecx, ebp
shr r11, cl
mov edx, 1
shl rdx, cl
mov qword [rsp + 0x90], rdi
add rsi, rdi
shr r8, 0x20
mov qword [rsp + 0x60], r8
mov qword [rsp + 0xc0], rdx
lea rcx, [rdx - 1]
mov qword [rsp + 0x48], rcx
cmp r11d, 0x2710
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xb0], r13
jae 0x1400408be
cmp r11d, 0x64
jae 0x1400408e7
xor ecx, ecx
cmp r11d, 0xa
setae cl
lea ebx, [rcx + rcx*8]
inc ebx
jmp 0x140040901
cmp r11d, 0xf4240
jae 0x140040bcd
cmp r11d, 0x186a0
setb cl
mov edx, 0x2710
mov ebx, 0x186a0
cmovb ebx, edx
xor cl, 5
jmp 0x140040901
cmp r11d, 0x3e8
setb cl
mov edx, 0x64
mov ebx, 0x3e8
cmovb ebx, edx
xor cl, 3
mov rdx, qword [rsp + 0x28]
mov edi, dword [rsp + 0x20]
add rsi, qword [rsp + 0x60]
mov qword [rsp + 0x20], rsi
mov rsi, r9
mov r14, qword [rsp + 0x48]
and rsi, r14
movzx r8d, cl
mov ecx, r8d
sub ecx, edi
inc ecx
mov dword [rsp + 0x3c], ecx
add rdx, rax
add rdx, r10
add rdx, r12
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], rdx
sub r9, rdx
mov qword [rsp + 0x80], r9
lea r10, [r9 + 1]
mov r12, r10
and r12, r14
xor r14d, r14d
nop dword [rax]
mov eax, r11d
xor edx, edx
div ebx
add al, 0x30
mov rdi, r15
mov byte [r15 + r14], al
mov r11d, edx
mov rdx, r11
mov r13, rbp
mov ecx, ebp
shl rdx, cl
lea r15, [r14 + 1]
lea r9, [rdx + rsi]
mov rbp, r10
sub rbp, r9
ja 0x1400409d0
cmp r8, r14
je 0x140040ae1
mov eax, ebx
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
mov r14, r15
cmp ebx, 0xa
mov ebx, eax
mov r15, rdi
mov rbp, r13
jae 0x140040960
lea rcx, [0x140295820]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call fcn.14003e7d0
ud2
mov r8d, ebx
mov ecx, r13d
shl r8, cl
mov rcx, r8
mov r13, qword [rsp + 0x30]
sub r13, qword [rsp + 0x20]
lea r10, [r13 + 1]
dec r13
cmp rbp, r8
setb r8b
cmp r13, r9
jbe 0x140040c30
cmp rbp, rcx
jb 0x140040c30
mov qword [rsp + 0x30], r10
mov r12, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x58]
lea r10, [r12 + r8]
mov rbp, qword [rsp + 0xa8]
add r10, rbp
add r10, qword [rsp + 0x88]
mov r11, r10
sub r11, qword [rsp + 0x20]
sub r11, r9
lea rbx, [rsi + rcx]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rsp + 0x98]
add rcx, rbx
add rcx, qword [rsp + 0x90]
add rcx, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa0]
sub r8, qword [rsp + 0x68]
mov r9, qword [rsp + 0xb8]
imul r9, r8
add r9, rcx
mov rcx, qword [rsp + 0x48]
sub r9, r12
sub r9, qword [rsp + 0x58]
sub r9, rbp
sub r10, qword [rsp + 0x28]
sub r10, rbx
sub r10, rdx
add r10, 2
nop word cs:[rax + rax]
lea r12, [rdx + rbx]
cmp r12, r13
jb 0x140040ab6
lea r8, [rdx + r9]
cmp r11, r8
jb 0x140040c22
dec al
mov byte [rdi + r14], al
sub r10, rcx
setb r8b
add rsi, rcx
cmp r12, r13
jae 0x140040ad9
sub r11, rcx
add r9, rcx
add rbx, rcx
test r8b, r8b
je 0x140040aa0
add rdx, rsi
jmp 0x140040c28
inc r14
mov r8d, 1
mov rbx, rdi
mov rcx, r13
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x20]
mov r11, qword [rsp + 0x48]
nop word [rax + rax]
cmp r14, 0x10
ja 0x140040cf7
mov rax, r8
add rsi, rsi
lea rdx, [rsi + rsi*4]
mov rsi, rdx
and rsi, r11
add r8, r8
lea r8, [r8 + r8*4]
add r12, r12
lea r12, [r12 + r12*4]
shr rdx, cl
lea r9d, [rdx + 0x30]
mov byte [rbx + r14], r9b
inc r14
mov r9, r12
sub r9, rsi
jbe 0x140040b10
sub r15, r10
imul r15, r8
lea rcx, [r15 + r8]
cmp r9, r13
setb r10b
jb 0x140040c83
sub r15, r8
mov r8, r15
sub r8, rsi
jbe 0x140040c83
add dl, 0x2f
mov r11, r13
sub r11, r15
mov rdi, r12
sub rdi, r13
sub rdi, rsi
nop word [rax + rax]
lea r9, [rsi + r13]
cmp r9, r15
jb 0x140040ba6
lea r10, [r11 + rsi]
cmp r8, r10
jb 0x140040c80
mov byte [rbx + r14 - 1], dl
sub rdi, r13
setb r10b
cmp r9, r15
jae 0x140040c86
dec dl
sub r8, r13
mov rsi, r9
test r10b, r10b
je 0x140040b90
jmp 0x140040c86
cmp r11d, 0x5f5e100
mov edi, dword [rsp + 0x20]
jae 0x140040bfe
cmp r11d, 0x989680
setb cl
mov edx, 0xf4240
mov ebx, 0x989680
cmovb ebx, edx
xor cl, 7
mov rdx, qword [rsp + 0x28]
jmp 0x14004090a
cmp r11d, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov ebx, 0x3b9aca00
cmovb ebx, edx
xor cl, 9
mov rdx, qword [rsp + 0x28]
jmp 0x14004090a
add rdx, rsi
xor r8d, r8d
mov r9, rdx
mov r10, qword [rsp + 0x30]
mov rax, r10
sub rax, r9
mov rdx, qword [rsp + 0x40]
jbe 0x140040c4f
test r8b, r8b
jne 0x140040c4f
add rcx, r9
sub rcx, r10
jb 0x140040c77
cmp rax, rcx
jae 0x140040c77
cmp r9, 2
jb 0x140040c77
mov rax, qword [rsp + 0x80]
add rax, 0xfffffffffffffffd
cmp r9, rax
ja 0x140040c77
mov qword [rdx], rdi
mov qword [rdx + 8], r15
mov eax, dword [rsp + 0x3c]
mov word [rdx + 0x10], ax
jmp 0x140040ccd
mov qword [rdx], 0
jmp 0x140040ccd
xor r10d, r10d
mov r9, rsi
mov rdx, rcx
sub rdx, r9
jbe 0x140040ca0
test r10b, r10b
jne 0x140040ca0
add r13, r9
sub r13, rcx
jb 0x140040cc1
cmp rdx, r13
jae 0x140040cc1
lea rcx, [rax*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
ja 0x140040cc1
shl rax, 3
lea rax, [rax + rax*4]
sub r12, rax
cmp r9, r12
jbe 0x140040ce1
mov rax, qword [rsp + 0x40]
mov qword [rax], 0
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x40]
mov qword [rax], rbx
mov qword [rax + 8], r14
mov ecx, dword [rsp + 0x3c]
mov word [rax + 0x10], cx
jmp 0x140040ccd
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov ecx, 0x11
mov edx, 0x11
call fcn.14003d940
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
mov rcx, rax
call fcn.14003d940
ud2
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0xc8]
call fcn.14003e820
ud2
lea rcx, [0x140295017]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x140040d78
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x140040de0
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.14003e7d0
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.14003e7d0
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.14003e7d0
ud2
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.14003e7d0
ud2
lea rcx, str.assertion_failed:_edelta___0librarycore_src_numdiy_float.rs
lea r8, [0x140294eb8]
mov edx, 0x1d
call fcn.14003e7d0
ud2