Function at 0x140105de0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r15, r9
mov r12d, r8d
mov r13, rdx
mov r14, rcx
mov rax, qword [0x14015e028]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov dword [rcx], 0
lea rcx, [0x140169530]
lea rdx, [0x14003e540]
call fcn.140088f00
test r13, r13
je 0x140105e67
mov esi, dword [r13 + 0x10]
cmp esi, dword [0x140169548]
jne 0x140106309
movsxd r9, dword [0x140169540]
mov r8, qword [0x140169538]
movsxd rdx, dword [r13 + 8]
mov rcx, qword [r13]
call fcn.14007fda0
mov ecx, eax
neg ecx
test esi, esi
cmove ecx, eax
test ecx, ecx
jle 0x140105ebf
mov edi, dword [r13 + 8]
test edi, edi
jle 0x140105e98
mov rbx, qword [r13]
mov rsi, qword [rbx]
test sil, 1
jne 0x140105eea
xor rsi, 2
cmp edi, 2
jl 0x140105eab
mov eax, 1
or rsi, qword [rbx + rax*8]
inc rax
cmp rdi, rax
jne 0x140105e8a
jmp 0x140105eab
test edi, edi
je 0x140106097
mov rax, qword [r13]
mov rsi, qword [rax]
xor rsi, 2
xor eax, eax
test rsi, rsi
jne 0x140105ebc
xor eax, eax
cmp dword [r13 + 0x10], 0
sete al
mov dword [r14], eax
mov ebp, 1
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14009d180
mov eax, ebp
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, rsi
xor rax, 3
cmp edi, 2
jl 0x140105f07
mov ecx, 1
or rax, qword [rbx + rcx*8]
inc rcx
cmp rdi, rcx
jne 0x140105efb
test rax, rax
je 0x14010609e
cmp dword [rsp + 0xf0], 0
je 0x140105f93
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], r14
xor r12d, r12d
cmp edi, 0x10
setg r12b
shl r12, 9
add r12, 0x200
mov r14d, 1
lea rax, [0x140148a80]
movzx ebp, word [rax + r14*2]
mov rcx, r13
mov edx, ebp
call fcn.1400ff0d0
test ax, ax
je 0x140106195
inc r14
cmp r12, r14
jne 0x140105f3f
mov r8, qword [rsp + 0xf8]
test r8, r8
mov r14, qword [rsp + 0x30]
mov r12d, dword [rsp + 0x38]
je 0x140105f93
mov ecx, 1
mov edx, 0xffffffff
call qword [r8 + 8]
test eax, eax
je 0x14010618e
test r12d, r12d
je 0x1401060b5
test r15, r15
jne 0x1401062d5
mov ecx, 0x30
call fcn.140081a40
test rax, rax
je 0x14010631b
mov r15, rax
xorps xmm0, xmm0
movups xmmword [rax + 0x1a], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
mov rsi, rax
cmp byte [r15 + 0x28], 0
jne 0x140105ff1
mov rcx, qword [r15 + 0x10]
mov rdi, qword [r15 + 0x20]
cmp rcx, qword [r15 + 0x18]
je 0x14010613a
mov rax, qword [r15 + 8]
mov qword [rax + rcx*8], rdi
inc qword [r15 + 0x10]
mov rcx, r15
call fcn.14003e7a0
mov rdi, rax
mov rcx, r13
mov rdx, r15
call fcn.1400ff280
mov rbx, rax
xor ebp, ebp
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [0x1401399e0]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
test rdi, rdi
je 0x14010603a
test rbx, rbx
jne 0x1401061bf
mov rcx, rbx
call fcn.14003fcb0
cmp byte [r15 + 0x28], 0
jne 0x140106062
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
test rsi, rsi
je 0x140105ec4
mov rcx, qword [rsi]
lea rdx, [0x1400432c0]
lea r8, [fcn.14003e500]
call fcn.14004acd0
mov rcx, qword [rsi + 8]
call fcn.140081a70
mov rcx, rsi
call fcn.140081a70
jmp 0x140105ec4
xor eax, eax
jmp 0x140105ebc
cmp dword [r13 + 0x10], 0
jne 0x140105f10
mov dword [r14], 1
jmp 0x140105ebf
mov rcx, r13
call fcn.14003e560
mov r12d, 3
cmp eax, 0xea2
jg 0x140105f9c
mov r12d, 4
cmp eax, 0x540
jg 0x140105f9c
mov r12d, 5
cmp eax, 0x1db
jg 0x140105f9c
mov r12d, 6
cmp eax, 0x18f
jg 0x140105f9c
mov r12d, 7
cmp eax, 0x15a
jg 0x140105f9c
mov r12d, 8
cmp eax, 0x133
jg 0x140105f9c
cmp eax, 0x36
mov eax, 0x1b
mov r12d, 0x22
cmovg r12d, eax
jmp 0x140105f9c
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov ebx, 0x20
cmovne rbx, rax
cmp rbx, rcx
jbe 0x140106343
mov rax, rbx
shr rax, 0x3d
jne 0x140106343
lea rdx, [rbx*8]
mov rcx, qword [r15 + 8]
call fcn.140043310
test rax, rax
je 0x140106343
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
jmp 0x140105fe9
xor ebp, ebp
jmp 0x140105ec4
movzx eax, bp
xor rsi, rax
cmp edi, 2
jl 0x1401062dc
mov eax, 1
mov rcx, qword [rsp + 0x30]
or rsi, qword [rbx + rax*8]
inc rax
cmp rdi, rax
jne 0x1401061ae
jmp 0x1401062e1
lea rcx, [rsp + 0x50]
mov rdx, rbx
mov r8, r15
call fcn.140105980
test eax, eax
je 0x14010603a
movsxd rax, r12d
mov qword [rsp + 0x38], rax
mov r13d, 1
lea rax, [rsp + 0x50]
mov rbp, qword [rax]
xor r12d, r12d
lea rdx, [rsp + 0x4c]
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x4c], 0xaaaaaaaa
mov r8d, 2
mov rcx, rdi
mov r9, rbp
call fcn.140106350
test eax, eax
je 0x1401062f9
movsxd rax, dword [rsp + 0x4c]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x20], r15
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x48]
mov r8, rdi
mov r9, rbx
call fcn.140105bf0
xor ebp, ebp
test eax, eax
je 0x14010603a
cmp dword [rsp + 0x48], 0
je 0x140106300
mov r8, qword [rsp + 0xf8]
test r8, r8
je 0x14010627e
lea edx, [r13 - 1]
mov ecx, 1
call qword [r8 + 8]
test eax, eax
je 0x14010603a
add r12, qword [rsp + 0x30]
xor eax, eax
cmp r13d, 0x10
lea r8d, [r13 + 1]
setb al
mov rdx, r12
mov rcx, qword [rsp + 0x38]
xor rdx, rcx
mov rbp, r12
sub rbp, rcx
xor rbp, r12
or rbp, rdx
xor rbp, r12
sar rbp, 0x3f
or rbp, rax
mov r13d, r8d
mov rbp, qword [rsp + 0x40]
lea rdx, [rsp + 0x4c]
jne 0x1401061fa
mov dword [r14], 1
mov ebp, 1
jmp 0x14010603a
xor esi, esi
jmp 0x140105fcc
mov rcx, qword [rsp + 0x30]
xor eax, eax
test rsi, rsi
jne 0x1401062f2
xor eax, eax
cmp dword [r13 + 0x10], 0
sete al
mov dword [rcx], eax
jmp 0x140105ebf
xor ebp, ebp
jmp 0x14010603a
mov dword [r14], 0
jmp 0x1401062cb
mov ebp, 1
test esi, esi
jne 0x140105ec4
jmp 0x140105e67
mov dword [rsp + 0x20], 0x6f
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_ctx.c
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, 0x41
call fcn.14011fe20
jmp 0x140105ec4
mov word [r15 + 0x28], 0x101
jmp 0x140105ff1