Function at 0x4f9210
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0xbc
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov dword [esp + 0xc], ecx
mov ecx, edx
mov edx, eax
lea eax, [ebp - 0x30]
mov dword [esp + 0x10], 0
fld xword [ebp + 8]
fstp xword [esp]
call method.std::optional_std::to_chars_result__std.__handle_special_value_long_double__char__char__long_double__std::chars_format__int_
cmp byte [ebp - 0x28], 0
je 0x4f9260
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
fld xword [ebp + 8]
lea eax, [ebp - 0x50]
fstp xword [esp]
call sym._anonymous_namespace_::ieee_t_long_double___anonymous_namespace_::get_ieee_repr_long_double__long_double_
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x48]
movzx edx, byte [ebp - 0x44]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x40], esi
mov esi, 0x5a86c47a
mov dword [ebp - 0x3c], edi
mov edi, 0x4b3b4ca8
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0xf
mov dword [esp + 0x18], 0x40
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x30]
call sym._anonymous_namespace_::ryu::generic128::generic_binary_to_decimal__anonymous_namespace_::uint128_t__unsigned_int__bool__unsigned_int__unsigned_int__bool___clone_.constprop.0_
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7c], 0x27
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], 0x98a2240
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [ebp - 0x84]
cmp eax, esi
mov ebx, edx
sbb ebx, edi
jb 0x4f934f
xor eax, esi
xor edx, edi
or eax, edx
jne 0x4f94e8
mov edx, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x98], eax
sbb ebx, edx
jae 0x4f94e8
mov ecx, esi
mov eax, 0xcccccccd
mov ebx, 0xcccccccd
add ecx, edi
adc ecx, 0
mul ecx
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add edx, eax
mov eax, esi
sub ecx, edx
mov edx, edi
sub eax, ecx
mov dword [ebp - 0x88], ecx
sbb edx, 0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
imul ecx, edx, 0xcccccccd
imul edx, dword [ebp - 0x70], 0xcccccccc
add ecx, edx
mul ebx
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x5c]
add dword [ebp - 0x6c], ecx
mov ecx, eax
mov eax, 0xcccccccd
add ecx, edx
adc ecx, 0
mul ecx
mov ebx, ecx
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add edx, eax
mov eax, dword [ebp - 0x60]
sub ebx, edx
mov edx, dword [ebp - 0x5c]
sub eax, ebx
mov dword [ebp - 0x8c], ebx
mov ebx, 0xcccccccd
sbb edx, 0
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
imul ecx, edx, 0xcccccccd
imul edx, dword [ebp - 0x60], 0xcccccccc
add ecx, edx
mul ebx
mov ebx, 0x33333333
mov dword [ebp - 0x78], eax
mov eax, esi
mov dword [ebp - 0x74], edx
xor edx, edx
add dword [ebp - 0x74], ecx
imul ecx, edx, 0x33333333
mul ebx
mov dword [ebp - 0x60], eax
mov eax, edi
mov dword [ebp - 0x5c], edx
mul ebx
xor ebx, ebx
add dword [ebp - 0x5c], ecx
mov edi, edx
mov edx, dword [ebp - 0x5c]
mov esi, eax
mov ecx, esi
mov eax, edx
xor edx, edx
add ecx, eax
adc ebx, edx
mov edx, edi
add ecx, dword [ebp - 0x60]
adc ebx, dword [ebp - 0x5c]
mov eax, edx
xor edx, edx
add eax, esi
adc edx, edi
mov edi, ebx
mov ebx, ecx
mov esi, edi
xor edi, edi
add eax, esi
mov esi, dword [ebp - 0x70]
adc edx, edi
add esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x6c]
adc edi, dword [ebp - 0x74]
mov dword [ebp - 0x70], esi
xor ecx, ecx
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x6c], edi
xor edi, edi
or ebx, edi
xor edi, edi
or ecx, esi
xor esi, esi
add ecx, dword [ebp - 0x70]
adc ebx, dword [ebp - 0x6c]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ebx
jb 0x4f98f6
add esi, eax
mov ecx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x8c]
adc edi, edx
xor edx, edx
xor ebx, ebx
add ecx, eax
mov eax, 0x1e0
shr eax, cl
xor ecx, ecx
and eax, 1
add eax, dword [ebp - 0x60]
adc edx, dword [ebp - 0x5c]
jb 0x4f9902
add esi, ecx
mov ecx, esi
adc edi, ebx
shrd eax, edx, 1
shr edx, 1
mov ebx, ecx
xor ecx, ecx
shrd esi, edi, 1
shl ebx, 0x1f
or eax, ecx
shr edi, 1
or edx, ebx
sub dword [ebp - 0x7c], 1
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
jne 0x4f9318
mov dword [ebp - 0x7c], 1
mov ebx, dword [ebp - 0x90]
mov ecx, 1
jmp 0x4f94f1
mov ebx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x7c]
movzx edi, byte [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov edx, edi
lea eax, [esi + ecx]
movzx edx, dl
mov dword [ebp - 0x60], edx
cmp ebx, 3
je 0x4f9618
test ebx, ebx
je 0x4f95b0
cmp ebx, 1
je 0x4f9624
mov ebx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x68]
sub ebx, edx
mov dword [ebp - 0x70], ebx
test esi, esi
js 0x4f9630
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x84]
add ecx, eax
mov eax, dword [ebp - 0x80]
lea ebx, [ecx + esi]
or eax, edx
je 0x4f97e0
mov eax, dword [ebp - 0x70]
cmp ebx, eax
jg 0x4f9605
lea eax, [ebx + 0x10]
mov esi, esp
shr eax, 4
shl eax, 4
call fcn.00423810
sub esp, eax
lea ebx, [esp + 0x24]
call sym._fegetround
test eax, eax
jne 0x4f979e
fld xword [ebp + 8]
mov dword [esp + 4], str._.0Lf
mov dword [esp], ebx
fstp xword [esp + 8]
call sym.sprintf_char__char_const__..._
mov edi, eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x68]
mov dword [esp], ebx
call sym._memcpy
mov eax, ebx
xor edx, edx
mov esp, esi
add eax, edi
jmp 0x4f924e
cmp dword [ebp - 0x7c], 1
je 0x4f9710
mov ebx, 0xfffffffd
sub ebx, ecx
cmp esi, ebx
jge 0x4f9700
mov edx, dword [ebp - 0x60]
add edx, ecx
add edx, 1
sub eax, 1
mov ecx, eax
neg ecx
cmovs ecx, eax
mov eax, 6
cmp ecx, 0x3e7
jg 0x4f95f3
xor eax, eax
cmp ecx, 0x63
setg al
add eax, 4
mov edi, dword [ebp - 0x68]
add eax, edx
mov edx, dword [ebp - 0x64]
sub edx, edi
cmp eax, edx
jle 0x4f96c0
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0xc]
mov edx, 0x84
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [eax + 3]
cmp ebx, 9
jbe 0x4f951d
mov edx, dword [ebp - 0x60]
add edx, ecx
cmp ecx, 1
je 0x4f95d1
jmp 0x4f95ce
test eax, eax
mov edx, dword [ebp - 0x60]
mov ebx, 1
cmovg ebx, eax
sub edx, esi
lea eax, [edx + ebx + 1]
mov ebx, dword [ebp - 0x70]
cmp eax, ebx
jg 0x4f9605
mov ebx, esi
mov eax, edi
neg ebx
cmp ebx, ecx
jl 0x4f9738
test al, al
je 0x4f9668
mov eax, dword [ebp - 0x68]
mov byte [eax], 0x2d
add eax, 1
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
sub ebx, ecx
mov edx, 0x2e30
lea esi, [eax + 2]
mov word [eax], dx
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x30
mov dword [esp], esi
call sym._memset
mov edx, dword [ebp - 0x30]
lea eax, [esi + ebx]
mov dword [esp], edx
mov edx, dword [ebp - 0x2c]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x28]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x64]
call sym._anonymous_namespace_::to_chars_char__char___anonymous_namespace_::uint128_t_
jmp 0x4f924e
mov edi, dword [ebp - 0x68]
mov dword [esp + 0x18], edi
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0x14], eax
call sym._anonymous_namespace_::ryu::generic128::generic_to_chars__anonymous_namespace_::ryu::generic128::floating_decimal_128__char_
xor edx, edx
add eax, edi
jmp 0x4f924e
cmp esi, 5
jg 0x4f95c9
jmp 0x4f951d
cmp esi, 0xfffffffd
jge 0x4f9720
mov edx, dword [ebp - 0x60]
add edx, 1
jmp 0x4f95d1
cmp esi, 4
jle 0x4f951d
mov edx, dword [ebp - 0x60]
add edx, ecx
jmp 0x4f95d1
test al, al
je 0x4f9748
mov eax, dword [ebp - 0x68]
mov byte [eax], 0x2d
add eax, 1
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
call sym._anonymous_namespace_::to_chars_char__char___anonymous_namespace_::uint128_t_
mov edi, eax
mov dword [ebp - 0x60], edx
lea edx, [eax + esi]
lea eax, [esi + edi + 1]
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [ebp - 0x64], edx
mov dword [esp], eax
call sym._memmove
mov edx, dword [ebp - 0x64]
lea eax, [edi + 1]
mov byte [edx], 0x2e
mov edx, dword [ebp - 0x60]
jmp 0x4f924e
mov dword [ebp - 0x60], eax
mov dword [esp], 0
call sym._fesetround
fld xword [ebp + 8]
mov dword [esp + 4], str._.0Lf
mov dword [esp], ebx
fstp xword [esp + 8]
call sym.sprintf_char__char_const__..._
mov edx, dword [ebp - 0x60]
mov edi, eax
mov dword [esp], edx
call sym._fesetround
jmp 0x4f9590
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
xor eax, 1
mov edx, eax
or edx, ecx
je 0x4f98a5
mov eax, dword [ebp - 0x70]
cmp ebx, eax
jg 0x4f9605
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
or eax, edx
jne 0x4f988f
mov ecx, 0xffffffff
lea eax, [esi + esi*4]
mov edx, 0xaaaaaaab
lea eax, [eax + eax + 2]
mul edx
shr edx, 1
lea eax, [edx + ecx]
cmp eax, 0x3d
jg 0x4f9554
mov eax, edi
test al, al
je 0x4f9847
mov eax, dword [ebp - 0x68]
mov byte [eax], 0x2d
add eax, 1
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
call sym._anonymous_namespace_::to_chars_char__char___anonymous_namespace_::uint128_t_
mov dword [esp + 8], esi
mov dword [esp + 4], 0x30
mov ebx, eax
mov edi, edx
mov dword [esp], eax
call sym._memset
lea eax, [ebx + esi]
mov edx, edi
jmp 0x4f924e
test edx, edx
je 0x4f98e7
bsr eax, edx
xor eax, 0x1f
mov ecx, 0x3f
sub ecx, eax
jmp 0x4f9819
mov eax, esi
mov edx, 0x80000000
mov ecx, esi
sar eax, 6
mov dword [ebp - 0x60], eax
xor eax, eax
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x4f98c4
mov eax, edx
xor edx, edx
mov ecx, dword [ebp - 0x60]
and eax, dword [ecx*8 + 0x51ffc0]
and edx, dword [ecx*8 + 0x51ffc4]
or eax, edx
je 0x4f98dc
sub ebx, 1
mov eax, dword [ebp - 0x70]
cmp ebx, eax
jg 0x4f9605
bsr eax, dword [ebp - 0x98]
xor eax, 0x1f
add eax, 0x20
jmp 0x4f9899
mov esi, 1
xor edi, edi
jmp 0x4f9475
mov ecx, 1
xor ebx, ebx
jmp 0x4f94a3