Function at 0x1400c3860
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 rbp, r8
mov rbx, rcx
mov ecx, dword [r8 + 8]
test ecx, ecx
jle 0x1400c3f72
mov rax, qword [rbp]
mov r8d, ecx
mov ecx, r8d
mov dil, 1
cmp qword [rax + rcx*8 - 8], 0
je 0x1400c4042
mov ecx, r8d
movsxd rax, dword [r13 + 8]
test rax, rax
jle 0x1400c3fb3
mov r10, qword [r13]
mov r11d, eax
mov r8d, r11d
mov r9b, 1
cmp qword [r10 + r8*8 - 8], 0
je 0x1400c405f
mov r8d, r11d
test dil, dil
je 0x1400c38e1
mov r10, qword [rbp]
mov ecx, ecx
cmp qword [r10 + rcx*8 - 8], 0
je 0x1400c3ff7
test r9b, r9b
je 0x1400c38f9
mov rcx, qword [r13]
mov r8d, r8d
cmp qword [rcx + r8*8 - 8], 0
je 0x1400c3ff7
test eax, eax
je 0x1400c3e4e
mov r14, 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 0x1400c3913
test r8, r8
je 0x1400c3e4e
mov qword [rsp + 0x50], rdx
cmp byte [r14 + 0x28], 0
jne 0x1400c3952
mov rcx, qword [r14 + 0x10]
mov rsi, qword [r14 + 0x20]
cmp rcx, qword [r14 + 0x18]
je 0x1400c3dfa
mov rax, qword [r14 + 8]
mov qword [rax + rcx*8], rsi
inc qword [r14 + 0x10]
mov rcx, r14
call fcn.1400c3750
mov qword [rsp + 0x40], rax
mov rcx, r14
call fcn.1400c3750
mov qword [rsp + 0x48], rax
mov rcx, r14
call fcn.1400c3750
mov rsi, rax
test rbx, rbx
jne 0x1400c3987
mov rcx, r14
call fcn.1400c3750
mov rbx, rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rsi
test rsi, rsi
je 0x1400c3f51
cmp qword [rsp + 0x38], 0
je 0x1400c3f51
mov ecx, dword [r13 + 8]
test ecx, ecx
jle 0x1400c3ef4
mov rax, qword [r13]
mov edx, ecx
cmp qword [rax + rdx*8 - 8], 0
je 0x1400c3c09
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
setne cl
cmove r8, rdx
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
setae dl
cmovb r9, r8
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
setae r8b
cmovb r10, r9
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor edi, edi
cmp r9, 4
setae dil
cmovb r10, r9
add edi, edi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea esi, [rax + r11*4]
or esi, edi
cmp r10, 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.14016e250
test eax, eax
je 0x1400c3f51
mov r8, qword [rsp + 0x30]
mov eax, dword [r8 + 8]
test eax, eax
jle 0x1400c3aa7
mov rcx, qword [r8]
mov edx, eax
cmp qword [rcx + rdx*8 - 8], 0
je 0x1400c3fbe
mov dword [r8 + 8], eax
mov dword [r8 + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov rcx, qword [rsp + 0x48]
mov rdx, rbp
mov dword [rsp + 0x68], r8d
call fcn.14016e250
test eax, eax
je 0x1400c3f51
mov rcx, qword [rsp + 0x48]
mov eax, dword [rcx + 8]
test eax, eax
jle 0x1400c3f79
mov r8, qword [rcx]
mov edx, eax
cmp qword [r8 + rdx*8 - 8], 0
mov rdx, qword [rsp + 0x30]
je 0x1400c401a
mov dword [rcx + 8], eax
mov dword [rcx + 0x10], 0
movsxd rdx, dword [rdx + 8]
lea r8d, [rdx + 1]
cmp eax, r8d
jle 0x1400c3f03
inc eax
movsxd rdx, eax
call fcn.1400c33e0
test eax, eax
je 0x1400c3f51
mov rdx, qword [rsp + 0x48]
mov rax, qword [rdx]
movsxd rcx, dword [rdx + 8]
mov qword [rax + rcx*8], 0
mov edi, dword [rdx + 8]
inc edi
mov dword [rdx + 8], edi
mov rax, qword [rsp + 0x30]
movsxd rbx, dword [rax + 8]
mov r14d, edi
sub r14d, ebx
mov rax, qword [rax]
cmp rbx, 1
je 0x1400c3fa0
mov rcx, qword [rax + rbx*8 - 0x10]
mov qword [rsp + 0x58], rcx
mov r15, qword [rdx]
mov rsi, qword [rax + rbx*8 - 8]
mov ecx, dword [rbp + 0x10]
mov eax, dword [r13 + 0x10]
mov dword [rsp + 0x64], ecx
xor eax, ecx
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 0x10], eax
lea eax, [r14 + 1]
movsxd rdx, eax
call fcn.1400c33e0
test eax, eax
je 0x1400c3f51
lea ecx, [r14 - 1]
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], ecx
mov dword [rsp + 0x6c], ecx
movsxd r12, ecx
shl r12, 3
add r12, qword [rax]
mov r13, rbx
inc r13
mov rcx, qword [rsp + 0x40]
mov rdx, r13
call fcn.1400c33e0
test eax, eax
je 0x1400c3f51
mov rax, qword [rsp + 0x38]
cmp dword [rax + 8], 0
mov r11, qword [rsp + 0x40]
je 0x1400c3fd3
add r12, 0xfffffffffffffff8
cmp r14d, 2
jl 0x1400c3d07
movsxd rax, r14d
movsxd rcx, edi
lea rdi, [r15 + rax*8]
lea r14, [r15 + rcx*8]
add r14, 0xfffffffffffffff8
xor r15d, r15d
jmp 0x1400c3c98
lea edx, [rcx - 1]
cmp ecx, 1
mov ecx, edx
jg 0x1400c39b6
jmp 0x1400c3f99
mov rax, qword [rsp + 0x30]
mov rdx, qword [rax]
mov rcx, qword [r11]
mov r8, rbx
mov r9, rbp
call fcn.14016e060
mov r11, qword [rsp + 0x40]
add rdi, 0xfffffffffffffff8
mov rcx, qword [r11]
mov qword [rcx + rbx*8], rax
test r13d, r13d
je 0x1400c3c82
mov rax, qword [r11]
xor edx, edx
mov rcx, r13
sub r8, r8
jmp 0x1400c3c60
mov r8, qword [rdi + rdx*8]
sbb r8, qword [rax + rdx*8]
mov qword [rdi + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x1400c3c60
sbb r8, r8
test r8b, 1
jne 0x1400c3e95
add r14, 0xfffffffffffffff8
mov qword [r12], rbp
inc r15d
add r12, 0xfffffffffffffff8
cmp r15d, dword [rsp + 0x6c]
je 0x1400c3d07
mov rdx, qword [r14]
cmp rdx, rsi
je 0x1400c3e89
mov rax, qword [r14 - 8]
mov qword [rsp + 0x70], rsi
div qword [rsp + 0x70]
mov rcx, rdx
mov rbp, rax
mul qword [rsp + 0x58]
mov r8, qword [r14 - 0x10]
cmp r8, rax
mov r9, rcx
sbb r9, rdx
jae 0x1400c3c1c
add rcx, rsi
dec rbp
mov r9, rbp
mov rbp, r9
cmp rcx, rsi
jb 0x1400c3c1c
sub rax, qword [rsp + 0x58]
sbb rdx, 0
lea r10, [rcx + rsi]
lea r9, [rbp - 1]
cmp r8, rax
sbb rcx, rdx
mov rcx, r10
jae 0x1400c3c1c
jmp 0x1400c3cd9
mov rdx, qword [rsp + 0x48]
mov eax, dword [rdx + 8]
test eax, eax
jle 0x1400c402d
mov r8, qword [rdx]
mov r9, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov r10d, eax
cmp qword [r8 + r10*8 - 8], 0
jne 0x1400c3d40
lea r10d, [rax - 1]
cmp eax, 1
mov eax, r10d
jg 0x1400c3d24
jmp 0x1400c3e76
mov dword [rdx + 8], eax
test rcx, rcx
je 0x1400c3d8e
mov r8d, dword [rsp + 0x68]
call fcn.1400c4080
test eax, eax
je 0x1400c3f51
mov r10, qword [rsp + 0x50]
movsxd rax, dword [r10 + 8]
test rax, rax
mov r9, qword [rsp + 0x38]
je 0x1400c3d8e
mov rcx, qword [r10]
xor edx, edx
xor r8d, r8d
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x1400c3d75
test r8, r8
je 0x1400c3d8e
mov eax, dword [rsp + 0x64]
mov dword [r10 + 0x10], eax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x1400c3fe4
mov rcx, qword [r9]
mov r8, qword [rsp + 0xe0]
mov edx, eax
cmp qword [rcx + rdx*8 - 8], 0
jne 0x1400c3dbe
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x1400c3da5
jmp 0x1400c3edb
mov dword [r9 + 8], eax
mov esi, 1
cmp byte [r8 + 0x28], 0
jne 0x1400c3de7
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 0x1400c3fa7
mov rax, rdi
shr rax, 0x3d
jne 0x1400c3fa7
lea rdx, [rdi*8]
mov rcx, qword [r14 + 8]
call fcn.1401742d0
test rax, rax
je 0x1400c3fa7
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rdi
mov rcx, qword [r14 + 0x10]
jmp 0x1400c394a
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.14028f7e0
jmp 0x1400c3de7
mov dword [rdx + 8], 0
mov dword [rdx + 0x10], 0
jmp 0x1400c3d43
mov rbp, 0xffffffffffffffff
jmp 0x1400c3c1c
dec rbp
test ebx, ebx
je 0x1400c3ed1
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
xor edx, edx
mov rcx, rbx
sub r8, r8
jmp 0x1400c3eb0
mov r8, qword [rdi + rdx*8]
adc r8, qword [rax + rdx*8]
mov qword [rdi + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x1400c3eb0
sbb r8, r8
test r8b, 1
je 0x1400c3ed1
inc qword [r14]
mov r11, qword [rsp + 0x40]
jmp 0x1400c3c82
mov dword [r9 + 8], 0
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x10], 0
jmp 0x1400c3dc2
je 0x1400c3f99
mov rax, qword [r13]
jmp 0x1400c39c4
add rdx, 2
call fcn.1400c33e0
test eax, eax
je 0x1400c3f51
mov rdx, qword [rsp + 0x48]
movsxd rax, dword [rdx + 8]
mov rcx, qword [rsp + 0x30]
mov edi, dword [rcx + 8]
add edi, 2
cmp eax, edi
jge 0x1400c3b3e
mov rcx, qword [rdx]
mov qword [rcx + rax*8], 0
inc rax
mov rcx, qword [rsp + 0x30]
movsxd rdi, dword [rcx + 8]
add rdi, 2
cmp rax, rdi
jl 0x1400c3f2c
jmp 0x1400c3b3e
xor esi, esi
mov rax, qword [rsp + 0xe0]
cmp byte [rax + 0x28], 0
jne 0x1400c3de7
mov r8, qword [rsp + 0xe0]
jmp 0x1400c3dce
xor edi, edi
jmp 0x1400c38a1
mov rdx, qword [rsp + 0x30]
jne 0x1400c3afb
jmp 0x1400c3f92
mov dword [rcx + 8], 0
mov rdx, qword [rsp + 0x30]
xor eax, eax
jmp 0x1400c3afb
xor esi, esi
jmp 0x1400c3a64
xor ecx, ecx
jmp 0x1400c3b62
mov word [r14 + 0x28], 0x101
jmp 0x1400c3952
xor r9d, r9d
mov r8d, eax
jmp 0x1400c38ca
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x1400c3a95
xor eax, eax
jmp 0x1400c3aa3
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x10], 0
jmp 0x1400c3be5
mov r8, qword [rsp + 0xe0]
jne 0x1400c3dc2
jmp 0x1400c3ee3
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 0x1400c3e6c
lea edx, [rax - 1]
cmp eax, 1
mov eax, edx
jg 0x1400c3ae5
jmp 0x1400c3f86
mov r9, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
jne 0x1400c3d43
jmp 0x1400c3e7d
lea r9d, [r8 - 1]
xor ecx, ecx
mov edi, 0
cmp r8d, 1
mov r8d, r9d
jg 0x1400c388c
jmp 0x1400c38a1
lea esi, [r11 - 1]
xor r8d, r8d
mov r9d, 0
cmp r11d, 1
mov r11d, esi
jg 0x1400c38b5
jmp 0x1400c38ca