Function at 0x4083ad
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov r13, r8
mov rbp, rcx
mov rbx, 0xffffffffffffffff
cmp byte [rcx + 0x49], 1
jne 0x4083d7
mov rbx, qword [rbp + 0x60]
cmp r13, 0x40
je 0x4083fc
cmp r13, 0x20
jne 0x40918c
cvtsd2ss xmm0, xmm1
movd r8d, xmm0
lea rdx, [0x0040fea8]
mov dil, 1
jmp 0x40840a
movq r8, xmm1
lea rdx, [0x0040fec0]
xor edi, edi
mov r12, qword [rdx]
mov rax, qword [rdx + 8]
lea rcx, [r12 + rax]
cmp rcx, 0x40
setb r9b
mov r10, r8
shr r10, cl
test r10, r10
setne sil
mov r10, r8
mov ecx, r12d
shr r10, cl
and sil, r9b
mov r9, 0xffffffffffffffff
mov r11, 0xffffffffffffffff
mov ecx, eax
shl r11, cl
cmp rax, 0x40
not r11
cmovae r11, r9
mov rax, 0xffffffffffffffff
mov ecx, r12d
shl rax, cl
xor rax, r9
xor r14d, r14d
cmp r12, 0x40
cmovb r14, r10
cmovae rax, r9
lea rcx, [rbp + 0x68]
and r14, r11
and rax, r8
cmp r14, r11
jne 0x4084d4
lea rdx, [0x0040ffbb]
lea r8, [0x0040ffbf]
test sil, sil
cmovne r8, rdx
xor r9d, r9d
test rax, rax
sete r9b
lea rdx, str.NaN_InfInfnot_enough_significant_bits_after_mult64bitPow10
cmove rdx, r8
add r9, 3
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], 1
mov r8d, 1
mov r9d, 0x44
call sym.runtime.sliceAppend
jmp 0x408e00
mov dword [rsp + 0x58], edi
mov qword [rsp + 0x68], rcx
mov byte [rsp + 0x70], sil
mov qword [rsp + 0x50], rbp
mov edi, 1
mov ecx, r12d
shl rdi, cl
xor ecx, ecx
cmp r14, 1
mov r15, r14
adc r15, rcx
test r14, r14
cmovne r14, rdi
cmp r12, 0x40
cmovae r14, rcx
or r14, rax
mov rsi, qword [rdx + 0x10]
add r15, rsi
lea rbp, [rsp + 0x98]
and qword [rbp + 8], 0
xorps xmm0, xmm0
movaps xmmword [rbp - 8], xmm0
movaps xmmword [rbp - 0x18], xmm0
test rbx, rbx
js 0x4086ae
cmp rbx, 1
mov rdi, rbx
adc rdi, 0
mov ecx, 0x18
mov edx, 3
call dbg.runtime.alloc
cmp r13, 0x20
jne 0x40873a
cmp rdi, 0xa
jae 0x40873a
mov qword [rsp + 0x80], rax
mov eax, 0x18
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
test r14d, r14d
je 0x408880
bsr eax, r14d
xor eax, 0x1f
mov edx, 0x20
sub edx, eax
add al, 0xf9
xor r8d, r8d
cmp r14d, 0x1000000
movzx ecx, al
cmovae ecx, r8d
shl r14d, cl
mov eax, 0x19
sub rax, rdx
cmovae r8, rax
add r8, r12
sub r15, r8
imul r12, r15, 0x13441
add r12, 0x1ce618
sar r12, 0x12
not r12
add r12, rdi
cmp r12, 0x1c
setb sil
mov ecx, r14d
mov rdx, r15
mov r8, r12
call dbg.strconv.mult64bitPow10
test rdx, rdx
jns 0x4091b2
mov r13d, eax
mov r15, rdx
mov ebp, ecx
cmp r12, 0xfffffffffffffff6
jb 0x408623
cmp r12, 0x1c
setb sil
mov ecx, r14d
mov rdx, r12
neg rdx
call dbg.strconv.divisibleByPower5
or sil, al
or bpl, al
mov rax, r15
neg rax
mov r8d, 0xffffffff
mov ecx, eax
shl r8d, cl
mov edx, r13d
shr edx, cl
mov ecx, 0xffffffff
xor r9d, r9d
cmp rax, 0x20
not r8d
cmovae r8d, ecx
cmovae edx, r9d
and r8d, r13d
xor ecx, r15d
test sil, 1
je 0x40897c
mov eax, 1
shl eax, cl
cmp r15, 0xffffffffffffffe0
cmovb eax, r9d
mov r9b, 1
cmp r8d, eax
ja 0x408994
setne cl
or cl, bpl
test cl, 1
je 0x408994
xor r9d, r9d
cmp r8d, eax
jne 0x408994
mov eax, ebp
xor al, 1
test al, 1
jne 0x408994
mov r9d, edx
and r9b, 1
jmp 0x408994
mov qword [rsp + 0x60], rbx
mov r13d, 0x20
mov ecx, 0x20
mov edx, 3
call dbg.runtime.alloc
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x90], r13
test r14, r14
je 0x408970
sub r15, r12
test r15, r15
jg 0x408704
bsf rax, r14
mov rcx, r15
neg rcx
cmp rax, rcx
jge 0x408c13
xor eax, eax
cmp r12, 0x40
cmovae rdi, rax
cmp rdi, r14
jne 0x408722
sub rsi, r12
inc rsi
cmp rsi, r15
jne 0x408a03
lea r12, [r14 + r14]
lea r9, [r14*2 + 1]
mov rbp, 0xffffffffffffffff
jmp 0x408a1a
cmp rdi, 0x12
ja 0x40888e
mov qword [rsp + 0x80], rax
mov eax, 0x18
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
test r14, r14
je 0x408880
bsr rax, r14
xor rax, 0xffffffffffffffc0
add rax, 0x41
xor ecx, ecx
mov edx, 0x37
sub rdx, rax
cmovae rcx, rdx
shl r14, cl
add rcx, r12
sub r15, rcx
imul r12, r15, 0x13441
add r12, 0x4105b6
sar r12, 0x12
not r12
add r12, rdi
cmp r12, 0x38
setb sil
mov rcx, r14
mov rdx, r15
mov r8, r12
call dbg.strconv.mult128bitPow10
test rdx, rdx
jns 0x40919f
mov r13, rax
mov r15, rdx
mov ebp, ecx
cmp r12, 0xffffffffffffffea
jb 0x4087ee
cmp r12, 0x38
setb sil
mov rdx, r12
neg rdx
mov rcx, r14
call dbg.strconv.divisibleByPower5
or sil, al
or bpl, al
mov rax, r15
neg rax
mov r8, 0xffffffffffffffff
mov ecx, eax
shl r8, cl
mov r9, r13
shr r9, cl
mov rcx, 0xffffffffffffffff
xor edx, edx
cmp rax, 0x40
not r8
cmovae r8, rcx
cmovb rdx, r9
and r8, r13
xor rcx, r15
test sil, 1
je 0x4089b5
mov r9d, 1
shl r9, cl
xor eax, eax
cmp r15, 0xffffffffffffffc0
cmovae rax, r9
mov r9b, 1
cmp r8, rax
ja 0x4089cd
setne cl
or cl, bpl
test cl, 1
je 0x4089cd
xor r9d, r9d
cmp r8, rax
jne 0x4089cd
mov eax, ebp
xor al, 1
test al, 1
jne 0x4089cd
mov r9d, edx
and r9b, 1
jmp 0x4089cd
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
xor eax, eax
jmp 0x4089f9
mov ecx, 0x338
mov edx, 3
call dbg.runtime.alloc
mov r13, rax
and qword [rsp + 0xe0], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0xd0], xmm0
xor ecx, ecx
mov r8d, 0xa
mov rbp, qword [rsp + 0x50]
test r14, r14
je 0x4088f5
cmp rcx, 0x18
je 0x409182
mov rax, r14
xor edx, edx
div r8
imul edx, eax, 0xf6
add r14d, edx
add r14b, 0x30
mov byte [rsp + rcx + 0xd0], r14b
inc rcx
mov r14, rax
jmp 0x4088c1
xor eax, eax
mov rdx, rcx
mov qword [r13 + 0x320], rax
sub rdx, 1
jb 0x40892e
cmp rax, 0x31f
ja 0x409182
mov cl, byte [rsp + rcx + 0xcf]
mov byte [r13 + rax], cl
mov rax, qword [r13 + 0x320]
inc rax
mov rcx, rdx
jmp 0x4088fa
mov qword [r13 + 0x328], rax
mov rcx, r13
call dbg.strconv.trim
cmp qword [r13 + 0x320], 0
je 0x408c75
sub r15, r12
test r15, r15
jle 0x408c4c
cmp r15, 0x3d
jl 0x4089a5
mov edx, 0x3c
mov rcx, r13
call dbg.strconv.leftShift
add r15, 0xffffffffffffffc4
jmp 0x408957
xorps xmm0, xmm0
movups xmmword [rbp], xmm0
jmp 0x408c3d
cmp r15, 0xffffffffffffffe0
setae al
mov r9d, r8d
shr r9d, cl
cmp r9d, 1
sete r9b
and r9b, al
test r8d, r8d
setne al
xor bpl, 1
or bpl, al
mov edx, edx
jmp 0x4089da
mov rcx, r13
mov rdx, r15
call dbg.strconv.leftShift
jmp 0x408c75
cmp r15, 0xffffffffffffffc0
setae al
mov r9, r8
shr r9, cl
cmp r9, 1
sete r9b
and r9b, al
test r8, r8
setne al
xor bpl, 1
or bpl, al
mov qword [rsp + 0x20], rdi
lea r14, [rsp + 0x80]
mov rcx, r14
mov r8d, ebp
call dbg.strconv.formatDecimal
mov rax, qword [r14 + 0x20]
sub rax, r12
mov rbp, qword [rsp + 0x50]
jmp 0x408dbe
lea r12, [r14*4]
lea r9, [r14*4 + 2]
mov rbp, 0xfffffffffffffffe
lea rdx, [r12 - 1]
add rbp, r15
mov rbx, qword [rsp + 0x60]
je 0x408abd
mov qword [rsp + 0xb0], r9
imul rdi, rbp, 0xfffffffffffecbbf
mov r13, rdi
sar r13, 0x12
lea r15, [r13 + 1]
cmp byte [rsp + 0x58], 0
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0xc0], r12
mov qword [rsp + 0xb8], rdx
je 0x408ae1
mov ecx, edx
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult64bitPow10
mov dword [rsp + 0x58], eax
mov esi, ecx
mov ecx, r12d
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult64bitPow10
mov dword [rsp + 0x78], eax
mov r12d, ecx
mov rcx, qword [rsp + 0xb0]
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult64bitPow10
mov r8, rdx
mov r15d, ecx
mov ecx, dword [rsp + 0x58]
mov qword [rsp + 0x58], rcx
mov ecx, dword [rsp + 0x78]
mov qword [rsp + 0x78], rcx
mov ebp, eax
jmp 0x408b28
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 1
lea rcx, [rsp + 0x80]
mov r8, r12
call dbg.strconv.ryuDigits
mov rbp, qword [rsp + 0x50]
jmp 0x408dae
mov rcx, rdx
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult128bitPow10
mov qword [rsp + 0x58], rax
mov esi, ecx
mov rcx, r12
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult128bitPow10
mov qword [rsp + 0x78], rax
mov r12d, ecx
mov rcx, qword [rsp + 0xb0]
mov rdx, rbp
mov r8, r15
call dbg.strconv.mult128bitPow10
mov rbp, rax
mov r8, rdx
mov r15d, ecx
test r8, r8
jns 0x40919f
cmp rdi, 0xdc0000
setl al
and sil, al
and r12b, al
and r15b, al
lea rax, [r13 + 0x19]
cmp rax, 0x17
ja 0x408b90
not r13
mov rcx, qword [rsp + 0xb8]
mov rdx, r13
mov rdi, r8
call dbg.strconv.divisibleByPower5
or sil, al
mov rcx, qword [rsp + 0xc0]
mov rdx, r13
call dbg.strconv.divisibleByPower5
or r12b, al
mov rcx, qword [rsp + 0xb0]
mov rdx, r13
call dbg.strconv.divisibleByPower5
mov r8, rdi
or r15b, al
mov rax, qword [rsp + 0x58]
mov rdi, r8
mov rcx, r8
neg rcx
mov rdx, 0xffffffffffffffff
shl rdx, cl
mov qword [rsp + 0x58], rax
shr rax, cl
mov r13, qword [rsp + 0x78]
mov r8, r13
shr r8, cl
mov r10, 0xffffffffffffffff
mov r9, rbp
shr r9, cl
xor r11d, r11d
cmp rcx, 0x40
not rdx
cmovae rdx, r10
cmovae rax, r11
cmovae r8, r11
cmovae r9, r11
and rbp, rdx
setne cl
xor r15b, 1
or cl, r15b
test r15b, 1
jne 0x408d05
test rbp, rbp
mov rbp, qword [rsp + 0x50]
jne 0x408d0a
test r14b, 1
sete cl
jmp 0x408d0a
shr r14, cl
xor edx, edx
cmp rcx, 0x40
cmovb rdx, r14
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 1
lea rcx, [rsp + 0x80]
mov r8, rdx
mov r9, rdx
call dbg.strconv.ryuDigits
mov rbp, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x60]
jmp 0x408dae
jns 0x408c75
jmp 0x408c61
mov edx, 0x3c
mov rcx, r13
call dbg.strconv.rightShift
add r15, 0x3c
cmp r15, 0xffffffffffffffc3
jle 0x408c50
neg r15
mov rcx, r13
mov rdx, r15
call dbg.strconv.rightShift
mov rcx, qword [r13 + 0x320]
cmp rcx, rdi
jle 0x408cdd
cmp rdi, 0x31f
ja 0x409182
mov dl, byte [r13 + rdi]
lea rax, [rdi + 1]
cmp dl, 0x35
jne 0x408ce5
cmp rax, rcx
jne 0x408ce5
cmp byte [r13 + 0x331], 1
je 0x408cb3
test byte [rdi + r13 - 1], 1
je 0x408cea
cmp rax, 1
je 0x40912d
mov cl, byte [r13 + rax - 2]
dec rax
cmp cl, 0x38
ja 0x408cb3
inc cl
mov byte [r13 + rax - 1], cl
mov qword [r13 + 0x320], rax
jmp 0x409149
mov rax, rcx
jmp 0x409149
cmp dl, 0x34
ja 0x408cb3
mov qword [r13 + 0x320], rdi
mov rcx, r13
call dbg.strconv.trim
mov rax, qword [r13 + 0x320]
jmp 0x409149
mov rbp, qword [rsp + 0x50]
and r13, rdx
not cl
movzx ecx, cl
and ecx, 1
sub r9, rcx
mov rcx, rdi
not rcx
test r12b, 1
je 0x408d48
mov r10d, 1
shl r10, cl
xor r11d, r11d
cmp rdi, 0xffffffffffffffc0
cmovae r11, r10
mov cl, 1
cmp r13, r11
ja 0x408d60
sete r10b
mov ecx, r8d
jmp 0x408d5d
cmp rdi, 0xffffffffffffffc0
setae r10b
mov r11, r13
shr r11, cl
cmp r11, 1
sete cl
and cl, r10b
mov r10d, 1
and r14, r10
test qword [rsp + 0x58], rdx
cmovne r14, r10
test sil, 1
cmove r14, r10
add r14, rax
test r13, r13
sete al
and r12b, al
mov byte [rsp + 0x28], cl
mov byte [rsp + 0x20], r12b
lea r15, [rsp + 0x80]
mov rcx, r15
mov rdx, r14
call dbg.strconv.ryuDigits
mov rax, qword [rsp + 0xc8]
sub qword [r15 + 0x20], rax
mov rdi, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
mov r9, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x88]
movaps xmm0, xmmword [rsp + 0x90]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rax
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], rcx
mov rdx, rbx
shr rdx, 0x3f
mov rcx, qword [rsp + 0x68]
mov r8b, byte [rsp + 0x70]
call dbg.strconv.formatDigits
mov rdi, rax
mov r15, rdx
mov r14, rcx
cmp rdx, 2
jb 0x409182
movzx eax, byte [rdi + 1]
cmp eax, 0x2d
je 0x408e21
cmp eax, 0x2b
jne 0x408e35
dec r15
cmp r15, r14
jae 0x409187
inc rdi
dec r14
jmp 0x408e38
mov byte [rdi], 0x2b
cmp byte [rbp + 0x4d], 1
jne 0x408e55
test r15, r15
je 0x409182
cmp byte [rdi], 0x2b
jne 0x408e55
cmp byte [rbp + 0x4b], 0
jne 0x408e55
mov byte [rdi], 0x20
cmp r15, 2
jb 0x409182
lea rsi, [rbp + 0x40]
movzx eax, byte [rdi + 1]
cmp eax, 0x4e
je 0x408e71
cmp eax, 0x49
jne 0x408ec6
mov rax, rdi
inc rax
mov bl, byte [rbp + 0x4e]
mov byte [rbp + 0x4e], 0
cmp byte [rax], 0x4e
jne 0x408e9e
cmp byte [rbp + 0x4d], 0
jne 0x408e9e
cmp byte [rbp + 0x4b], 0
jne 0x408e9e
dec r15
mov rdi, rax
cmp r15, r14
jae 0x409187
mov rcx, rsi
mov rdx, rdi
mov r8, r15
call dbg.(*fmt.fmt).pad
and bl, 1
mov byte [rbp + 0x4e], bl
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rbp + 0x4c], 0
je 0x40907c
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rbp
cmp rbx, 0xffffffffffffffff
mov ebp, 6
cmove rbx, rbp
mov qword [rsp + 0x60], rbx
mov ecx, 6
mov edx, 3
call dbg.runtime.alloc
mov r12, rax
mov ebx, 1
mov rsi, 0xffffffffffffffff
xor r13d, r13d
xor eax, eax
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0x70], rax
cmp rbx, r15
jge 0x408fb1
jae 0x409182
lea rdx, [rdi + rbx]
movzx eax, byte [rdi + rbx]
cmp eax, 0x70
je 0x408f54
cmp eax, 0x45
je 0x408f54
cmp eax, 0x50
je 0x408f54
cmp eax, 0x65
je 0x408f54
cmp eax, 0x2e
jne 0x408f8a
mov al, 1
mov qword [rsp + 0x68], rax
jmp 0x408fa6
cmp r15, r14
ja 0x409187
add r15, rsi
mov qword [rsp + 0x20], r15
mov qword [rsp + 0x28], 1
mov rcx, r12
mov r8, r13
mov r9, rbp
call sym.runtime.sliceAppend
mov r12, rax
mov r13, rdx
mov rbp, rcx
mov r15, rbx
jmp 0x408fa6
cmp al, 0x30
setne al
mov rcx, qword [rsp + 0x70]
or cl, al
mov qword [rsp + 0x70], rcx
movzx eax, cl
and eax, 1
sub qword [rsp + 0x60], rax
inc rbx
dec rsi
jmp 0x408f1b
test byte [rsp + 0x68], 1
je 0x408fbf
mov rbx, qword [rsp + 0x60]
jmp 0x409007
cmp r15, 2
mov rbx, qword [rsp + 0x60]
jne 0x408fd6
xor eax, eax
cmp byte [rdi + 1], 0x30
sete al
sub rbx, rax
lea rdx, [rsp + 0xd0]
mov byte [rdx], 0x2e
mov eax, 1
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov r8, r15
mov r9, r14
call sym.runtime.sliceAppend
mov rdi, rax
mov r15, rdx
mov r14, rcx
mov esi, 1
lea rbp, [rsp + 0x80]
test rbx, rbx
jle 0x40904a
mov byte [rsp + 0x80], 0x30
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
mov rcx, rdi
mov rdx, rbp
mov r8, r15
mov r9, r14
call sym.runtime.sliceAppend
mov rdi, rax
mov r15, rdx
mov r14, rcx
dec rbx
jmp 0x409014
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], 1
mov rcx, rdi
mov rdx, r12
mov r8, r15
mov r9, r14
call sym.runtime.sliceAppend
mov rdi, rax
mov r15, rdx
mov r14, rcx
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
cmp byte [rbp + 0x4b], 1
je 0x4090a1
test r15, r15
je 0x409182
cmp byte [rdi], 0x2b
jne 0x4090a1
dec r15
cmp r15, r14
jae 0x409187
inc rdi
jmp 0x40910c
cmp byte [rbp + 0x4e], 1
jne 0x40910c
cmp byte [rbp + 0x4a], 0
jne 0x40910c
cmp byte [rbp + 0x48], 1
jne 0x40910c
cmp qword [rbp + 0x58], r15
jle 0x40910c
test r15, r15
je 0x409182
mov rcx, qword [rbp + 0x40]
mov dl, byte [rdi]
call dbg.(*fmt.buffer).writeByte
mov rdx, qword [rbp + 0x58]
sub rdx, r15
mov rcx, rsi
call dbg.(*fmt.fmt).writePadding
dec r15
cmp r15, r14
jae 0x409187
mov rcx, qword [rsi]
inc rdi
mov rdx, rdi
mov r8, r15
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp dbg.(*fmt.buffer).write
mov rcx, rsi
mov rdx, rdi
mov r8, r15
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp dbg.(*fmt.fmt).pad
mov byte [r13], 0x31
mov qword [r13 + 0x320], 1
inc qword [r13 + 0x328]
mov eax, 1
mov rcx, qword [r13 + 0x328]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rax
mov eax, 0x320
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x68]
xor edx, edx
mov r8b, byte [rsp + 0x70]
mov r9, r13
jmp 0x408dfb
call dbg.runtime.lookupPanic
call dbg.runtime.slicePanic
lea rcx, [0x00411720]
lea rdx, [0x0040ffa8]
call dbg.runtime._panic
lea rcx, [0x00411720]
lea rdx, str.not_enough_significant_bits_after_mult128bitPow10
call dbg.runtime._panic
lea rcx, [0x00411720]
lea rdx, [0x0040fff8]
call dbg.runtime._panic
int3