Function at 0x1400a4800
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rbx, r9
mov dword [rdx], 0
mov r9d, dword [r9 + 8]
test r9d, r9d
jle 0x1400a482e
mov rbp, r8
mov r8, qword [rbx]
test byte [r8], 1
jne 0x1400a4864
mov dword [rsp + 0x20], 0x79
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, 0x68
call fcn.14009b3a0
mov eax, ebp
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp dword [rbp + 0x10], 0
je 0x1400a488a
mov dword [rsp + 0x20], 0x7e
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, 0x6b
jmp 0x1400a484c
cmp dword [rbx + 0x10], 0
jne 0x1400a486a
mov r12, rdx
mov rsi, rcx
movsxd rdx, dword [rbp + 8]
mov rcx, qword [rbp]
call fcn.14009f180
test eax, eax
jns 0x1400a486a
mov qword [rsp + 0x60], rsi
mov r13, qword [rsp + 0xd0]
cmp byte [r13 + 0x28], 0
jne 0x1400a48d9
mov rcx, qword [r13 + 0x10]
mov r14, qword [r13 + 0x20]
cmp rcx, qword [r13 + 0x18]
je 0x1400a4a14
mov rax, qword [r13 + 8]
mov qword [rax + rcx*8], r14
inc qword [r13 + 0x10]
mov rcx, r13
call fcn.14009f720
mov qword [rsp + 0x30], rax
mov rcx, r13
call fcn.14009f720
mov rdi, rax
mov rcx, r13
call fcn.14009f720
mov r14, rax
mov rcx, r13
call fcn.14009f720
test rax, rax
je 0x1400a4e79
mov r15, rax
xor eax, eax
mov dword [r15 + 0x10], eax
mov dword [r15 + 8], eax
mov edx, 1
mov rcx, r14
call fcn.14009d600
test eax, eax
je 0x1400a4e79
mov dword [r14 + 0x10], 0
mov rax, qword [r14]
mov qword [rax], 1
mov dword [r14 + 8], 1
cmp rdi, rbp
je 0x1400a498b
movsxd rdx, dword [rbp + 8]
mov rcx, rdi
call fcn.14009d600
test eax, eax
je 0x1400a4e79
movsxd r8, dword [rbp + 8]
test r8, r8
je 0x1400a4f3b
shl r8, 3
mov rcx, qword [rdi]
mov rdx, qword [rbp]
call fcn.1400f23d0
mov eax, dword [rbp + 8]
mov dword [rdi + 8], eax
mov eax, dword [rbp + 0x10]
mov dword [rdi + 0x10], eax
mov rcx, qword [rsp + 0x30]
cmp rcx, rbx
je 0x1400a49d6
movsxd rdx, dword [rbx + 8]
call fcn.14009d600
test eax, eax
je 0x1400a4e79
movsxd r8, dword [rbx + 8]
test r8, r8
je 0x1400a4f42
shl r8, 3
mov rsi, qword [rsp + 0x30]
mov rcx, qword [rsi]
mov rdx, qword [rbx]
call fcn.1400f23d0
mov rcx, rsi
mov eax, dword [rbx + 8]
mov dword [rcx + 8], eax
mov eax, dword [rbx + 0x10]
mov dword [rcx + 0x10], eax
mov qword [rsp + 0x48], r14
mov dword [rcx + 0x10], 0
movsxd r8, dword [rdi + 8]
test r8, r8
je 0x1400a4e31
mov qword [rsp + 0x38], rdi
mov rdx, qword [rdi]
lea rax, [r8 - 1]
mov esi, r8d
and esi, 7
mov ebp, 7
cmp rax, rbp
jae 0x1400a4a68
xor eax, eax
xor ebp, ebp
jmp 0x1400a4aa3
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x1400a4f4e
mov rax, rdi
shr rax, 0x3d
jne 0x1400a4f4e
lea rdx, [rdi*8]
mov rcx, qword [r13 + 8]
call fcn.1400c6860
test rax, rax
je 0x1400a4f4e
mov qword [r13 + 8], rax
mov qword [r13 + 0x18], rdi
mov rcx, qword [r13 + 0x10]
jmp 0x1400a48d1
mov rdi, r8
and rdi, 0xfffffffffffffff8
xor eax, eax
xor ebp, ebp
or rbp, qword [rdx + rax*8]
or rbp, qword [rdx + rax*8 + 8]
or rbp, qword [rdx + rax*8 + 0x10]
or rbp, qword [rdx + rax*8 + 0x18]
or rbp, qword [rdx + rax*8 + 0x20]
or rbp, qword [rdx + rax*8 + 0x28]
or rbp, qword [rdx + rax*8 + 0x30]
or rbp, qword [rdx + rax*8 + 0x38]
add rax, 8
cmp rdi, rax
jne 0x1400a4a73
test rsi, rsi
je 0x1400a4aba
lea rax, [rdx + rax*8]
xor edx, edx
or rbp, qword [rax + rdx*8]
inc rdx
cmp rsi, rdx
jne 0x1400a4aae
test rbp, rbp
mov rsi, qword [rsp + 0x38]
je 0x1400a4e31
xor r14d, r14d
movsxd rdx, r8d
mov ebp, r14d
shr ebp, 6
cmp rbp, rdx
jae 0x1400a4c03
mov rax, qword [rsi]
mov rax, qword [rax + rbp*8]
bt rax, r14
jae 0x1400a4c03
test r14d, r14d
je 0x1400a4b98
mov rcx, rsi
call fcn.14009d600
test eax, eax
je 0x1400a4e25
movsxd r13, dword [rsi + 8]
mov rdi, qword [rsi]
cmp r13, rbp
jbe 0x1400a4f5e
and r14d, 0x3f
test r14d, r14d
jne 0x1400a4f78
mov r8, r13
sub r8, rbp
je 0x1400a4b3c
shl r8, 3
lea rdx, [rdi + rbp*8]
mov rcx, rdi
call fcn.1400f23d0
test ebp, ebp
je 0x1400a4b55
shl rbp, 3
lea rcx, [rdi + r13*8]
sub rcx, rbp
xor edx, edx
mov r8, rbp
call fcn.1400f27e0
movsxd rax, dword [rsi + 8]
mov edi, eax
sar edi, 0x1f
and edi, eax
lea edx, [rax + 1]
mov rcx, qword [rsp + 0x30]
test rax, rax
jle 0x1400a5145
mov rbp, qword [rsp + 0x38]
mov rbp, qword [rbp]
dec edx
cmp qword [rbp + rax*8 - 8], 0
lea rax, [rax - 1]
je 0x1400a4b68
mov rax, qword [rsp + 0x38]
mov dword [rax + 8], edx
test edx, edx
je 0x1400a5091
xor r14d, r14d
xor ebp, ebp
mov eax, dword [rcx + 8]
movsxd rdx, eax
mov r13d, ebp
shr r13d, 6
cmp r13, rdx
jae 0x1400a4bc0
mov rsi, qword [rcx]
mov rsi, qword [rsi + r13*8]
bt rsi, rbp
jb 0x1400a4c50
cmp dword [r15 + 8], 0
jle 0x1400a4be5
mov rax, qword [r15]
test byte [rax], 1
je 0x1400a4be5
mov rcx, r15
mov rdx, r15
mov r8, rbx
call fcn.14009d480
test eax, eax
je 0x1400a4e25
inc ebp
mov rcx, r15
mov rdx, r15
call fcn.1400a5170
inc r14
test eax, eax
mov rcx, qword [rsp + 0x30]
jne 0x1400a4b9d
jmp 0x1400a4e25
mov rdi, qword [rsp + 0x48]
cmp dword [rdi + 8], 0
jle 0x1400a4c2c
mov rax, qword [rdi]
test byte [rax], 1
je 0x1400a4c2c
mov rcx, rdi
mov rdx, rdi
mov r8, rbx
call fcn.14009d480
test eax, eax
je 0x1400a4e79
mov rcx, rdi
mov rdx, rdi
call fcn.1400a5170
test eax, eax
je 0x1400a4e79
inc r14d
mov r8d, dword [rsi + 8]
mov rcx, qword [rsp + 0x30]
jmp 0x1400a4acb
test ebp, ebp
je 0x1400a4cf8
mov rsi, rcx
call fcn.14009d600
test eax, eax
je 0x1400a4e25
movsxd rax, dword [rsi + 8]
mov rdi, qword [rsi]
mov rsi, rax
cmp rax, r13
jbe 0x1400a5037
and ebp, 0x3f
mov qword [rsp + 0x40], rdi
jne 0x1400a5050
mov r8, rsi
sub r8, r13
je 0x1400a4ca6
shl r8, 3
lea rdx, [rdi + r13*8]
mov rcx, rdi
call fcn.1400f23d0
mov rdi, qword [rsp + 0x40]
test r13d, r13d
je 0x1400a4cc0
shl r13, 3
lea rcx, [rdi + rsi*8]
sub rcx, r13
xor edx, edx
mov r8, r13
call fcn.1400f27e0
mov rcx, qword [rsp + 0x30]
movsxd rsi, dword [rcx + 8]
mov edx, esi
sar edx, 0x1f
and edx, esi
lea eax, [rsi + 1]
test rsi, rsi
jle 0x1400a515a
mov rbp, qword [rcx]
dec eax
cmp qword [rbp + rsi*8 - 8], 0
lea rsi, [rsi - 1]
je 0x1400a4cd3
mov dword [rcx + 8], eax
test eax, eax
je 0x1400a514c
movsxd r9, eax
mov r8, qword [rcx]
mov rax, qword [rsp + 0x38]
movsxd rdx, dword [rax + 8]
mov rcx, qword [rax]
call fcn.14009f180
test eax, eax
js 0x1400a4df2
mov rcx, qword [rsp + 0x48]
mov rdx, rcx
mov r8, r15
call fcn.14009d480
xor ebp, ebp
test eax, eax
mov r13, qword [rsp + 0xd0]
je 0x1400a4e7b
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
mov rdx, rsi
mov r8, qword [rsp + 0x30]
call fcn.14009d420
test eax, eax
je 0x1400a4e7b
movsxd r8, dword [rsi + 8]
test r8, r8
mov rcx, qword [rsp + 0x30]
je 0x1400a4e31
mov rbp, qword [rsi]
lea rax, [r8 - 1]
mov esi, r8d
and esi, 7
mov edx, 7
cmp rax, rdx
jae 0x1400a4d85
xor eax, eax
xor edx, edx
jmp 0x1400a4dc1
mov rdi, r8
and rdi, 0xfffffffffffffff8
xor eax, eax
xor edx, edx
or rdx, qword [rbp + rax*8]
or rdx, qword [rbp + rax*8 + 8]
or rdx, qword [rbp + rax*8 + 0x10]
or rdx, qword [rbp + rax*8 + 0x18]
or rdx, qword [rbp + rax*8 + 0x20]
or rdx, qword [rbp + rax*8 + 0x28]
or rdx, qword [rbp + rax*8 + 0x30]
or rdx, qword [rbp + rax*8 + 0x38]
add rax, 8
cmp rdi, rax
jne 0x1400a4d90
test rsi, rsi
je 0x1400a4ddf
lea rax, [rax*8]
add rax, rbp
xor ebp, ebp
or rdx, qword [rax + rbp*8]
inc rbp
cmp rsi, rbp
jne 0x1400a4dd3
xor r14d, r14d
test rdx, rdx
mov rsi, qword [rsp + 0x38]
jne 0x1400a4acb
jmp 0x1400a4e31
mov rcx, r15
mov rdx, r15
mov r8, qword [rsp + 0x48]
call fcn.14009d480
xor ebp, ebp
test eax, eax
mov r13, qword [rsp + 0xd0]
je 0x1400a4e7b
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
mov rsi, qword [rsp + 0x38]
mov r8, rsi
jmp 0x1400a4d49
xor ebp, ebp
mov r13, qword [rsp + 0xd0]
jmp 0x1400a4e7b
call fcn.14009f350
test eax, eax
je 0x1400a4ea4
mov rcx, r15
mov rdx, rbx
mov r8, r15
call fcn.14009daf0
test eax, eax
mov rsi, qword [rsp + 0x60]
je 0x1400a4e79
cmp dword [r15 + 0x10], 0
je 0x1400a4ed1
mov rcx, rsi
mov rdx, r15
mov r8, rbx
mov r9, r13
call fcn.1400a03b0
mov ebp, 0
test eax, eax
je 0x1400a4e7b
mov ebp, 1
jmp 0x1400a4e7b
xor ebp, ebp
cmp byte [r13 + 0x28], 0
jne 0x1400a4851
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
jmp 0x1400a4851
mov dword [r12], 1
mov dword [rsp + 0x20], 0xf8
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_gcd.c
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, 0x70
call fcn.14009b3a0
jmp 0x1400a4e7b
movsxd r9, dword [rbx + 8]
mov r8, qword [rbx]
movsxd rdi, dword [r15 + 8]
mov rcx, qword [r15]
mov rdx, rdi
call fcn.14009f180
test eax, eax
jns 0x1400a4e58
cmp r15, rsi
je 0x1400a4e72
mov rcx, rsi
mov rdx, rdi
call fcn.14009d600
mov ebp, 0
test eax, eax
je 0x1400a4e7b
movsxd r8, dword [r15 + 8]
test r8, r8
je 0x1400a4f5a
shl r8, 3
mov rcx, qword [rsi]
mov rdx, qword [r15]
call fcn.1400f23d0
mov eax, dword [r15 + 8]
mov dword [rsi + 8], eax
mov eax, dword [r15 + 0x10]
mov dword [rsi + 0x10], eax
jmp 0x1400a4e72
xor eax, eax
jmp 0x1400a4982
xor eax, eax
mov rcx, qword [rsp + 0x30]
jmp 0x1400a49cd
mov word [r13 + 0x28], 0x101
jmp 0x1400a48d9
xor eax, eax
jmp 0x1400a4f2c
test r13d, r13d
je 0x1400a4b55
shl r13, 3
mov rcx, rdi
xor edx, edx
mov r8, r13
jmp 0x1400a4b50
lea r9, [r13 - 1]
mov r8, r9
sub r8, rbp
jbe 0x1400a501e
mov r10d, 0x40
sub r10d, r14d
mov eax, ebp
not eax
lea ecx, [rax + r13]
lea r11, [r13 - 2]
mov rdx, rbp
test cl, 1
je 0x1400a4fc4
mov rsi, qword [rdi + rbp*8]
mov ecx, r14d
shr rsi, cl
mov rax, qword [rdi + rbp*8 + 8]
mov ecx, r10d
shl rax, cl
lea rdx, [rbp + 1]
or rax, rsi
mov qword [rdi], rax
cmp r11, rbp
je 0x1400a501e
lea rcx, [rbp*8]
mov r11, rdi
sub r11, rcx
add r11, 8
mov rsi, qword [rdi + rdx*8]
mov ecx, r14d
shr rsi, cl
mov rax, qword [rdi + rdx*8 + 8]
mov ecx, r10d
shl rax, cl
or rax, rsi
mov qword [r11 + rdx*8 - 8], rax
mov rax, qword [rdi + rdx*8 + 8]
mov ecx, r14d
shr rax, cl
mov rsi, qword [rdi + rdx*8 + 0x10]
mov ecx, r10d
shl rsi, cl
or rsi, rax
mov qword [r11 + rdx*8], rsi
add rdx, 2
cmp r9, rdx
jne 0x1400a4fdb
mov rax, qword [rdi + r13*8 - 8]
mov ecx, r14d
shr rax, cl
mov qword [rdi + r8*8], rax
mov rsi, qword [rsp + 0x38]
jmp 0x1400a4b3c
test esi, esi
je 0x1400a4cc0
shl rsi, 3
mov rcx, rdi
xor edx, edx
mov r8, rsi
jmp 0x1400a4cbb
mov r10d, ebp
mov qword [rsp + 0x50], rsi
lea r9, [rsi - 1]
mov rax, r9
sub rax, r13
mov qword [rsp + 0x58], rax
jbe 0x1400a5122
mov r11d, 0x40
sub r11d, ebp
mov eax, r13d
not eax
mov rdx, qword [rsp + 0x50]
lea ecx, [rdx + rax]
lea rsi, [rdx - 2]
test cl, 1
jne 0x1400a509d
mov rbp, r13
jmp 0x1400a50c1
mov dword [rax + 0x10], 0
jmp 0x1400a4b98
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rdi + r13*8]
mov ecx, r10d
shr rdx, cl
mov rax, qword [rdi + r13*8 + 8]
mov ecx, r11d
shl rax, cl
lea rbp, [r13 + 1]
or rax, rdx
mov qword [rdi], rax
cmp rsi, r13
je 0x1400a5122
shr r14, 3
and r14, 0xfffffffffffffff8
mov r8, qword [rsp + 0x40]
sub r8, r14
add r8, 8
mov rsi, qword [rsp + 0x40]
mov rax, qword [rsi + rbp*8]
mov ecx, r10d
shr rax, cl
mov rdx, qword [rsi + rbp*8 + 8]
mov ecx, r11d
shl rdx, cl
or rdx, rax
mov qword [r8 + rbp*8 - 8], rdx
mov rdx, qword [rsi + rbp*8 + 8]
mov ecx, r10d
shr rdx, cl
mov rax, qword [rsi + rbp*8 + 0x10]
mov ecx, r11d
shl rax, cl
or rax, rdx
mov qword [r8 + rbp*8], rax
add rbp, 2
cmp r9, rbp
jne 0x1400a50da
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov rax, qword [rdi + rsi*8 - 8]
mov ecx, r10d
shr rax, cl
mov rcx, qword [rsp + 0x58]
mov qword [rdi + rcx*8], rax
jmp 0x1400a4ca6
mov edx, edi
jmp 0x1400a4b88
mov dword [rcx + 0x10], 0
xor eax, eax
jmp 0x1400a4cf8
mov eax, edx
jmp 0x1400a4ced