Function at 0x140041470
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 r11, qword [rdx]
test r11, r11
je 0x140041c54
mov rax, qword [rdx + 8]
test rax, rax
je 0x140041c64
mov rbx, qword [rdx + 0x10]
test rbx, rbx
je 0x140041c74
add rbx, r11
jb 0x140041c8e
mov rbp, r11
sub rbp, rax
jb 0x140041ca8
mov rax, rbx
shr rax, 0x3d
jne 0x140041cc2
mov r9, rcx
mov eax, dword [rdx + 0x18]
mov rdx, rbx
shr rdx, 0x20
mov rcx, rbx
shl rcx, 0x20
lea edi, [rax - 0x20]
test rdx, rdx
cmovne rcx, rbx
cmovne edi, eax
mov rdx, rcx
shr rdx, 0x30
mov rbx, rcx
shl rbx, 0x10
lea esi, [rdi - 0x10]
test rdx, rdx
cmovne rbx, rcx
cmovne esi, edi
mov rdx, rbx
shr rdx, 0x38
mov rcx, rbx
shl rcx, 8
lea edi, [rsi - 8]
test rdx, rdx
cmovne rcx, rbx
cmovne edi, esi
mov rbx, rcx
shr rbx, 0x3c
mov rdx, rcx
shl rdx, 4
test rbx, rbx
cmovne rdx, rcx
lea ecx, [rdi - 4]
cmovne ecx, edi
mov rbx, rdx
shr rbx, 0x3e
lea r10, [rdx*4]
lea edi, [rcx - 2]
test rbx, rbx
cmovne r10, rdx
cmovne edi, ecx
test r10, r10
setns cl
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 0x140041cdc
and ecx, 0x3f
mov rdi, 0xffffffffffffffff
shr rdi, cl
mov rbx, rdi
and rbx, rbp
mov qword [rsp + 0x68], rbx
cmp rbp, rdi
ja 0x140041c2c
shl rbp, cl
mov qword [rsp + 0x88], r11
mov word [rsp + 0x90], ax
mov rax, rdi
and rax, r11
mov qword [rsp + 0x68], rax
cmp r11, rdi
ja 0x140041c2c
mov eax, 0xffffffa0
sub eax, r10d
cwde
lea eax, [rax + rax*4]
shl eax, 4
add eax, 0x153b0
cdqe
imul rax, rax, 0x7b4dc993
mov rbx, rax
shr rbx, 0x3f
sar rax, 0x2a
add eax, ebx
cdqe
cmp eax, 0x51
jae 0x140041c16
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x60], r8
shl r11, cl
shl rax, 4
lea rsi, [0x1401a01e8]
mov r9, qword [rax + rsi]
movzx ecx, word [rax + rsi + 0xa]
mov dword [rsp + 0x28], ecx
mov rcx, rdx
shr rcx, 0x20
mov rbx, rcx
mov qword [rsp + 0x80], rcx
mov edx, edx
mov ecx, r9d
shr r9, 0x20
mov r15, r9
imul r15, rdx
mov r13, rcx
imul r13, rbx
imul rdx, rcx
shr rdx, 0x20
mov edi, r13d
add rdi, rdx
mov ebx, r15d
add rbx, rdi
add r10w, word [rax + rsi + 8]
mov r8, rbp
shr r8, 0x20
mov edx, ebp
mov rax, r9
imul rax, r8
mov qword [rsp + 0x38], rax
mov r12, r9
imul r12, rdx
imul r8, rcx
imul rdx, rcx
shr rdx, 0x20
mov ebp, r8d
add rbp, rdx
mov esi, r12d
add rsi, rbp
mov r14, r11
shr r14, 0x20
mov edx, r11d
mov rax, r9
imul rax, rdx
mov rbp, rcx
imul rbp, r14
imul rcx, rdx
shr rcx, 0x20
mov edx, ebp
add rdx, rcx
mov edi, eax
add rdi, rdx
mov r11, r9
imul r11, qword [rsp + 0x80]
sub rbx, 0xffffffff80000000
shr r13, 0x20
shr r15, 0x20
shr rbx, 0x20
neg r10d
sub rsi, 0xffffffff80000000
shr r8, 0x20
shr r12, 0x20
mov qword [rsp + 0x58], r12
shr rsi, 0x20
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0xc8], r9
imul r9, r14
sub rdi, 0xffffffff80000000
shr rbp, 0x20
add r9, rbp
shr rax, 0x20
mov qword [rsp + 0xb8], r13
lea rcx, [r11 + r13]
mov qword [rsp + 0xc0], r15
add rcx, r15
mov qword [rsp + 0x70], rbx
lea r13, [rbx + rcx]
inc r13
and r10d, 0x3f
mov qword [rsp + 0x40], r13
mov ecx, r10d
shr r13, cl
mov edx, 1
shl rdx, cl
add r9, rax
shr rdi, 0x20
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0xd0], rdx
lea r15, [rdx - 1]
cmp r13d, 0x2710
mov qword [rsp + 0xb0], r14
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x98], r11
jae 0x1400417be
cmp r13d, 0x64
jae 0x1400417e5
xor ecx, ecx
cmp r13d, 0xa
setae cl
lea r14d, [rcx + rcx*8]
inc r14d
jmp 0x140041801
cmp r13d, 0xf4240
jae 0x140041816
cmp r13d, 0x186a0
setb cl
mov edx, 0x2710
mov r14d, 0x186a0
cmovb r14d, edx
xor cl, 5
jmp 0x140041801
cmp r13d, 0x3e8
setb cl
mov edx, 0x64
mov r14d, 0x3e8
cmovb r14d, edx
xor cl, 3
mov rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x28]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x30]
jmp 0x14004186c
cmp r13d, 0x5f5e100
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x30]
jae 0x140041847
cmp r13d, 0x989680
setb cl
mov edx, 0xf4240
mov r14d, 0x989680
cmovb r14d, edx
xor cl, 7
jmp 0x140041863
cmp r13d, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov r14d, 0x3b9aca00
cmovb r14d, edx
xor cl, 9
mov rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x28]
add r9, qword [rsp + 0x78]
mov qword [rsp + 0x28], r9
mov r11, qword [rsp + 0x40]
mov rsi, r11
and rsi, r15
movzx edi, cl
mov ecx, edi
sub ecx, eax
inc ecx
mov dword [rsp + 0x54], ecx
add rdx, r8
add rdx, rbp
add rdx, rbx
mov qword [rsp + 0x38], rdx
sub r11, rdx
inc r11
mov r9, r11
and r9, r15
xor ebx, ebx
mov ebp, 0xcccccccd
nop
mov eax, r13d
xor edx, edx
div r14d
add al, 0x30
mov r13d, edx
mov rdx, r13
mov ecx, r10d
shl rdx, cl
mov rcx, qword [rsp + 0x60]
mov byte [rcx + rbx], al
lea r8, [rdx + rsi]
mov r12, r11
sub r12, r8
ja 0x140041914
cmp rdi, rbx
je 0x140041a38
mov eax, r14d
imul rax, rbp
shr rax, 0x23
inc rbx
cmp r14d, 0xa
mov r14d, eax
jae 0x1400418b0
lea rcx, [0x1401a0820]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call fcn.1401923d0
ud2
mov r14d, r14d
mov ecx, r10d
shl r14, cl
lea rcx, [rbx + 1]
cmp rbx, 0x11
jae 0x140041cf6
mov rbp, qword [rsp + 0x40]
sub rbp, qword [rsp + 0x28]
lea rdi, [rbp + 1]
dec rbp
cmp r12, r14
setae r15b
cmp rbp, r8
mov r13, qword [rsp + 0x60]
jbe 0x140041b3b
cmp r12, r14
jb 0x140041b3b
mov r9, rbp
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x40], rcx
mov r15, qword [rsp + 0xc0]
mov r12, qword [rsp + 0xb8]
lea r10, [r12 + r15]
add r10, qword [rsp + 0x70]
add r10, qword [rsp + 0x98]
mov r8, r10
sub r8, qword [rsp + 0x28]
sub r8, rdx
sub r8, rsi
sub r10, qword [rsp + 0x38]
lea rbp, [rsi + r14]
sub r10, rbp
sub r10, rdx
mov r13, qword [rsp + 0xa8]
add r13, rbp
add r13, qword [rsp + 0xa0]
add r13, qword [rsp + 0x78]
mov rdi, qword [rsp + 0xb0]
sub rdi, qword [rsp + 0x80]
mov rcx, qword [rsp + 0xc8]
imul rcx, rdi
add rcx, r13
mov r13, qword [rsp + 0x60]
sub rcx, r12
sub rcx, r15
sub rcx, qword [rsp + 0x70]
add r10, 2
lea r12, [rdx + rbp]
cmp r12, r9
jb 0x140041a06
lea rdi, [rdx + rcx]
cmp r8, rdi
jb 0x140041b28
dec al
mov rdi, r10
sub rdi, r14
setae r15b
add rsi, r14
mov byte [r13 + rbx], al
cmp r12, r9
jae 0x140041a30
sub r8, r14
add rcx, r14
add rbp, r14
cmp r10, r14
mov r10, rdi
jae 0x1400419f0
add rdx, rsi
jmp 0x140041b2e
inc rbx
mov eax, 1
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x40]
nop word [rax + rax]
cmp rbx, 0x11
je 0x140041bfe
mov rdi, rax
add rsi, rsi
lea rdx, [rsi + rsi*4]
mov rsi, rdx
and rsi, r15
add rax, rax
lea rax, [rax + rax*4]
mov rbp, r9
add rbp, r9
lea r9, [rbp*4]
add r9, rbp
mov ecx, r10d
shr rdx, cl
lea ecx, [rdx + 0x30]
mov byte [r12 + rbx], cl
inc rbx
mov rcx, r9
sub rcx, rsi
jbe 0x140041a50
sub r13, qword [rsp + 0x28]
imul r13, rax
lea r8, [rax + r13]
mov r15, qword [rsp + 0xd0]
cmp rcx, r15
setae r10b
jb 0x140041b81
sub r13, rax
mov rcx, r13
sub rcx, rsi
jbe 0x140041b81
add dl, 0x2f
lea rax, [rbp*4]
add rax, rbp
sub rax, r15
sub rax, rsi
mov r11, r15
sub r11, r13
nop word cs:[rax + rax]
lea r14, [rsi + r15]
cmp r14, r13
jb 0x140041b02
lea rbp, [r11 + rsi]
cmp rcx, rbp
jb 0x140041b7e
mov rbp, rax
sub rbp, r15
setae r10b
mov byte [r12 + rbx - 1], dl
cmp r14, r13
jae 0x140041b84
dec dl
sub rcx, r15
mov rsi, r14
cmp rax, r15
mov rax, rbp
jae 0x140041af0
jmp 0x140041b84
add rdx, rsi
mov r15b, 1
mov r8, rdx
mov rcx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x30]
mov rax, rdi
sub rax, r8
jbe 0x140041b59
test r15b, r15b
je 0x140041b59
add r14, r8
sub r14, rdi
jb 0x140041bd5
cmp rax, r14
jae 0x140041bd5
cmp r8, 2
jb 0x140041bd5
add r11, 0xfffffffffffffffc
cmp r8, r11
ja 0x140041bd5
mov rax, qword [rsp + 0x48]
mov qword [rax], r13
mov qword [rax + 8], rcx
mov ecx, dword [rsp + 0x54]
mov word [rax + 0x10], cx
jmp 0x140041bea
mov r10b, 1
mov r14, rsi
mov rcx, r8
sub rcx, r14
jbe 0x140041b9e
test r10b, r10b
je 0x140041b9e
add r15, r14
sub r15, r8
jb 0x140041bd5
cmp rcx, r15
jae 0x140041bd5
lea rax, [rdi*4]
lea rax, [rax + rax*4]
cmp rax, r14
mov rcx, qword [rsp + 0x48]
ja 0x140041be3
shl rdi, 3
lea rax, [rdi + rdi*4]
sub r9, rax
cmp r14, r9
ja 0x140041be3
mov qword [rcx], r12
mov qword [rcx + 8], rbx
mov eax, dword [rsp + 0x54]
mov word [rcx + 0x10], ax
jmp 0x140041bea
mov rax, qword [rsp + 0x48]
mov qword [rax], 0
jmp 0x140041bea
mov qword [rcx], 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 ecx, 0x11
mov edx, 0x11
call fcn.140192330
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
mov rcx, rax
call fcn.140192330
ud2
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0x68]
lea rdx, [rsp + 0x88]
lea r8, [rsp + 0xd8]
call fcn.140192420
ud2
lea rcx, [0x14019ff4f]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x140041c82
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
jmp 0x140041cea
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.1401923d0
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.1401923d0
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.1401923d0
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.1401923d0
ud2
lea rcx, str.assertion_failed:_edelta___0librarycore_src_numdiy_float.rs
lea r8, [0x14019fdc8]
mov edx, 0x1d
call fcn.1401923d0
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x11
call fcn.1401923c0
ud2