Function at 0x14006bc90
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r15, r9
mov dword [rdx], 0
mov r9d, dword [r9 + 8]
test r9d, r9d
jle 0x14006bcbe
mov rdi, r8
mov r8, qword [r15]
test byte [r8], 1
jne 0x14006bcde
mov dword [rsp + 0x20], 0x79
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x14006bd1f
cmp dword [rdi + 0x10], 0
jne 0x14006bd01
cmp dword [r15 + 0x10], 0
jne 0x14006bd01
mov r13, rdx
mov rbx, rcx
movsxd rdx, dword [rdi + 8]
mov rcx, qword [rdi]
call fcn.140066a10
test eax, eax
js 0x14006bd37
mov dword [rsp + 0x20], 0x7e
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x6b
call fcn.1400a8ab0
mov eax, edi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r14, qword [rsp + 0xb0]
cmp byte [r14 + 0x28], 0
jne 0x14006bdb1
mov rcx, qword [r14 + 0x10]
mov rbp, qword [r14 + 0x20]
cmp rcx, qword [r14 + 0x18]
jne 0x14006bda5
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov esi, 0x20
cmovne rsi, rax
cmp rsi, rcx
jbe 0x14006c484
mov rax, rsi
shr rax, 0x3d
jne 0x14006c484
lea rdx, [rsi*8]
mov rcx, qword [r14 + 8]
call fcn.140090510
test rax, rax
je 0x14006c484
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rsi
mov rcx, qword [r14 + 0x10]
jmp 0x14006bda9
mov rax, qword [r14 + 8]
mov qword [rax + rcx*8], rbp
inc qword [r14 + 0x10]
mov rcx, r14
call fcn.140066cc0
mov rsi, rax
mov rcx, r14
call fcn.140066cc0
mov qword [rsp + 0x30], rax
mov rcx, r14
call fcn.140066cc0
mov r12, rax
mov rcx, r14
call fcn.140066cc0
test rax, rax
je 0x14006c3f8
xor ecx, ecx
mov dword [rax + 0x10], ecx
mov qword [rsp + 0x28], rax
mov dword [rax + 8], ecx
mov edx, 1
mov rcx, r12
call fcn.140064cf0
test eax, eax
je 0x14006c3f8
mov dword [r12 + 0x10], 0
mov rax, qword [r12]
mov qword [rax], 1
mov dword [r12 + 8], 1
mov rbp, qword [rsp + 0x30]
cmp rbp, rdi
je 0x14006be70
movsxd rdx, dword [rdi + 8]
mov rcx, rbp
call fcn.140064cf0
test eax, eax
je 0x14006c3f8
movsxd r8, dword [rdi + 8]
test r8, r8
je 0x14006c490
shl r8, 3
mov rbp, qword [rsp + 0x30]
mov rcx, qword [rbp]
mov rdx, qword [rdi]
call fcn.1400dbd80
mov eax, dword [rdi + 8]
mov dword [rbp + 8], eax
mov eax, dword [rdi + 0x10]
mov dword [rbp + 0x10], eax
cmp rsi, r15
je 0x14006beb3
movsxd rdx, dword [r15 + 8]
mov rcx, rsi
call fcn.140064cf0
test eax, eax
je 0x14006c3f8
movsxd r8, dword [r15 + 8]
test r8, r8
je 0x14006c49c
shl r8, 3
mov rcx, qword [rsi]
mov rdx, qword [r15]
call fcn.1400dbd80
mov eax, dword [r15 + 8]
mov dword [rsi + 8], eax
mov eax, dword [r15 + 0x10]
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x10], 0
mov eax, dword [rbp + 8]
test eax, eax
je 0x14006c292
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rsi
movsxd rcx, eax
cmp rcx, 1
mov edx, 1
cmovbe rcx, rdx
mov rdi, qword [rbp]
lea rdx, [rcx - 1]
mov r8d, ecx
and r8d, 7
cmp rdx, 7
jae 0x14006befa
xor esi, esi
xor edx, edx
jmp 0x14006bf32
and rcx, 0xfffffffffffffff8
xor esi, esi
xor edx, edx
or rdx, qword [rdi + rsi*8]
or rdx, qword [rdi + rsi*8 + 8]
or rdx, qword [rdi + rsi*8 + 0x10]
or rdx, qword [rdi + rsi*8 + 0x18]
or rdx, qword [rdi + rsi*8 + 0x20]
or rdx, qword [rdi + rsi*8 + 0x28]
or rdx, qword [rdi + rsi*8 + 0x30]
or rdx, qword [rdi + rsi*8 + 0x38]
add rsi, 8
cmp rcx, rsi
jne 0x14006bf02
test r8, r8
je 0x14006bf49
lea rcx, [rdi + rsi*8]
xor ebp, ebp
or rdx, qword [rcx + rbp*8]
inc rbp
cmp r8, rbp
jne 0x14006bf3d
test rdx, rdx
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
je 0x14006c292
xor r14d, r14d
mov rbx, qword [rsp + 0x28]
movsxd rcx, eax
mov eax, r14d
shr eax, 6
cmp rax, rcx
jae 0x14006bf83
mov rcx, qword [rdi]
mov rax, qword [rcx + rax*8]
bt rax, r14
jb 0x14006c09d
mov eax, dword [r12 + 8]
test eax, eax
jle 0x14006bfb0
mov rcx, qword [r12]
test byte [rcx], 1
je 0x14006bfb0
mov rcx, r12
mov rdx, r12
mov r8, r15
call fcn.140064ba0
test eax, eax
je 0x14006c2d1
mov eax, dword [r12 + 8]
movsxd rdx, eax
mov rcx, r12
call fcn.140064cf0
test eax, eax
je 0x14006c2d1
movsxd rax, dword [r12 + 8]
test rax, rax
je 0x14006bfe5
mov rcx, qword [r12]
mov r8, rax
dec r8
je 0x14006c049
mov rbp, qword [rcx]
cmp eax, 2
jne 0x14006bff6
xor esi, esi
jmp 0x14006c02b
mov dword [r12 + 8], 0
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x14006c062
mov rdx, r8
and rdx, 0xfffffffffffffffe
mov rdi, rbp
xor esi, esi
mov rbx, qword [rcx + rsi*8 + 8]
mov rbp, qword [rcx + rsi*8 + 0x10]
shrd rdi, rbx, 1
shrd rbx, rbp, 1
mov qword [rcx + rsi*8], rdi
mov qword [rcx + rsi*8 + 8], rbx
add rsi, 2
mov rdi, rbp
cmp rdx, rsi
jne 0x14006c002
test r8b, 1
mov rbx, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
je 0x14006c049
mov rdx, qword [rcx + rsi*8 + 8]
shld rdx, rbp, 0x3f
mov qword [rcx + rsi*8], rdx
shr qword [rcx + rax*8 - 8], 1
mov ecx, dword [r12 + 8]
movsxd rax, ecx
mov edx, eax
sar edx, 0x1f
and edx, eax
mov rsi, qword [rsp + 0x38]
inc r14d
test rax, rax
jle 0x14006c083
mov rbp, qword [r12]
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14006c065
inc eax
mov dword [r12 + 8], eax
jmp 0x14006c095
mov dword [r12 + 8], edx
test ecx, ecx
js 0x14006c095
mov dword [r12 + 0x10], 0
mov eax, dword [rdi + 8]
jmp 0x14006bf64
test r14d, r14d
je 0x14006c0b8
mov rcx, rdi
mov rdx, rdi
mov r8d, r14d
call fcn.1400677e0
test eax, eax
je 0x14006c2d1
xor r14d, r14d
movsxd rax, dword [rsi + 8]
mov ecx, r14d
shr ecx, 6
cmp rcx, rax
jae 0x14006c0db
mov r8, qword [rsi]
mov rcx, qword [r8 + rcx*8]
bt rcx, r14
jb 0x14006c1e7
mov eax, dword [rbx + 8]
test eax, eax
jle 0x14006c103
mov rcx, qword [rbx]
test byte [rcx], 1
je 0x14006c103
mov rcx, rbx
mov rdx, rbx
mov r8, r15
call fcn.140064ba0
test eax, eax
je 0x14006c2d1
mov eax, dword [rbx + 8]
movsxd rdx, eax
mov rcx, rbx
call fcn.140064cf0
test eax, eax
je 0x14006c2d1
movsxd rax, dword [rbx + 8]
test rax, rax
je 0x14006c136
mov rcx, qword [rbx]
mov r8, rax
dec r8
je 0x14006c198
mov rbp, qword [rcx]
cmp eax, 2
jne 0x14006c145
xor edi, edi
jmp 0x14006c17a
mov dword [rbx + 8], 0
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x14006c1af
mov rdx, r8
and rdx, 0xfffffffffffffffe
mov rsi, rbp
xor edi, edi
mov rbx, qword [rcx + rdi*8 + 8]
mov rbp, qword [rcx + rdi*8 + 0x10]
shrd rsi, rbx, 1
shrd rbx, rbp, 1
mov qword [rcx + rdi*8], rsi
mov qword [rcx + rdi*8 + 8], rbx
add rdi, 2
mov rsi, rbp
cmp rdx, rdi
jne 0x14006c151
test r8b, 1
mov rbx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
je 0x14006c198
mov rdx, qword [rcx + rdi*8 + 8]
shld rdx, rbp, 0x3f
mov qword [rcx + rdi*8], rdx
shr qword [rcx + rax*8 - 8], 1
mov ecx, dword [rbx + 8]
movsxd rax, ecx
mov edx, eax
sar edx, 0x1f
and edx, eax
mov rdi, qword [rsp + 0x30]
inc r14d
test rax, rax
jle 0x14006c1d0
mov rbp, qword [rbx]
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x14006c1b2
inc eax
mov dword [rbx + 8], eax
jmp 0x14006c0bb
mov dword [rbx + 8], edx
test ecx, ecx
js 0x14006c0bb
mov dword [rbx + 0x10], 0
jmp 0x14006c0bb
test r14d, r14d
je 0x14006c208
mov rcx, rsi
mov rdx, rsi
mov r8d, r14d
call fcn.1400677e0
test eax, eax
je 0x14006c2d1
mov eax, dword [rsi + 8]
mov r8, qword [rsi]
mov r14, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0x40]
movsxd r9, eax
movsxd rdx, dword [rdi + 8]
mov rcx, qword [rdi]
call fcn.140066a10
test eax, eax
js 0x14006c252
mov rcx, r12
mov rdx, r12
mov r8, qword [rsp + 0x28]
call fcn.140064ba0
xor edi, edi
test eax, eax
je 0x14006c3fa
mov rbp, qword [rsp + 0x30]
mov rcx, rbp
mov rdx, rbp
mov r8, rsi
jmp 0x14006c27a
mov rcx, qword [rsp + 0x28]
mov rdx, rcx
mov r8, r12
call fcn.140064ba0
xor edi, edi
test eax, eax
je 0x14006c3fa
mov rcx, rsi
mov rdx, rsi
mov rbp, qword [rsp + 0x30]
mov r8, rbp
call fcn.140064b40
test eax, eax
je 0x14006c3fa
mov eax, dword [rbp + 8]
test eax, eax
jne 0x14006becf
cmp dword [rsi + 0x10], 0
jne 0x14006c336
mov ebp, dword [rsi + 8]
test rbp, rbp
je 0x14006c336
mov rdx, qword [rsi]
mov rax, qword [rdx]
xor rax, 1
cmp ebp, 2
jl 0x14006c331
lea rcx, [rbp - 1]
add rbp, 0xfffffffffffffffe
mov edi, ecx
and edi, 7
cmp rbp, 7
jae 0x14006c2e0
mov ebp, 1
jmp 0x14006c31a
xor edi, edi
mov r14, qword [rsp + 0xb0]
jmp 0x14006c3fa
and rcx, 0xfffffffffffffff8
xor ebp, ebp
or rax, qword [rdx + rbp*8 + 8]
or rax, qword [rdx + rbp*8 + 0x10]
or rax, qword [rdx + rbp*8 + 0x18]
or rax, qword [rdx + rbp*8 + 0x20]
or rax, qword [rdx + rbp*8 + 0x28]
or rax, qword [rdx + rbp*8 + 0x30]
or rax, qword [rdx + rbp*8 + 0x38]
or rax, qword [rdx + rbp*8 + 0x40]
add rbp, 8
cmp rcx, rbp
jne 0x14006c2e6
inc rbp
test rdi, rdi
je 0x14006c331
lea rcx, [rdx + rbp*8]
xor edx, edx
or rax, qword [rcx + rdx*8]
inc rdx
cmp rdi, rdx
jne 0x14006c325
test rax, rax
je 0x14006c366
mov dword [r13], 1
mov dword [rsp + 0x20], 0xf8
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x70
call fcn.1400a8ab0
jmp 0x14006c3fa
mov rsi, qword [rsp + 0x28]
mov rcx, rsi
mov rdx, r15
mov r8, rsi
call fcn.140065170
test eax, eax
je 0x14006c3f8
mov rbp, r14
cmp dword [rsi + 0x10], 0
jne 0x14006c3a4
movsxd r9, dword [r15 + 8]
mov r8, qword [r15]
movsxd rdi, dword [rsi + 8]
mov rcx, qword [rsi]
mov rdx, rdi
call fcn.140066a10
test eax, eax
js 0x14006c428
mov qword [rsp + 0x20], rbp
xor edi, edi
xor ecx, ecx
mov rdx, rbx
mov r8, rsi
mov r9, r15
call fcn.140066e50
test eax, eax
je 0x14006c423
cmp dword [rbx + 0x10], 0
mov r14, rbp
je 0x14006c47a
cmp dword [r15 + 0x10], 0
lea rax, [0x140064ab0]
lea rbp, [fcn.140065170]
cmove rbp, rax
mov rcx, rbx
mov rdx, rbx
mov r8, r15
call rbp
test eax, eax
jne 0x14006c47a
jmp 0x14006c3fa
xor edi, edi
cmp byte [r14 + 0x28], 0
jne 0x14006bd24
mov rax, qword [r14 + 8]
mov rcx, qword [r14 + 0x10]
lea rdx, [rcx - 1]
mov qword [r14 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r14 + 0x20], rax
jmp 0x14006bd24
mov r14, rbp
jmp 0x14006c3fa
cmp rsi, rbx
mov r14, rbp
je 0x14006c47a
mov rcx, rbx
mov rdx, rdi
call fcn.140064cf0
mov edi, 0
test eax, eax
je 0x14006c3fa
mov rax, qword [rsp + 0x28]
movsxd r8, dword [rax + 8]
test r8, r8
je 0x14006c4a3
shl r8, 3
mov rcx, qword [rbx]
mov rsi, qword [rsp + 0x28]
mov rdx, qword [rsi]
call fcn.1400dbd80
mov eax, dword [rsi + 8]
mov dword [rbx + 8], eax
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x10]
mov dword [rbx + 0x10], eax
mov r14, rbp
mov edi, 1
jmp 0x14006c3fa
mov word [r14 + 0x28], 0x101
jmp 0x14006bdb1
xor eax, eax
mov rbp, qword [rsp + 0x30]
jmp 0x14006be67
xor eax, eax
jmp 0x14006bea9
xor eax, eax
jmp 0x14006c469