Function at 0x14009f8b0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r12, r9
mov qword [rsp + 0x50], rdx
mov r14, rcx
mov r13, qword [rsp + 0xf0]
movsxd rax, dword [r8 + 8]
mov edx, eax
sar edx, 0x1f
and edx, eax
lea ecx, [rax + 1]
test rax, rax
jle 0x1400a01a5
mov rbp, qword [r8]
dec ecx
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14009f8e4
movsxd rdi, dword [r12 + 8]
mov ebp, edi
sar ebp, 0x1f
and ebp, edi
lea edx, [rdi + 1]
mov rax, rdi
test rax, rax
jle 0x1400a01ac
mov rbx, qword [r12]
dec edx
cmp qword [rbx + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14009f910
test ecx, ecx
jle 0x14009f941
mov rax, qword [r8]
movsxd rcx, ecx
cmp qword [rax + rcx*8 - 8], 0
je 0x14009ffa8
test edx, edx
jle 0x14009f958
mov rax, qword [r12]
movsxd rcx, edx
cmp qword [rax + rcx*8 - 8], 0
je 0x14009ffa8
test edi, edi
je 0x14009ff80
mov rdx, qword [r12]
lea rax, [rdi - 1]
mov ecx, edi
and ecx, 7
mov ebp, 7
cmp rax, rbp
jae 0x14009f97d
xor ebx, ebx
xor ebp, ebp
jmp 0x14009f9b5
and rdi, 0xfffffffffffffff8
xor ebx, ebx
xor ebp, ebp
or rbp, qword [rdx + rbx*8]
or rbp, qword [rdx + rbx*8 + 8]
or rbp, qword [rdx + rbx*8 + 0x10]
or rbp, qword [rdx + rbx*8 + 0x18]
or rbp, qword [rdx + rbx*8 + 0x20]
or rbp, qword [rdx + rbx*8 + 0x28]
or rbp, qword [rdx + rbx*8 + 0x30]
or rbp, qword [rdx + rbx*8 + 0x38]
add rbx, 8
cmp rdi, rbx
jne 0x14009f985
test rcx, rcx
je 0x14009f9cc
lea rax, [rdx + rbx*8]
xor edx, edx
or rbp, qword [rax + rdx*8]
inc rdx
cmp rcx, rdx
jne 0x14009f9c0
test rbp, rbp
je 0x14009ff80
mov qword [rsp + 0x48], r8
cmp byte [r13 + 0x28], 0
jne 0x14009f9ff
mov rcx, qword [r13 + 0x10]
mov rsi, qword [r13 + 0x20]
cmp rcx, qword [r13 + 0x18]
je 0x14009ff2c
mov rax, qword [r13 + 8]
mov qword [rax + rcx*8], rsi
inc qword [r13 + 0x10]
mov rcx, r13
call fcn.14009f720
mov qword [rsp + 0x70], rax
mov rcx, r13
call fcn.14009f720
mov qword [rsp + 0x30], rax
mov rcx, r13
call fcn.14009f720
mov rsi, rax
test r14, r14
jne 0x14009fa34
mov rcx, r13
call fcn.14009f720
mov r14, rax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x38], rsi
test rsi, rsi
je 0x1400a0011
cmp qword [rsp + 0x28], 0
je 0x1400a0011
mov rcx, r12
call fcn.14009ec50
mov esi, eax
and esi, 0x3f
mov r8d, 0x40
sub r8d, esi
mov rcx, qword [rsp + 0x38]
mov rdx, r12
call fcn.1400a01e0
test eax, eax
je 0x1400a0011
mov rbx, qword [rsp + 0x38]
movsxd rax, dword [rbx + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
lea edx, [rax + 1]
test rax, rax
jle 0x1400a01b3
mov rbp, qword [rbx]
dec edx
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14009fa91
mov dword [rbx + 8], edx
test edx, edx
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
je 0x1400a0168
mov dword [rbx + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov dword [rsp + 0x6c], r8d
call fcn.1400a01e0
test eax, eax
je 0x1400a0011
mov rcx, qword [rsp + 0x30]
movsxd rbx, dword [rcx + 8]
mov edx, ebx
sar edx, 0x1f
and edx, ebx
lea eax, [rbx + 1]
test rbx, rbx
jle 0x1400a01ba
mov rbp, qword [rcx]
dec eax
cmp qword [rbp + rbx*8 - 8], 0
lea rbx, [rbx - 1]
je 0x14009faf5
mov dword [rcx + 8], eax
test eax, eax
mov rdx, qword [rsp + 0x38]
je 0x1400a0174
mov dword [rcx + 0x10], 0
movsxd rdx, dword [rdx + 8]
lea ebp, [rdx + 1]
cmp eax, ebp
jle 0x14009ffc8
inc eax
movsxd rdx, eax
call fcn.14009d600
test eax, eax
je 0x1400a0011
mov rdx, qword [rsp + 0x30]
mov rax, qword [rdx]
movsxd rcx, dword [rdx + 8]
mov qword [rax + rcx*8], 0
mov ebx, dword [rdx + 8]
inc ebx
mov rbp, qword [rsp + 0x38]
mov dword [rdx + 8], ebx
movsxd rcx, dword [rbp + 8]
mov edi, ebx
sub edi, ecx
mov r15, qword [rdx]
mov rax, qword [rbp]
mov rbp, rcx
mov r14, qword [rax + rcx*8 - 8]
cmp rcx, 1
mov rcx, qword [rsp + 0x28]
je 0x1400a0018
mov rax, qword [rax + rbp*8 - 0x10]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x48]
mov eax, dword [r12 + 0x10]
xor eax, dword [rdx + 0x10]
mov dword [rcx + 0x10], eax
lea eax, [rdi + 1]
movsxd rdx, eax
call fcn.14009d600
test eax, eax
je 0x1400a0011
lea eax, [rdi - 1]
mov rcx, qword [rsp + 0x28]
mov dword [rcx + 8], eax
mov rsi, qword [rcx]
lea rdx, [rbp + 1]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x78], rdx
call fcn.14009d600
test eax, eax
je 0x1400a0011
mov qword [rsp + 0x58], rbp
movsxd rax, edi
lea rbp, [rsi + rax*8]
add rbp, 0xfffffffffffffff8
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + 8], 0
je 0x1400a001f
add rbp, 0xfffffffffffffff8
mov rdx, rbx
cmp edi, 2
jl 0x14009fd2c
movsxd rcx, edx
lea r13, [r15 + rax*8]
dec edx
lea rbx, [r15 + rcx*8]
add rbx, 0xfffffffffffffff8
sub edx, dword [rsp + 0x58]
xor edi, edi
mov qword [rsp + 0x40], rdx
mov rdx, qword [rbx]
cmp rdx, r14
je 0x1400a0030
mov rax, qword [rbx - 8]
mov qword [rsp + 0x80], r14
div qword [rsp + 0x80]
mov rsi, rdx
mov r12, rax
mul qword [rsp + 0x60]
mov r9, qword [rbx - 0x10]
cmp r9, rax
mov rcx, rsi
sbb rcx, rdx
jb 0x14009fcf4
mov r15, r14
mov rax, qword [rsp + 0x38]
mov rdx, qword [rax]
mov rsi, qword [rsp + 0x70]
mov rcx, qword [rsi]
mov r14, qword [rsp + 0x58]
mov r8, r14
mov r9, r12
call fcn.14009de60
add r13, 0xfffffffffffffff8
mov rcx, qword [rsi]
mov qword [rcx + r14*8], rax
mov rcx, qword [rsp + 0x78]
test ecx, ecx
je 0x14009fcd4
mov rax, qword [rsi]
xor edx, edx
sub rsi, rsi
jmp 0x14009fcb0
mov rsi, qword [r13 + rdx*8]
sbb rsi, qword [rax + rdx*8]
mov qword [r13 + rdx*8], rsi
lea rdx, [rdx + 1]
dec rcx
jne 0x14009fcb0
sbb rsi, rsi
test sil, 1
jne 0x1400a0111
mov rdx, qword [rsp + 0x40]
mov r14, r15
mov qword [rbp], r12
inc edi
add rbx, 0xfffffffffffffff8
add rbp, 0xfffffffffffffff8
cmp edi, edx
jl 0x14009fc2f
jmp 0x14009fd2c
add rsi, r14
dec r12
mov r8, r12
mov r12, r8
sub rax, qword [rsp + 0x60]
sbb rdx, 0
cmp rsi, r14
jb 0x14009fc6d
lea r8, [r12 - 1]
cmp r9, rax
lea rcx, [rsi + r14]
sbb rsi, rdx
mov rsi, rcx
jae 0x14009fc6d
jmp 0x14009fcfd
mov rdi, qword [rsp + 0x30]
movsxd rbx, dword [rdi + 8]
mov edx, ebx
sar edx, 0x1f
and edx, ebx
lea eax, [rbx + 1]
mov r13, qword [rsp + 0xf0]
mov r15, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
test rbx, rbx
jle 0x1400a01c1
mov rbp, qword [rdi]
dec eax
cmp qword [rbp + rbx*8 - 8], 0
lea rbx, [rbx - 1]
je 0x14009fd51
mov dword [rdi + 8], eax
test eax, eax
je 0x1400a0180
test rcx, rcx
je 0x14009febd
mov rdx, qword [rsp + 0x48]
mov r14d, dword [rdx + 0x10]
movsxd rdx, eax
call fcn.14009d600
test eax, eax
je 0x1400a0011
mov rax, qword [rsp + 0x30]
movsxd rbx, dword [rax + 8]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rbp]
mov ecx, dword [rsp + 0x6c]
mov edi, ecx
shr edi, 6
cmp rbx, rdi
jbe 0x1400a003c
mov rax, qword [rax]
and ecx, 0x3f
mov r15, qword [rsp + 0x28]
jne 0x1400a0051
mov r8, rbx
sub r8, rdi
je 0x14009fde5
shl r8, 3
lea rdx, [rax + rdi*8]
mov rcx, rsi
call fcn.1400f23d0
lea rsi, [rsi + rbx*8]
lea rax, [rdi*8]
sub rsi, rax
shl rdi, 3
mov rcx, rsi
xor edx, edx
mov r8, rdi
call fcn.1400f27e0
mov rcx, qword [rsp + 0x30]
mov eax, dword [rcx + 0x10]
mov dword [rbp + 0x10], eax
movsxd rcx, dword [rcx + 8]
mov dword [rbp + 8], ecx
mov edx, ecx
sar edx, 0x1f
and edx, ecx
lea eax, [rcx + 1]
test rcx, rcx
jle 0x1400a01cf
mov rbx, qword [rbp]
dec eax
cmp qword [rbx + rcx*8 - 8], 0
lea rcx, [rcx - 1]
je 0x14009fe21
mov dword [rbp + 8], eax
test eax, eax
je 0x1400a018c
movsxd rdi, eax
mov rdx, qword [rbp]
lea rcx, [rdi - 1]
and eax, 7
mov ebx, 7
cmp rcx, rbx
jae 0x14009fe65
xor ebx, ebx
xor ecx, ecx
jmp 0x14009fe9d
and rdi, 0xfffffffffffffff8
xor ebx, ebx
xor ecx, ecx
or rcx, qword [rdx + rbx*8]
or rcx, qword [rdx + rbx*8 + 8]
or rcx, qword [rdx + rbx*8 + 0x10]
or rcx, qword [rdx + rbx*8 + 0x18]
or rcx, qword [rdx + rbx*8 + 0x20]
or rcx, qword [rdx + rbx*8 + 0x28]
or rcx, qword [rdx + rbx*8 + 0x30]
or rcx, qword [rdx + rbx*8 + 0x38]
add rbx, 8
cmp rdi, rbx
jne 0x14009fe6d
test rax, rax
je 0x14009feb4
lea rdx, [rdx + rbx*8]
xor ebx, ebx
or rcx, qword [rdx + rbx*8]
inc rbx
cmp rax, rbx
jne 0x14009fea8
test rcx, rcx
je 0x14009febd
mov dword [rbp + 0x10], r14d
movsxd rax, dword [r15 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
lea edx, [rax + 1]
test rax, rax
jle 0x1400a01c8
mov rbp, qword [r15]
dec edx
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14009fecb
mov dword [r15 + 8], edx
test edx, edx
je 0x1400a0198
mov esi, 1
cmp byte [r13 + 0x28], 0
jne 0x14009ff16
mov rax, qword [r13 + 8]
mov rcx, qword [r13 + 0x10]
lea rdx, [rcx - 1]
mov qword [r13 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r13 + 0x20], rax
mov eax, esi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x1400a015c
mov rax, rdi
shr rax, 0x3d
jne 0x1400a015c
lea rdx, [rdi*8]
mov rcx, qword [r13 + 8]
call fcn.1400c6860
test rax, rax
je 0x1400a015c
mov qword [r13 + 8], rax
mov qword [r13 + 0x18], rdi
mov rcx, qword [r13 + 0x10]
jmp 0x14009f9f7
mov dword [rsp + 0x20], 0xda
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.14009b3a0
jmp 0x14009ff16
mov dword [rsp + 0x20], 0xd5
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x6f
jmp 0x14009ff9e
add rdx, 2
call fcn.14009d600
test eax, eax
je 0x1400a0011
mov rdx, qword [rsp + 0x30]
movsxd rax, dword [rdx + 8]
mov rbp, qword [rsp + 0x38]
mov ebx, dword [rbp + 8]
add ebx, 2
cmp eax, ebx
jge 0x14009fb65
mov rcx, qword [rdx]
mov qword [rcx + rax*8], 0
inc rax
movsxd rbx, dword [rbp + 8]
add rbx, 2
cmp rax, rbx
jl 0x14009fff1
jmp 0x14009fb65
xor esi, esi
jmp 0x14009fef6
xor eax, eax
jmp 0x14009fb93
mov rcx, qword [rsp + 0x28]
mov dword [rcx + 0x10], 0
jmp 0x14009fc07
mov r12, 0xffffffffffffffff
jmp 0x14009fc6d
mov rdi, rbx
test ebx, ebx
mov r15, qword [rsp + 0x28]
jne 0x14009fdf4
jmp 0x14009fe05
lea r9, [rbx - 1]
mov r8d, ecx
sub r9, rdi
jbe 0x1400a00f8
mov r10d, 0x40
sub r10d, ecx
mov ecx, edi
not ecx
add ecx, ebx
lea r11, [rbx - 2]
mov r12, rdi
test cl, 1
je 0x1400a009b
mov rdx, qword [rax + rdi*8]
mov ecx, r8d
shr rdx, cl
mov r15, qword [rax + rdi*8 + 8]
mov ecx, r10d
shl r15, cl
lea r12, [rdi + 1]
or r15, rdx
mov qword [rsi], r15
cmp r11, rdi
mov r15, qword [rsp + 0x28]
je 0x1400a00f8
inc r12
lea rcx, [rdi*8]
mov r11, rsi
sub r11, rcx
mov rbp, qword [rax + r12*8 - 8]
mov ecx, r8d
shr rbp, cl
mov rdx, qword [rax + r12*8]
mov ecx, r10d
shl rdx, cl
or rdx, rbp
mov qword [r11 + r12*8 - 8], rdx
mov rbp, qword [rax + r12*8]
mov ecx, r8d
shr rbp, cl
mov rdx, qword [rax + r12*8 + 8]
mov ecx, r10d
shl rdx, cl
or rdx, rbp
mov qword [r11 + r12*8], rdx
add r12, 2
cmp rbx, r12
jne 0x1400a00b6
mov rax, qword [rax + rbx*8 - 8]
mov ecx, r8d
shr rax, cl
mov qword [rsi + r9*8], rax
mov rbp, qword [rsp + 0x50]
jmp 0x14009fde5
dec r12
mov rcx, qword [rsp + 0x58]
test ecx, ecx
je 0x14009fcd4
mov rax, qword [rsp + 0x38]
mov rax, qword [rax]
xor edx, edx
sub rsi, rsi
jmp 0x1400a0130
mov rsi, qword [r13 + rdx*8]
adc rsi, qword [rax + rdx*8]
mov qword [r13 + rdx*8], rsi
lea rdx, [rdx + 1]
dec rcx
jne 0x1400a0130
sbb rsi, rsi
test sil, 1
je 0x14009fcd4
inc qword [rbx]
jmp 0x14009fcd4
mov word [r13 + 0x28], 0x101
jmp 0x14009f9ff
mov dword [rbx + 0x10], 0
jmp 0x14009fac0
mov dword [rcx + 0x10], 0
jmp 0x14009fb1f
mov dword [rdi + 0x10], 0
jmp 0x14009fd76
mov dword [rbp + 0x10], 0
jmp 0x14009febd
mov dword [r15 + 0x10], 0
jmp 0x14009fef1
mov ecx, edx
jmp 0x14009f8fe
mov edx, ebp
jmp 0x14009f92b
mov edx, ecx
jmp 0x14009faab
mov eax, edx
jmp 0x14009fb0f
mov eax, edx
jmp 0x14009fd6b
mov edx, ecx
jmp 0x14009fee5
mov eax, edx
jmp 0x14009fe3c