Function at 0x14006e110
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov eax, dword [r8 + 8]
mov r12d, dword [r9 + 8]
cmp eax, r12d
cmovge r12d, eax
test r12d, r12d
je 0x14006e1be
mov rbp, r9
mov r13, r8
mov qword [rsp + 0x98], rdx
mov r15, qword [rsp + 0x110]
cmp byte [r15 + 0x28], 0
jne 0x14006e1df
mov rcx, qword [r15 + 0x10]
mov rdi, qword [r15 + 0x20]
cmp rcx, qword [r15 + 0x18]
jne 0x14006e1d3
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov ebx, 0x20
cmovne rbx, rax
cmp rbx, rcx
jbe 0x14006e86c
mov rax, rbx
shr rax, 0x3d
jne 0x14006e86c
lea rdx, [rbx*8]
mov rcx, qword [r15 + 8]
call fcn.140090510
test rax, rax
je 0x14006e86c
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
jmp 0x14006e1d7
xor eax, eax
mov dword [rdx], eax
mov dword [rsi + 0x10], eax
mov dword [rsi + 8], eax
mov r14d, 1
jmp 0x14006e2d8
mov rax, qword [r15 + 8]
mov qword [rax + rcx*8], rdi
inc qword [r15 + 0x10]
mov qword [rsp + 0xa0], rsi
mov rcx, r15
call fcn.140066cc0
mov rdi, rax
mov rcx, r15
call fcn.140066cc0
mov rsi, rax
mov rcx, r15
call fcn.140066cc0
xor r14d, r14d
test rdi, rdi
je 0x14006e2b8
test rsi, rsi
je 0x14006e2b8
test rax, rax
je 0x14006e2b8
mov qword [rsp + 0x50], rax
cmp rdi, r13
je 0x14006e268
movsxd rdx, dword [r13 + 8]
mov rcx, rdi
call fcn.140064cf0
test eax, eax
je 0x14006e2b8
movsxd r8, dword [r13 + 8]
test r8, r8
je 0x14006e878
shl r8, 3
mov rcx, qword [rdi]
mov rdx, qword [r13]
call fcn.1400dbd80
mov eax, dword [r13 + 8]
mov dword [rdi + 8], eax
mov eax, dword [r13 + 0x10]
mov dword [rdi + 0x10], eax
cmp rsi, rbp
je 0x14006e2a6
movsxd rdx, dword [rbp + 8]
mov rcx, rsi
call fcn.140064cf0
test eax, eax
je 0x14006e2b8
movsxd r8, dword [rbp + 8]
test r8, r8
je 0x14006e87f
shl r8, 3
mov rcx, qword [rsi]
mov rdx, qword [rbp]
call fcn.1400dbd80
mov eax, dword [rbp + 8]
mov dword [rsi + 8], eax
mov eax, dword [rbp + 0x10]
mov dword [rsi + 0x10], eax
movsxd rbx, r12d
mov rcx, rdi
mov rdx, rbx
call fcn.1400665f0
test eax, eax
jne 0x14006e2ef
cmp byte [r15 + 0x28], 0
jne 0x14006e2d8
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
lea rdx, [rcx - 1]
mov qword [r15 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r15 + 0x20], rax
mov eax, r14d
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
mov rdx, rbx
call fcn.1400665f0
test eax, eax
je 0x14006e2b8
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x40], rbx
mov rdx, rbx
call fcn.1400665f0
test eax, eax
je 0x14006e2b8
mov eax, dword [r13 + 8]
shl eax, 6
mov ecx, dword [rbp + 8]
shl ecx, 6
add ecx, eax
jae 0x14006e34e
mov dword [rsp + 0x20], 0x4e
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd_extra.c
xor r14d, r14d
mov ecx, 3
xor edx, edx
mov r8d, 0x66
call fcn.1400a8ab0
jmp 0x14006e2b8
test ecx, ecx
je 0x14006e7b5
mov r13, qword [rsp + 0x40]
lea rax, [r13 - 1]
cmp r13, 1
mov ebp, 1
cmova rbp, r13
lea r9, [rbp - 1]
lea r8, [r13 - 2]
mov rdx, rbp
mov qword [rsp + 0x70], rbp
and rbp, 0xfffffffffffffffe
mov qword [rsp + 0x78], rbp
mov r11, r13
and r11, 0xfffffffffffffffe
mov qword [rsp + 0x30], rax
and rax, 0xfffffffffffffffe
mov qword [rsp + 0x80], rax
mov rax, r8
mov qword [rsp + 0x60], r8
and r8, 0xfffffffffffffffe
neg r8
mov qword [rsp + 0x88], r8
xor r8d, r8d
xor eax, eax
mov r14, qword [rsp + 0x50]
mov dword [rsp + 0x58], ecx
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x48], r11
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x90], r8
mov r11, qword [rdi]
mov rcx, qword [r11]
and ecx, 1
neg rcx
mov rdx, qword [rsi]
mov r10, qword [rdx]
and r10d, 1
neg r10
and r10, rcx
mov rbp, qword [r14]
xor eax, eax
mov rcx, r13
sub rbx, rbx
jmp 0x14006e410
mov rbx, qword [r11 + rax*8]
sbb rbx, qword [rdx + rax*8]
mov qword [rbp + rax*8], rbx
lea rax, [rax + 1]
dec rcx
jne 0x14006e410
sbb rbx, rbx
and ebx, 1
mov qword [rsp + 0x38], rbx
lea r11, [rbx - 1]
and r11, r10
mov r8, r11
not r11
mov rbp, qword [rdi]
mov r13, qword [r14]
mov eax, 0
test r9, r9
je 0x14006e48b
xor eax, eax
mov r14, qword [r13 + rax*8]
and r14, r8
mov r9, qword [rbp + rax*8]
and r9, r11
or r9, r14
mov qword [rbp + rax*8], r9
mov rcx, qword [r13 + rax*8 + 8]
and rcx, r8
mov rdx, qword [rbp + rax*8 + 8]
and rdx, r11
or rdx, rcx
mov qword [rbp + rax*8 + 8], rdx
add rax, 2
cmp qword [rsp + 0x78], rax
jne 0x14006e450
mov r14, qword [rsp + 0x38]
neg r14
test byte [rsp + 0x70], 1
je 0x14006e4ac
and r8, qword [r13 + rax*8]
and r11, qword [rbp + rax*8]
or r11, r8
mov qword [rbp + rax*8], r11
mov r8, qword [rdi]
mov rbx, qword [rsp + 0x50]
mov r9, qword [rbx]
mov rbp, qword [rsi]
xor eax, eax
mov r13, qword [rsp + 0x40]
mov rcx, r13
sub rdx, rdx
jmp 0x14006e4d0
mov rdx, qword [rbp + rax*8]
sbb rdx, qword [r8 + rax*8]
mov qword [r9 + rax*8], rdx
lea rax, [rax + 1]
dec rcx
jne 0x14006e4d0
sbb rdx, rdx
and r10, r14
mov r8, r10
not r10
mov rdx, qword [rsi]
mov r14, rbx
mov rbp, qword [rbx]
mov eax, 0
cmp qword [rsp + 0x68], 0
mov r9, qword [rsp + 0x78]
je 0x14006e546
xor eax, eax
mov rcx, qword [rbp + rax*8]
and rcx, r8
mov rbx, qword [rdx + rax*8]
and rbx, r10
or rbx, rcx
mov qword [rdx + rax*8], rbx
mov rcx, qword [rbp + rax*8 + 8]
and rcx, r8
mov rbx, qword [rdx + rax*8 + 8]
and rbx, r10
or rbx, rcx
mov qword [rdx + rax*8 + 8], rbx
add rax, 2
cmp r9, rax
jne 0x14006e50f
test byte [rsp + 0x70], 1
je 0x14006e55d
and r8, qword [rbp + rax*8]
and r10, qword [rdx + rax*8]
or r10, r8
mov qword [rdx + rax*8], r10
mov rdx, qword [rsi]
mov rax, qword [rdi]
mov rcx, qword [rax]
mov r10d, ecx
and r10d, 1
mov r9, qword [rdx]
lea rbx, [r10 - 1]
shr rcx, 1
mov rdx, r14
mov r11, qword [r14]
mov rbp, qword [rsp + 0x30]
test rbp, rbp
mov qword [rsp + 0x38], rbx
je 0x14006e62e
mov rdx, qword [rax + 8]
shl rdx, 0x3f
or rdx, rcx
mov qword [r11], rdx
cmp rbp, 1
mov r8, qword [rsp + 0x88]
je 0x14006e61f
lea rdx, [rax + 8]
mov ecx, 1
cmp r12d, 3
je 0x14006e602
mov ecx, 1
mov rbp, qword [rdx]
mov rbx, qword [rdx + 8]
shld rbx, rbp, 0x3f
mov qword [r11 + rcx*8], rbx
mov rbp, qword [rdx + 8]
mov rbx, qword [rdx + 0x10]
add rdx, 0x10
shld rbx, rbp, 0x3f
mov qword [r11 + rcx*8 + 8], rbx
lea rbp, [r8 + rcx]
add rbp, 2
add rcx, 2
cmp rbp, 1
jne 0x14006e5c0
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
test byte [rsp + 0x60], 1
je 0x14006e61f
mov rdx, qword [rdx]
mov rbp, qword [rax + rcx*8 + 8]
shld rbp, rdx, 0x3f
mov qword [r11 + rcx*8], rbp
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rax + r13*8 - 8]
shr rcx, 1
mov qword [r11 + r13*8 - 8], rcx
jmp 0x14006e631
mov qword [r11], rcx
and r9d, 1
mov rcx, rbx
neg r10
xor edx, edx
test rbp, rbp
je 0x14006e67d
mov r8, qword [rsp + 0x48]
mov rbp, qword [r11 + rdx*8]
and rbp, rcx
mov rbx, qword [rax + rdx*8]
and rbx, r10
or rbx, rbp
mov qword [rax + rdx*8], rbx
mov rbp, qword [r11 + rdx*8 + 8]
and rbp, rcx
mov rbx, qword [rax + rdx*8 + 8]
and rbx, r10
or rbx, rbp
mov qword [rax + rdx*8 + 8], rbx
add rdx, 2
cmp r8, rdx
jne 0x14006e647
test r13b, 1
je 0x14006e692
and rcx, qword [r11 + rdx*8]
and r10, qword [rax + rdx*8]
or r10, rcx
mov qword [rax + rdx*8], r10
lea r10, [r9 - 1]
mov rax, r14
mov r8, qword [r14]
mov rax, qword [rsi]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14006e6f1
cmp qword [rsp + 0x60], 0
mov r11, qword [rsp + 0x48]
je 0x14006e701
xor edx, edx
mov rcx, qword [rsp + 0x80]
mov rbp, qword [rax + rdx*8]
mov rbx, qword [rax + rdx*8 + 8]
shld rbx, rbp, 0x3f
mov qword [r8 + rdx*8], rbx
mov rbp, qword [rax + rdx*8 + 8]
mov rbx, qword [rax + rdx*8 + 0x10]
shld rbx, rbp, 0x3f
mov qword [r8 + rdx*8 + 8], rbx
add rdx, 2
cmp rcx, rdx
jne 0x14006e6c0
jmp 0x14006e703
mov rdx, qword [rax]
shr rdx, 1
mov qword [r8], rdx
mov r11, qword [rsp + 0x48]
jmp 0x14006e731
xor edx, edx
mov rcx, qword [rsp + 0x30]
test cl, 1
je 0x14006e724
mov rbp, qword [rax + rdx*8]
mov rbx, qword [rax + rdx*8 + 8]
shld rbx, rbp, 0x3f
mov rcx, qword [rsp + 0x30]
mov qword [r8 + rdx*8], rbx
mov rdx, qword [rax + r13*8 - 8]
shr rdx, 1
mov qword [r8 + r13*8 - 8], rdx
mov rdx, r10
neg r9
xor ebp, ebp
test rcx, rcx
je 0x14006e774
mov rbx, qword [r8 + rbp*8]
and rbx, rdx
mov rcx, qword [rax + rbp*8]
and rcx, r9
or rcx, rbx
mov qword [rax + rbp*8], rcx
mov rcx, qword [r8 + rbp*8 + 8]
and rcx, rdx
mov rbx, qword [rax + rbp*8 + 8]
and rbx, r9
or rbx, rcx
mov qword [rax + rbp*8 + 8], rbx
add rbp, 2
cmp r11, rbp
jne 0x14006e73e
mov rcx, qword [rsp + 0x38]
and ecx, r10d
test r13b, 1
je 0x14006e791
and rdx, qword [r8 + rbp*8]
and r9, qword [rax + rbp*8]
or r9, rdx
mov qword [rax + rbp*8], r9
mov r8, qword [rsp + 0x90]
sub r8d, ecx
mov eax, dword [rsp + 0x5c]
inc eax
mov ecx, dword [rsp + 0x58]
cmp eax, ecx
mov r9, qword [rsp + 0x68]
jne 0x14006e3cc
jmp 0x14006e7bd
xor r8d, r8d
mov r13, qword [rsp + 0x40]
cmp r13, 1
mov eax, 1
cmova rax, r13
cmp r12d, 2
jae 0x14006e7d4
xor ecx, ecx
jmp 0x14006e805
mov rdx, rax
and rdx, 0xfffffffffffffffe
xor ecx, ecx
mov rbp, qword [rdi]
mov rbp, qword [rbp + rcx*8]
mov rbx, qword [rsi]
or qword [rbx + rcx*8], rbp
mov rbp, qword [rdi]
mov rbp, qword [rbp + rcx*8 + 8]
mov rbx, qword [rsi]
or qword [rbx + rcx*8 + 8], rbp
add rcx, 2
cmp rdx, rcx
jne 0x14006e7dd
test al, 1
je 0x14006e817
mov rax, qword [rdi]
mov rax, qword [rax + rcx*8]
mov rdx, qword [rsi]
or qword [rdx + rcx*8], rax
mov rax, qword [rsp + 0x98]
mov dword [rax], r8d
mov rdi, qword [rsi]
mov rsi, qword [rsp + 0xa0]
mov rcx, rsi
mov rdx, r13
call fcn.140064cf0
test eax, eax
je 0x14006e864
shl r13, 3
mov rcx, qword [rsi]
mov rdx, rdi
mov r8, r13
call fcn.1400dbd80
mov dword [rsi + 8], r12d
mov dword [rsi + 0x10], 0
mov r14d, 1
jmp 0x14006e2b8
xor r14d, r14d
jmp 0x14006e2b8
mov word [r15 + 0x28], 0x101
jmp 0x14006e1df
xor eax, eax
jmp 0x14006e25e
xor eax, eax
jmp 0x14006e29d