Function at 0x14009aac0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r13, r9
mov r14, r8
mov qword [rsp + 0x28], rcx
mov ecx, dword [r8 + 8]
test ecx, ecx
jle 0x14009b343
mov rax, qword [r14]
mov r8d, ecx
mov ecx, r8d
mov dil, 1
cmp qword [rax + rcx*8 - 8], 0
je 0x14009b412
mov ecx, r8d
movsxd rax, dword [r13 + 8]
test rax, rax
jle 0x14009b383
mov r10, qword [r13]
mov r11d, eax
mov r8d, r11d
mov r9b, 1
cmp qword [r10 + r8*8 - 8], 0
je 0x14009b42f
mov r8d, r11d
test dil, dil
je 0x14009ab41
mov r10, qword [r14]
mov ecx, ecx
cmp qword [r10 + rcx*8 - 8], 0
je 0x14009b3c7
test r9b, r9b
je 0x14009ab59
mov rcx, qword [r13]
mov r8d, r8d
cmp qword [rcx + r8*8 - 8], 0
je 0x14009b3c7
test eax, eax
je 0x14009b1d8
mov rbx, qword [rsp + 0xe0]
mov rcx, qword [r13]
xor r9d, r9d
xor r8d, r8d
or r8, qword [rcx + r9*8]
inc r9
cmp rax, r9
jne 0x14009ab73
test r8, r8
je 0x14009b1d8
mov qword [rsp + 0x50], rdx
cmp byte [rbx + 0x28], 0
jne 0x14009abb1
mov rcx, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rcx, qword [rbx + 0x18]
je 0x14009b16b
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], rsi
inc qword [rbx + 0x10]
mov rcx, rbx
call fcn.14009a9b0
mov qword [rsp + 0x38], rax
mov rcx, rbx
call fcn.14009a9b0
mov qword [rsp + 0x40], rax
mov rcx, rbx
call fcn.14009a9b0
mov rsi, rax
cmp qword [rsp + 0x28], 0
jne 0x14009abeb
mov rcx, rbx
call fcn.14009a9b0
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rsi
test rsi, rsi
je 0x14009b2d5
cmp qword [rsp + 0x28], 0
je 0x14009b2d5
mov ecx, dword [r13 + 8]
test ecx, ecx
jle 0x14009b28b
mov rax, qword [r13]
mov edx, ecx
cmp qword [rax + rdx*8 - 8], 0
je 0x14009aea0
movsxd rdx, ecx
shl ecx, 6
mov rdx, qword [rax + rdx*8 - 8]
xor eax, eax
test rdx, rdx
setne al
or eax, ecx
xor ecx, ecx
mov r8, rdx
shr r8, 0x20
cmove r8, rdx
setne cl
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
cmovb r9, r8
setae dl
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
cmovb r10, r9
setae r8b
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor esi, esi
cmp r9, 4
setae sil
cmovb r10, r9
or ecx, eax
or ecx, edx
cmp r10, 2
lea eax, [rcx + r8*8]
lea eax, [rax + r11*4]
lea esi, [rax + rsi*2]
sbb esi, 0xffffffff
add esi, 0xffffffc0
mov rcx, qword [rsp + 0x30]
and esi, 0x3f
mov r8d, 0x40
sub r8d, esi
mov rdx, r13
call fcn.140130870
test eax, eax
je 0x14009b2d5
mov r9, qword [rsp + 0x30]
mov eax, dword [r9 + 8]
test eax, eax
mov rcx, qword [rsp + 0x40]
jle 0x14009ad0a
mov r8, qword [r9]
mov edx, eax
cmp qword [r8 + rdx*8 - 8], 0
je 0x14009b38e
mov dword [r9 + 8], eax
mov dword [r9 + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov rdx, r14
mov dword [rsp + 0x64], r8d
call fcn.140130870
test eax, eax
je 0x14009b2d5
mov rbx, qword [rsp + 0x40]
mov eax, dword [rbx + 8]
test eax, eax
jle 0x14009b34a
mov rcx, qword [rbx]
mov r8, qword [rsp + 0x30]
mov edx, eax
cmp qword [rcx + rdx*8 - 8], 0
je 0x14009b3ea
mov dword [rbx + 8], eax
mov dword [rbx + 0x10], 0
movsxd rdx, dword [r8 + 8]
lea ecx, [rdx + 1]
cmp eax, ecx
jle 0x14009b2f6
lea esi, [rax + 1]
cmp dword [rbx + 0xc], esi
jb 0x14009af0d
mov rdi, qword [rbx]
cdqe
mov qword [rdi + rax*8], 0
mov ebp, dword [rbx + 8]
inc ebp
mov dword [rbx + 8], ebp
movsxd rdx, dword [r8 + 8]
mov esi, ebp
sub esi, edx
mov rax, qword [r8]
cmp rdx, 1
mov r11, qword [rsp + 0x38]
je 0x14009b36a
mov rcx, qword [rax + rdx*8 - 0x10]
mov qword [rsp + 0x58], rcx
mov r15, qword [rbx]
mov rbx, qword [rax + rdx*8 - 8]
mov ecx, dword [r14 + 0x10]
mov eax, dword [r13 + 0x10]
mov dword [rsp + 0x60], ecx
xor eax, ecx
mov r13, qword [rsp + 0x28]
mov dword [r13 + 0x10], eax
lea r14d, [rsi + 1]
cmp dword [r13 + 0xc], r14d
mov qword [rsp + 0x48], rdx
jb 0x14009aeb3
mov r12, qword [r13]
lea edi, [rsi - 1]
mov dword [r13 + 8], edi
mov r13, qword [rsp + 0x48]
inc r13
mov eax, edi
cmp dword [r11 + 0xc], r13d
jae 0x14009ae60
cmp r13d, 0x800000
jae 0x14009b296
test byte [r11 + 0x14], 2
jne 0x14009b2b4
mov edx, 8
mov rcx, r13
call fcn.1400a5c30
test rax, rax
je 0x14009b2d5
mov r14, rax
mov rax, qword [rsp + 0x38]
movsxd r8, dword [rax + 8]
test r8, r8
jne 0x14009b1bf
mov rcx, qword [rax]
call fcn.140137d10
mov r11, qword [rsp + 0x38]
mov qword [r11], r14
mov dword [r11 + 0xc], r13d
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 8]
movsxd rcx, edi
lea r12, [r12 + rcx*8]
test eax, eax
je 0x14009b3a3
add r12, 0xfffffffffffffff8
cmp esi, 2
jl 0x14009b078
movsxd rax, esi
movsxd rcx, ebp
lea rsi, [r15 + rax*8]
lea r15, [r15 + rcx*8]
add r15, 0xfffffffffffffff8
xor r14d, r14d
mov qword [rsp + 0x68], r13
mov r13, qword [rsp + 0x48]
jmp 0x14009b026
lea edx, [rcx - 1]
cmp ecx, 1
mov ecx, edx
jg 0x14009ac15
jmp 0x14009b284
cmp r14d, 0x800000
jae 0x14009b296
test byte [r13 + 0x14], 2
jne 0x14009b2b4
movsxd rcx, r14d
mov edx, 8
call fcn.1400a5c30
test rax, rax
je 0x14009b2d5
mov r12, rax
mov r13, qword [rsp + 0x28]
movsxd r8, dword [r13 + 8]
test r8, r8
jne 0x14009af65
mov rcx, qword [r13]
call fcn.140137d10
mov qword [r13], r12
mov dword [r13 + 0xc], r14d
mov r11, qword [rsp + 0x38]
jmp 0x14009adea
cmp esi, 0x800000
jae 0x14009b296
test byte [rbx + 0x14], 2
jne 0x14009b2b4
movsxd rcx, esi
mov edx, 8
call fcn.1400a5c30
test rax, rax
je 0x14009b2d5
mov rdi, rax
mov rbx, qword [rsp + 0x40]
movsxd r8, dword [rbx + 8]
test r8, r8
jne 0x14009af7a
mov rcx, qword [rbx]
call fcn.140137d10
mov qword [rbx], rdi
mov dword [rbx + 0xc], esi
mov eax, dword [rbx + 8]
mov r8, qword [rsp + 0x30]
jmp 0x14009ad7e
shl r8, 3
mov rdx, qword [r13]
mov rcx, r12
call fcn.1401a4c80
jmp 0x14009aef2
shl r8, 3
mov rdx, qword [rbx]
mov rcx, rdi
call fcn.1401a4c80
jmp 0x14009af4a
sub rax, qword [rsp + 0x58]
sbb rdx, 0
lea r10, [rcx + rbx]
lea r9, [rbp - 1]
cmp r8, rax
sbb rcx, rdx
mov rcx, r10
jb 0x14009b067
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax]
mov rcx, qword [r11]
mov r8, r13
mov r9, rbp
call fcn.140130740
mov r11, qword [rsp + 0x38]
add rsi, 0xfffffffffffffff8
mov rcx, qword [r11]
mov qword [rcx + r13*8], rax
mov rcx, qword [rsp + 0x68]
test ecx, ecx
je 0x14009b012
mov rax, qword [r11]
xor edx, edx
sub r8, r8
jmp 0x14009aff0
mov r8, qword [rsi + rdx*8]
sbb r8, qword [rax + rdx*8]
mov qword [rsi + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x14009aff0
sbb r8, r8
test r8b, 1
jne 0x14009b21f
add r15, 0xfffffffffffffff8
mov qword [r12], rbp
inc r14d
add r12, 0xfffffffffffffff8
cmp r14d, edi
je 0x14009b078
mov rdx, qword [r15]
cmp rdx, rbx
je 0x14009b213
mov rax, qword [r15 - 8]
mov qword [rsp + 0x70], rbx
div qword [rsp + 0x70]
mov rcx, rdx
mov rbp, rax
mul qword [rsp + 0x58]
mov r8, qword [r15 - 0x10]
cmp r8, rax
mov r9, rcx
sbb r9, rdx
jae 0x14009afab
add rcx, rbx
dec rbp
mov r9, rbp
mov rbp, r9
cmp rcx, rbx
jae 0x14009af8b
jmp 0x14009afab
mov rdx, qword [rsp + 0x40]
mov eax, dword [rdx + 8]
test eax, eax
jle 0x14009b3fd
mov r8, qword [rdx]
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
mov r10d, eax
cmp qword [r8 + r10*8 - 8], 0
jne 0x14009b0b1
lea r10d, [rax - 1]
cmp eax, 1
mov eax, r10d
jg 0x14009b095
jmp 0x14009b200
mov dword [rdx + 8], eax
test rcx, rcx
je 0x14009b0ff
mov r8d, dword [rsp + 0x64]
call fcn.14009b450
test eax, eax
je 0x14009b2d5
mov r10, qword [rsp + 0x50]
movsxd rax, dword [r10 + 8]
test rax, rax
mov r9, qword [rsp + 0x28]
je 0x14009b0ff
mov rcx, qword [r10]
xor edx, edx
xor r8d, r8d
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x14009b0e6
test r8, r8
je 0x14009b0ff
mov eax, dword [rsp + 0x60]
mov dword [r10 + 0x10], eax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x14009b3b4
mov rcx, qword [r9]
mov r8, qword [rsp + 0xe0]
mov edx, eax
cmp qword [rcx + rdx*8 - 8], 0
jne 0x14009b12f
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x14009b116
jmp 0x14009b26b
mov dword [r9 + 8], eax
mov esi, 1
cmp byte [r8 + 0x28], 0
jne 0x14009b158
mov rax, qword [r8 + 8]
mov rcx, qword [r8 + 0x10]
lea rdx, [rcx - 1]
mov qword [r8 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r8 + 0x20], rax
mov eax, esi
add rsp, 0x78
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 0x14009b378
mov rax, rdi
shr rax, 0x3d
jne 0x14009b378
lea rdx, [rdi*8]
mov rcx, qword [rbx + 8]
call fcn.140137d60
test rax, rax
je 0x14009b378
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 0x10]
jmp 0x14009aba9
shl r8, 3
mov rdx, qword [rax]
mov rcx, r14
call fcn.1401a4c80
mov rax, qword [rsp + 0x38]
jmp 0x14009ae44
mov dword [rsp + 0x20], 0xd9
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bndiv.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.140282060
jmp 0x14009b158
mov dword [rdx + 8], 0
mov dword [rdx + 0x10], 0
jmp 0x14009b0b4
mov rbp, 0xffffffffffffffff
jmp 0x14009afab
dec rbp
cmp dword [rsp + 0x48], 0
je 0x14009b261
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
xor edx, edx
mov rcx, qword [rsp + 0x48]
sub r8, r8
jmp 0x14009b240
mov r8, qword [rsi + rdx*8]
adc r8, qword [rax + rdx*8]
mov qword [rsi + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x14009b240
sbb r8, r8
test r8b, 1
je 0x14009b261
inc qword [r15]
mov r11, qword [rsp + 0x38]
jmp 0x14009b012
mov dword [r9 + 8], 0
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x10], 0
jmp 0x14009b133
xor esi, esi
jmp 0x14009acc2
je 0x14009b284
mov rax, qword [r13]
jmp 0x14009ac23
mov dword [rsp + 0x20], 0x163
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bn_bn.c
mov ecx, 3
xor edx, edx
mov r8d, 0x66
jmp 0x14009b2d0
mov dword [rsp + 0x20], 0x168
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bn_bn.c
mov ecx, 3
xor edx, edx
mov r8d, 0x6a
call fcn.140282060
xor esi, esi
mov rax, qword [rsp + 0xe0]
cmp byte [rax + 0x28], 0
jne 0x14009b158
mov r8, qword [rsp + 0xe0]
jmp 0x14009b13f
add rdx, 2
mov rcx, rbx
call fcn.140241da0
test eax, eax
je 0x14009b2d5
mov rbx, qword [rsp + 0x40]
movsxd rax, dword [rbx + 8]
mov r8, qword [rsp + 0x30]
mov ebp, dword [r8 + 8]
add ebp, 2
cmp eax, ebp
jge 0x14009ad8d
mov rcx, qword [rbx]
mov qword [rcx + rax*8], 0
inc rax
movsxd rbp, dword [r8 + 8]
add rbp, 2
cmp rax, rbp
jl 0x14009b323
jmp 0x14009ad8d
xor edi, edi
jmp 0x14009ab02
mov r8, qword [rsp + 0x30]
jne 0x14009ad59
jmp 0x14009b363
mov dword [rbx + 8], 0
mov r8, qword [rsp + 0x30]
xor eax, eax
jmp 0x14009ad59
mov qword [rsp + 0x58], 0
jmp 0x14009adb4
mov word [rbx + 0x28], 0x101
jmp 0x14009abb1
xor r9d, r9d
mov r8d, eax
jmp 0x14009ab2b
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x14009acf8
xor eax, eax
jmp 0x14009ad06
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x10], 0
jmp 0x14009ae73
mov r8, qword [rsp + 0xe0]
jne 0x14009b133
jmp 0x14009b273
mov dword [rsp + 0x20], 0xd4
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bndiv.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x6f
jmp 0x14009b1f6
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x14009ad48
jmp 0x14009b357
mov r9, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
jne 0x14009b0b4
jmp 0x14009b207
lea r9d, [r8 - 1]
xor ecx, ecx
mov edi, 0
cmp r8d, 1
mov r8d, r9d
jg 0x14009aaed
jmp 0x14009ab02
lea esi, [r11 - 1]
xor r8d, r8d
mov r9d, 0
cmp r11d, 1
mov r11d, esi
jg 0x14009ab16
jmp 0x14009ab2b