Function at 0x140059640
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov rax, qword [rdx]
test rax, rax
je 0x140059d6f
mov r9, qword [rdx + 8]
test r9, r9
je 0x140059d87
mov rbx, rcx
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x140059d9f
add rcx, rax
jb 0x140059db7
mov rsi, r8
mov r8, rax
sub r8, r9
jb 0x140059dcf
mov r9, rcx
shr r9, 0x3d
jne 0x140059de7
mov r9d, dword [rdx + 0x18]
mov rdx, rcx
shr rdx, 0x20
mov rdi, rcx
shl rdi, 0x20
lea r10d, [r9 - 0x20]
test rdx, rdx
cmovne r10d, r9d
cmovne rdi, rcx
mov rcx, rdi
shr rcx, 0x30
mov rdx, rdi
shl rdx, 0x10
lea r11d, [r10 - 0x10]
test rcx, rcx
cmovne r11d, r10d
cmovne rdx, rdi
mov rcx, rdx
shr rcx, 0x38
mov r14, rdx
shl r14, 8
lea r10d, [r11 - 8]
test rcx, rcx
cmovne r10d, r11d
cmovne r14, rdx
mov rcx, r14
shr rcx, 0x3c
mov rdx, r14
shl rdx, 4
lea edi, [r10 - 4]
test rcx, rcx
cmovne edi, r10d
cmovne rdx, r14
mov rcx, rdx
shr rcx, 0x3e
lea r11, [rdx*4]
lea r14d, [rdi - 2]
test rcx, rcx
cmovne r14d, edi
cmovne r11, rdx
xor ecx, ecx
test r11, r11
setns cl
sub r14d, ecx
shl r11, cl
mov qword [rbp + 0x28], r8
mov word [rbp + 0x30], r9w
mov ecx, r9d
sub cx, r14w
js 0x140059dff
and ecx, 0x3f
mov r13, r8
shl r13, cl
mov rdx, r13
shr rdx, cl
mov qword [rbp + 0x58], rdx
cmp rdx, r8
jne 0x140059d56
mov rdx, rax
shl rdx, cl
mov r10, rdx
shr r10, cl
mov qword [rbp + 0x28], rax
mov word [rbp + 0x30], r9w
mov qword [rbp + 0x58], r10
cmp r10, rax
jne 0x140059d56
mov qword [rbp + 0x90], rdx
mov qword [rbp + 0x88], rbx
mov eax, 0xffffffa0
sub eax, r14d
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 0x140059e17
shl rcx, 4
lea r10, [0x140250e28]
mov r15, qword [rcx + r10]
movzx eax, word [rcx + r10 + 0xa]
mov dword [rbp + 0x78], eax
mov rax, r11
shr rax, 0x20
mov rdx, rax
mov qword [rbp + 0x38], rax
mov r11d, r11d
mov r9d, r15d
shr r15, 0x20
mov rax, r15
imul rax, r11
mov rbx, r9
imul rbx, rdx
imul r11, r9
shr r11, 0x20
mov edi, ebx
add rdi, r11
mov edx, eax
add rdx, rdi
add r14w, word [rcx + r10 + 8]
mov r12, r13
shr r12, 0x20
mov ecx, r13d
mov r10, r15
imul r10, r12
mov qword [rbp + 0x60], r10
mov r8, r15
imul r8, rcx
imul r12, r9
imul rcx, r9
shr rcx, 0x20
mov r10d, r12d
add r10, rcx
mov r11d, r8d
add r11, r10
mov r10, qword [rbp + 0x90]
mov ecx, r10d
mov r13, r15
imul r13, rcx
mov rdi, r9
imul r9, rcx
shr r10, 0x20
imul rdi, r10
shr r9, 0x20
mov ecx, edi
add rcx, r9
mov r9d, r13d
add r9, rcx
mov rcx, r15
imul rcx, qword [rbp + 0x38]
sub rdx, 0xffffffff80000000
shr rbx, 0x20
shr rax, 0x20
shr rdx, 0x20
neg r14d
sub r11, 0xffffffff80000000
shr r12, 0x20
mov qword [rbp - 0x28], r12
shr r8, 0x20
mov qword [rbp + 0x68], r8
shr r11, 0x20
mov qword [rbp - 0x30], r11
mov qword [rbp - 0x18], r15
mov qword [rbp + 8], r10
imul r15, r10
sub r9, 0xffffffff80000000
mov qword [rbp - 8], rbx
mov qword [rbp + 0x18], rcx
add rcx, rbx
mov qword [rbp - 0x10], rax
add rcx, rax
mov qword [rbp + 0x50], rdx
lea r10, [rdx + rcx]
inc r10
and r14d, 0x3f
mov rbx, r10
mov ecx, r14d
shr rbx, cl
shr rdi, 0x20
shr r13, 0x20
mov eax, 1
shl rax, cl
mov qword [rbp], rdi
mov qword [rbp + 0x20], r15
lea r8, [rdi + r15]
mov qword [rbp + 0x10], r13
add r8, r13
shr r9, 0x20
mov qword [rbp + 0x40], r9
mov qword [rbp - 0x20], rax
dec rax
mov qword [rbp + 0x90], rax
cmp ebx, 0x2710
jae 0x140059972
cmp ebx, 0x64
jae 0x140059997
xor ecx, ecx
cmp ebx, 0xa
setae cl
lea r9d, [rcx + rcx*8]
inc r9d
jmp 0x1400599f4
cmp ebx, 0xf4240
jae 0x1400599b4
cmp ebx, 0x186a0
setb cl
mov edx, 0x2710
mov r9d, 0x186a0
cmovb r9d, edx
xor cl, 5
jmp 0x1400599f4
cmp ebx, 0x3e8
setb cl
mov edx, 0x64
mov r9d, 0x3e8
cmovb r9d, edx
xor cl, 3
jmp 0x1400599f4
cmp ebx, 0x5f5e100
jae 0x1400599d9
cmp ebx, 0x989680
setb cl
mov edx, 0xf4240
mov r9d, 0x989680
cmovb r9d, edx
xor cl, 7
jmp 0x1400599f4
cmp ebx, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov r9d, 0x3b9aca00
cmovb r9d, edx
xor cl, 9
add r8, qword [rbp + 0x40]
mov qword [rbp + 0x48], r8
mov rdi, r10
mov rdx, qword [rbp + 0x90]
and rdi, rdx
movzx eax, cl
mov r8, rax
mov ecx, eax
sub ecx, dword [rbp + 0x78]
inc ecx
mov dword [rbp + 0x84], ecx
mov rax, qword [rbp + 0x60]
add rax, qword [rbp - 0x28]
add rax, qword [rbp + 0x68]
add rax, qword [rbp - 0x30]
mov qword [rbp + 0x78], r10
mov qword [rbp + 0x60], rax
sub r10, rax
mov qword [rbp + 0x68], r10
inc r10
mov r15, r10
and r15, rdx
xor r13d, r13d
mov qword [rbp + 0x70], rsi
nop dword [rax + rax]
mov eax, ebx
xor edx, edx
div r9d
add al, 0x30
mov byte [rsi + r13], al
mov ebx, edx
mov rdx, rbx
mov r12, r14
mov ecx, r14d
shl rdx, cl
lea r11, [r13 + 1]
lea rsi, [rdx + rdi]
mov r14, r10
sub r14, rsi
ja 0x140059ab3
cmp r8, r13
je 0x140059ba1
mov eax, r9d
mov ecx, 0xcccccccd
imul rax, rcx
shr rax, 0x23
mov r13, r11
cmp r9d, 0xa
mov r9d, eax
mov rsi, qword [rbp + 0x70]
mov r14, r12
jae 0x140059a50
lea rcx, str.core_src_num_flt2dec_strategygrisu.rs
call fcn.140059e30
mov r9d, r9d
mov ecx, r12d
shl r9, cl
mov rcx, qword [rbp + 0x78]
sub rcx, qword [rbp + 0x48]
lea r8, [rcx + 1]
dec rcx
cmp r14, r9
setb r15b
cmp rcx, rsi
jbe 0x140059c82
cmp r14, r9
jb 0x140059c82
mov qword [rbp + 0x90], r8
mov r12, qword [rbp - 0x10]
mov r15, qword [rbp - 8]
lea r8, [r15 + r12]
add r8, qword [rbp + 0x50]
add r8, qword [rbp + 0x18]
mov rbx, qword [rbp]
add rbx, qword [rbp + 0x10]
add rbx, qword [rbp + 0x40]
mov r14, qword [rbp + 0x20]
add r14, rbx
mov r10, r8
sub r10, r14
sub r10, rsi
mov r14, qword [rbp + 8]
sub r14, qword [rbp + 0x38]
mov rsi, qword [rbp - 0x18]
imul rsi, r14
add rsi, rbx
lea rbx, [rdi + r9]
add rsi, rbx
sub rsi, r15
sub rsi, r12
sub rsi, qword [rbp + 0x50]
sub r8, qword [rbp + 0x60]
sub r8, rbx
sub r8, rdx
add r8, 2
mov r12, qword [rbp + 0x70]
nop word cs:[rax + rax]
lea r14, [rdx + rbx]
cmp r14, rcx
jb 0x140059b76
lea r15, [rdx + rsi]
cmp r10, r15
jb 0x140059c72
dec al
mov byte [r12 + r13], al
sub r8, r9
setb r15b
add rdi, r9
cmp r14, rcx
jae 0x140059b99
sub r10, r9
add rsi, r9
add rbx, r9
test r15b, r15b
je 0x140059b60
add rdx, rdi
jmp 0x140059c78
inc r13
mov r8d, 1
mov rbx, qword [rbp + 0x70]
mov rcx, r12
mov r14, qword [rbp + 0x78]
mov r12, qword [rbp - 0x20]
mov r10, qword [rbp + 0x90]
cmp r13, 0x10
ja 0x140059d40
mov rax, r8
add rdi, rdi
lea rdx, [rdi + rdi*4]
mov rdi, rdx
and rdi, r10
add r8, r8
lea r8, [r8 + r8*4]
add r15, r15
lea r15, [r15 + r15*4]
shr rdx, cl
lea r9d, [rdx + 0x30]
mov byte [rbx + r13], r9b
inc r13
mov r9, r15
sub r9, rdi
jbe 0x140059bc0
sub r14, qword [rbp + 0x48]
imul r14, r8
lea rcx, [r14 + r8]
cmp r9, r12
setb r10b
jb 0x140059cc6
sub r14, r8
mov r8, r14
sub r8, rdi
jbe 0x140059cc6
add dl, 0x2f
mov r11, r12
sub r11, r14
mov rsi, r15
sub rsi, r12
sub rsi, rdi
nop dword [rax + rax]
lea r9, [rdi + r12]
cmp r9, r14
jb 0x140059c52
lea r10, [r11 + rdi]
cmp r8, r10
jb 0x140059cc3
mov byte [rbx + r13 - 1], dl
sub rsi, r12
setb r10b
cmp r9, r14
jae 0x140059cc9
dec dl
sub r8, r12
mov rdi, r9
test r10b, r10b
je 0x140059c40
jmp 0x140059cc9
add rdx, rdi
xor r15d, r15d
mov rsi, rdx
mov r8, qword [rbp + 0x90]
mov rax, r8
sub rax, rsi
jbe 0x140059c9c
test r15b, r15b
jne 0x140059c9c
add r9, rsi
sub r9, r8
jb 0x140059d04
cmp rax, r9
jae 0x140059d04
cmp rsi, 2
jb 0x140059d04
mov rax, qword [rbp + 0x68]
add rax, 0xfffffffffffffffd
cmp rsi, rax
ja 0x140059d04
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x70]
mov qword [rax], rcx
mov qword [rax + 8], r11
jmp 0x140059d22
xor r10d, r10d
mov r9, rdi
mov rdx, rcx
sub rdx, r9
jbe 0x140059ce3
test r10b, r10b
jne 0x140059ce3
add r12, r9
sub r12, rcx
jb 0x140059d04
cmp rdx, r12
jae 0x140059d04
lea rcx, [rax*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
ja 0x140059d04
shl rax, 3
lea rax, [rax + rax*4]
sub r15, rax
cmp r9, r15
jbe 0x140059d14
mov rax, qword [rbp + 0x88]
mov qword [rax], 0
jmp 0x140059d2c
mov rax, qword [rbp + 0x88]
mov qword [rax], rbx
mov qword [rax + 8], r13
mov ecx, dword [rbp + 0x84]
mov word [rax + 0x10], cx
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov ecx, 0x11
mov edx, 0x11
call fcn.140056860
mov qword [rbp - 0x60], 0
lea rcx, [rbp + 0x58]
lea rdx, [rbp + 0x28]
lea r8, [rbp - 0x60]
call fcn.140057700
lea rcx, [0x140250c0b]
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.1400576c0
lea rcx, str.assertion_failed:_d.minus___0
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1d
call fcn.1400576c0
lea rcx, str.assertion_failed:_d.plus___0
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call fcn.1400576c0
lea rcx, str.assertion_failed:_d.mant.checked_add_d.plus_.is_some__
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x36
call fcn.1400576c0
lea rcx, str.assertion_failed:_d.mant.checked_sub_d.minus_.is_some__
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x37
call fcn.1400576c0
lea rcx, str.assertion_failed:_d.mant__d.plus____1____61_
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x2d
call fcn.1400576c0
lea rcx, str.assertion_failed:_edelta___0core_src_numdiy_float.rs
lea r8, [0x140250b18]
mov edx, 0x1d
call fcn.1400576c0
lea r8, str.core_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
call fcn.140056860
int3