Function at 0x492850
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rax, qword [rdx]
test rax, rax
je 0x492d0c
mov rbp, rcx
mov rcx, rax
shr rcx, 0x3d
jne 0x492d26
mov r13, r9
test r9, r9
je 0x492d40
mov rcx, rax
shr rcx, 0x20
mov r9, rax
shl r9, 0x20
mov edx, dword [rdx + 0x18]
lea r10d, [rdx - 0x20]
test rcx, rcx
cmovne r9, rax
cmovne r10d, edx
mov rax, r9
shr rax, 0x30
mov rcx, r9
shl rcx, 0x10
lea edx, [r10 - 0x10]
test rax, rax
cmovne rcx, r9
cmovne edx, r10d
mov rax, rcx
shr rax, 0x38
mov r9, rcx
shl r9, 8
lea r10d, [rdx - 8]
test rax, rax
cmovne r9, rcx
cmovne r10d, edx
mov rax, r9
shr rax, 0x3c
mov rcx, r9
shl rcx, 4
lea r11d, [r10 - 4]
test rax, rax
cmovne rcx, r9
cmovne r11d, r10d
mov r9, rcx
shr r9, 0x3e
lea rax, [rcx*4]
lea edx, [r11 - 2]
test r9, r9
cmovne rax, rcx
cmovne edx, r11d
xor ecx, ecx
test rax, rax
setns cl
sub edx, ecx
mov ecx, 0xffffffa0
sub ecx, edx
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul rcx, rcx, 0x7b4dc993
mov r9, rcx
shr r9, 0x3f
sar rcx, 0x2a
add ecx, r9d
movsxd r11, ecx
cmp r11d, 0x51
jae 0x492cf6
test rax, rax
setns cl
shl rax, cl
shl r11, 4
lea rsi, [0x004d9700]
mov r9, qword [r11 + rsi]
mov rcx, rax
shr rcx, 0x20
mov eax, eax
mov r10d, r9d
shr r9, 0x20
mov rdi, r9
imul rdi, rcx
imul r9, rax
imul rcx, r10
imul r10, rax
shr r10, 0x20
mov ebx, ecx
add rbx, r10
mov eax, r9d
add rax, rbx
sub rax, 0xffffffff80000000
shr rcx, 0x20
add rcx, rdi
shr r9, 0x20
add r9, rcx
shr rax, 0x20
add rax, r9
add dx, word [r11 + rsi + 8]
mov edi, 0xffffffc0
sub edi, edx
mov r10d, edi
and r10d, 0x3f
mov rdx, rax
mov ecx, r10d
shr rdx, cl
mov ebx, 1
shl rbx, cl
movzx ecx, word [r11 + rsi + 0xa]
lea r12, [rbx - 1]
mov r15, rax
and r15, r12
je 0x492a31
movzx r14d, word [rsp + 0xd0]
cmp edx, 0x2710
mov qword [rsp + 0x50], r13
mov r9, rbp
jae 0x492a55
cmp edx, 0x64
jae 0x492a7a
xor r11d, r11d
cmp edx, 0xa
setae r11b
lea ebp, [r11 + r11*8]
inc ebp
jmp 0x492ad7
cmp r13, 0xa
ja 0x492a45
lea r11, [0x004d9e78]
cmp dword [r11 + r13*4 - 4], edx
jbe 0x4929fe
mov qword [rbp], 0
mov rax, rbp
jmp 0x492c29
cmp edx, 0xf4240
jae 0x492a97
cmp edx, 0x186a0
setb r11b
mov esi, 0x2710
mov ebp, 0x186a0
cmovb ebp, esi
xor r11b, 5
jmp 0x492ad7
cmp edx, 0x3e8
setb r11b
mov esi, 0x64
mov ebp, 0x3e8
cmovb ebp, esi
xor r11b, 3
jmp 0x492ad7
cmp edx, 0x5f5e100
jae 0x492abc
cmp edx, 0x989680
setb r11b
mov esi, 0xf4240
mov ebp, 0x989680
cmovb ebp, esi
xor r11b, 7
jmp 0x492ad7
cmp edx, 0x3b9aca00
setb r11b
mov esi, 0x5f5e100
mov ebp, 0x3b9aca00
cmovb ebp, esi
xor r11b, 9
movzx esi, r11b
mov r13d, esi
sub r13d, ecx
inc r13d
cmp r13w, r14w
jle 0x492b90
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], r9
movzx edi, di
movsx rax, r13w
mov ecx, r13d
sub ecx, r14d
movsx r11, r14w
sub rax, r11
mov r9, qword [rsp + 0x50]
cmp rax, r9
movsx r11, cx
cmovae r11, r9
neg rsi
mov rcx, r9
neg rcx
mov ebx, 1
mov r14d, 0xcccccccd
lea r9, [rcx + rbx]
mov eax, edx
xor edx, edx
div ebp
cmp r9, 1
je 0x492ccc
add al, 0x30
mov byte [r8 + rbx - 1], al
cmp r11, rbx
je 0x492bd7
lea rax, [rsi + rbx]
cmp rax, 1
je 0x492c3a
mov eax, ebp
imul rax, r14
shr rax, 0x23
inc rbx
cmp ebp, 0xa
mov ebp, eax
jae 0x492b30
lea rcx, str.attempt_to_divide_by_zero
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x19
call dbg.panic
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
shr rdx, 3
mov eax, ebp
mov ecx, r10d
shl rax, cl
mov qword [rsp + 0x40], rbx
mov word [rsp + 0x28], r14w
mov word [rsp + 0x20], r13w
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rax
mov rsi, r9
mov rcx, r9
mov rdx, r8
mov r8, qword [rsp + 0x50]
xor r9d, r9d
jmp 0x492c21
mov eax, edx
mov ecx, r10d
shl rax, cl
add rax, r15
mov edx, ebp
shl rdx, cl
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x40], rcx
movzx ecx, word [rsp + 0xd0]
mov word [rsp + 0x28], cx
mov word [rsp + 0x20], r13w
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rax
mov rsi, qword [rsp + 0x60]
mov rcx, rsi
mov rdx, r8
mov r8, qword [rsp + 0x50]
mov r9, r11
call dbg.possibly_round
mov rax, rsi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
dec edi
and edi, 0x3f
mov eax, 1
mov rbp, qword [rsp + 0x60]
mov r9, qword [rsp + 0x50]
nop
mov rdx, rax
mov ecx, edi
shr rdx, cl
test rdx, rdx
jne 0x492a45
cmp rbx, r9
jae 0x492ce2
add r15, r15
lea rdx, [r15 + r15*4]
mov r15, rdx
and r15, r12
add rax, rax
lea rax, [rax + rax*4]
mov ecx, r10d
shr rdx, cl
add dl, 0x30
mov byte [r8 + rbx], dl
inc rbx
cmp r11, rbx
jne 0x492c50
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
movzx eax, word [rsp + 0xd0]
mov word [rsp + 0x28], ax
mov word [rsp + 0x20], r13w
mov rcx, rbp
mov rdx, r8
mov r8, r9
mov r9, r11
call dbg.possibly_round
jmp 0x492a4d
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, qword [rsp + 0x50]
mov rdx, rcx
call dbg.panic_bounds_check
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov rcx, rbx
mov rdx, r9
call dbg.panic_bounds_check
ud2
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x51
mov rcx, r11
call dbg.panic_bounds_check
ud2
lea rcx, [0x004d941f]
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x1c
call dbg.panic
ud2
lea rcx, str.assertion_failed:_d.mant____1____61_
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x24
call dbg.panic
ud2
lea rcx, str.assertion_failed:__buf.is_empty__called__Option::unwrap____on_a__None__value
lea r8, str.librarycore_src_num_flt2dec_strategygrisu.rs
mov edx, 0x21
call dbg.panic
ud2