Function at 0x140089cb0
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 r13, rcx
mov eax, dword [r8 + 8]
mov esi, dword [r9 + 8]
cmp eax, esi
cmovg esi, eax
test esi, esi
je 0x140089d4e
mov rbp, r9
mov rbx, r8
mov qword [rsp + 0x40], rdx
mov r12, qword [rsp + 0xb0]
cmp byte [r12 + 0x28], 0
jne 0x140089d86
mov rcx, qword [r12 + 0x10]
mov rdi, qword [r12 + 0x20]
cmp rcx, qword [r12 + 0x18]
jne 0x140089d6e
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov r14d, 0x20
cmovne r14, rax
cmp r14, rcx
jbe 0x140089d7e
mov rax, r14
shr rax, 0x3d
jne 0x140089d7e
lea rdx, [r14*8]
mov rcx, qword [r12 + 8]
call fcn.1400ae2f0
test rax, rax
je 0x140089d7e
mov qword [r12 + 8], rax
mov qword [r12 + 0x18], r14
mov rcx, qword [r12 + 0x10]
jmp 0x140089d73
mov dword [rdx], 0
mov dword [r13 + 0x10], 0
mov dword [r13 + 8], 0
mov edi, 1
jmp 0x140089f92
mov rax, qword [r12 + 8]
mov qword [rax + rcx*8], rdi
inc qword [r12 + 0x10]
jmp 0x140089d86
mov word [r12 + 0x28], 0x101
mov rcx, r12
call fcn.140084300
mov r14, rax
mov rcx, r12
call fcn.140084300
mov r15, rax
mov rcx, r12
call fcn.140084300
mov qword [rsp + 0x28], rax
xor edi, edi
test r14, r14
je 0x140089f6d
test r15, r15
je 0x140089f6d
cmp qword [rsp + 0x28], 0
je 0x140089f6d
cmp r14, rbx
je 0x140089e0c
movsxd rdx, dword [rbx + 8]
mov rcx, r14
call fcn.140082450
test eax, eax
je 0x140089f6d
movsxd r8, dword [rbx + 8]
test r8, r8
je 0x140089dff
shl r8, 3
mov rcx, qword [r14]
mov rdx, qword [rbx]
call fcn.14012d9b0
mov eax, dword [rbx + 8]
jmp 0x140089e01
xor eax, eax
mov dword [r14 + 8], eax
mov eax, dword [rbx + 0x10]
mov dword [r14 + 0x10], eax
cmp r15, rbp
je 0x140089e50
movsxd rdx, dword [rbp + 8]
mov rcx, r15
call fcn.140082450
test eax, eax
je 0x140089f6d
movsxd r8, dword [rbp + 8]
test r8, r8
je 0x140089e43
shl r8, 3
mov rcx, qword [r15]
mov rdx, qword [rbp]
call fcn.14012d9b0
mov eax, dword [rbp + 8]
jmp 0x140089e45
xor eax, eax
mov dword [r15 + 8], eax
mov eax, dword [rbp + 0x10]
mov dword [r15 + 0x10], eax
mov qword [rsp + 0x38], r13
movsxd r13, esi
movsxd rax, dword [r14 + 8]
cmp eax, esi
jbe 0x140089e87
mov rdx, qword [r14]
xor ecx, ecx
mov r8, r13
nop dword [rax + rax]
or rcx, qword [rdx + r8*8]
inc r8
cmp rax, r8
jne 0x140089e70
test rcx, rcx
jne 0x140089f4a
jmp 0x140089eba
mov rcx, r14
mov rdx, r13
call fcn.140082450
test eax, eax
je 0x140089f6d
movsxd rcx, dword [r14 + 8]
cmp esi, ecx
je 0x140089eba
mov r8, r13
sub r8, rcx
shl r8, 3
shl rcx, 3
add rcx, qword [r14]
xor edx, edx
call fcn.14012e050
mov dword [r14 + 8], esi
movsxd rax, dword [r15 + 8]
cmp eax, esi
jbe 0x140089ee3
mov rdx, qword [r15]
xor ecx, ecx
mov r8, r13
nop
or rcx, qword [rdx + r8*8]
inc r8
cmp rax, r8
jne 0x140089ed0
test rcx, rcx
jne 0x140089f4a
jmp 0x140089f12
mov rcx, r15
mov rdx, r13
call fcn.140082450
test eax, eax
je 0x140089f6d
movsxd rcx, dword [r15 + 8]
cmp esi, ecx
je 0x140089f12
mov r8, r13
sub r8, rcx
shl r8, 3
shl rcx, 3
add rcx, qword [r15]
xor edx, edx
call fcn.14012e050
mov dword [r15 + 8], esi
mov rcx, qword [rsp + 0x28]
movsxd rax, dword [rcx + 8]
cmp eax, esi
jbe 0x140089fa5
mov rdx, qword [rcx]
xor ecx, ecx
mov r8, r13
nop
or rcx, qword [rdx + r8*8]
inc r8
cmp rax, r8
jne 0x140089f30
test rcx, rcx
mov rax, qword [rsp + 0x28]
je 0x140089fdb
mov dword [rsp + 0x20], 0x18f
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bn_bn.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x66
call fcn.1400bacd0
cmp byte [r12 + 0x28], 0
jne 0x140089f92
mov rax, qword [r12 + 8]
mov rcx, qword [r12 + 0x10]
lea rdx, [rcx - 1]
mov qword [r12 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r12 + 0x20], rax
mov eax, edi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, r13
call fcn.140082450
test eax, eax
je 0x140089f6d
mov rax, qword [rsp + 0x28]
movsxd rcx, dword [rax + 8]
cmp esi, ecx
je 0x140089fdb
mov r8, r13
sub r8, rcx
shl r8, 3
shl rcx, 3
add rcx, qword [rax]
xor edx, edx
call fcn.14012e050
mov rax, qword [rsp + 0x28]
mov dword [rax + 8], esi
mov ecx, dword [rbx + 8]
mov eax, ecx
shl eax, 6
add ecx, dword [rbp + 8]
shl ecx, 6
cmp ecx, eax
jae 0x14008a004
mov dword [rsp + 0x20], 0x4e
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bngcd_extra.c
jmp 0x140089f59
test ecx, ecx
je 0x14008a26f
lea r8, [r13 - 1]
xor r9d, r9d
mov dword [rsp + 0x30], 0
mov rbp, qword [rsp + 0x28]
mov dword [rsp + 0x34], ecx
nop word cs:[rax + rax]
mov rdx, qword [r14]
mov rcx, qword [rdx]
and ecx, 1
neg rcx
mov rdi, qword [r15]
mov r11, qword [rdi]
and r11d, 1
neg r11
and r11, rcx
mov rbx, qword [rbp]
mov rax, rbp
xor ebp, ebp
mov rcx, r13
sub r10, r10
jmp 0x14008a060
mov r10, qword [rdx + rbp*8]
sbb r10, qword [rdi + rbp*8]
mov qword [rbx + rbp*8], r10
lea rbp, [rbp + 1]
dec rcx
jne 0x14008a060
sbb r10, r10
mov rcx, qword [r14]
mov rdi, qword [rax]
test r10b, 1
mov ebx, 0
cmove rbx, r11
mov rbp, rbx
not rbp
xor edx, edx
nop word cs:[rax + rax]
mov rax, qword [rdi + rdx*8]
and rax, rbx
mov r12, qword [rcx + rdx*8]
and r12, rbp
or r12, rax
mov qword [rcx + rdx*8], r12
inc rdx
cmp r13, rdx
jne 0x14008a0a0
and r10d, 1
neg r10
mov rax, qword [r14]
mov rdx, qword [r15]
mov rbp, qword [rsp + 0x28]
mov rdi, qword [rbp]
xor ebx, ebx
mov rcx, r13
sub r12, r12
jmp 0x14008a0e0
mov r12, qword [rdx + rbx*8]
sbb r12, qword [rax + rbx*8]
mov qword [rdi + rbx*8], r12
lea rbx, [rbx + 1]
dec rcx
jne 0x14008a0e0
sbb r12, r12
mov rcx, qword [r15]
mov rdi, qword [rbp]
and r10, r11
mov r11, r10
not r11
xor edx, edx
nop word [rax + rax]
mov rax, qword [rdi + rdx*8]
and rax, r10
mov rbx, qword [rcx + rdx*8]
and rbx, r11
or rbx, rax
mov qword [rcx + rdx*8], rbx
inc rdx
cmp r13, rdx
jne 0x14008a110
mov r10, qword [r14]
mov r11, qword [r10]
mov rax, qword [r15]
mov rcx, qword [rax]
mov rdi, qword [rbp]
test r8, r8
je 0x14008a17d
xor edx, edx
nop word cs:[rax + rax]
mov rax, qword [r10 + rdx*8]
mov rbx, qword [r10 + rdx*8 + 8]
shld rbx, rax, 0x3f
mov qword [rdi + rdx*8], rbx
lea rax, [rdx + 1]
mov rdx, rax
cmp r8, rax
jne 0x14008a150
mov rax, qword [r10 + r13*8 - 8]
shr rax, 1
mov qword [rdi + r13*8 - 8], rax
jmp 0x14008a186
mov rax, r11
shr rax, 1
mov qword [rdi], rax
and r11d, 1
and ecx, 1
dec r11
dec rcx
mov eax, ecx
and eax, r11d
sub dword [rsp + 0x30], eax
mov rbx, r11
not rbx
xor edx, edx
nop word cs:[rax + rax]
mov rax, qword [rdi + rdx*8]
and rax, r11
mov r12, qword [r10 + rdx*8]
and r12, rbx
or r12, rax
mov qword [r10 + rdx*8], r12
inc rdx
cmp r13, rdx
jne 0x14008a1b0
mov r10, qword [rbp]
mov r11, qword [r15]
test r8, r8
je 0x14008a21d
xor edx, edx
mov r12, qword [rsp + 0xb0]
nop word cs:[rax + rax]
mov rax, qword [r11 + rdx*8]
mov rdi, qword [r11 + rdx*8 + 8]
shld rdi, rax, 0x3f
mov qword [r10 + rdx*8], rdi
lea rax, [rdx + 1]
mov rdx, rax
cmp r8, rax
jne 0x14008a1f0
mov rax, qword [r11 + r13*8 - 8]
shr rax, 1
mov qword [r10 + r13*8 - 8], rax
jmp 0x14008a22e
mov rax, qword [r11]
shr rax, 1
mov qword [r10], rax
mov r12, qword [rsp + 0xb0]
mov rdi, rcx
not rdi
xor edx, edx
nop word cs:[rax + rax]
mov rax, qword [r10 + rdx*8]
and rax, rcx
mov rbx, qword [r11 + rdx*8]
and rbx, rdi
or rbx, rax
mov qword [r11 + rdx*8], rbx
inc rdx
cmp r13, rdx
jne 0x14008a240
inc r9d
mov ecx, dword [rsp + 0x34]
cmp r9d, ecx
jne 0x14008a030
jmp 0x14008a277
mov dword [rsp + 0x30], 0
cmp r13, 1
mov rcx, r13
adc rcx, 0
xor edx, edx
nop word cs:[rax + rax]
mov rax, qword [r14]
mov rax, qword [rax + rdx*8]
mov r8, qword [r15]
or qword [r8 + rdx*8], rax
inc rdx
cmp rcx, rdx
jne 0x14008a290
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x30]
mov dword [rax], ecx
mov rdi, qword [r15]
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
mov rdx, r13
call fcn.140082450
test eax, eax
je 0x14008a2ee
shl r13, 3
mov rcx, qword [rbx]
mov rdx, rdi
mov r8, r13
call fcn.14012d9b0
mov dword [rbx + 8], esi
mov dword [rbx + 0x10], 0
mov edi, 1
jmp 0x140089f6d
xor edi, edi
jmp 0x140089f6d