Function at 0x140066000
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 r12, r8
mov r13, rcx
mov rbx, qword [rsp + 0xf0]
mov eax, dword [r8 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
nop
test eax, eax
jle 0x14006604d
mov r8, qword [r12]
lea r9, [rax - 1]
cmp qword [r8 + rax*8 - 8], 0
mov rax, r9
je 0x140066030
inc r9d
mov ecx, r9d
mov esi, dword [r15 + 8]
movsxd rax, esi
mov r8d, eax
sar r8d, 0x1f
and r8d, eax
mov r9, rsi
nop word cs:[rax + rax]
test r9d, r9d
jle 0x14006608d
mov r11, qword [r15]
lea r10, [r9 - 1]
cmp qword [r11 + r9*8 - 8], 0
mov r9, r10
je 0x140066070
inc r10d
mov r8d, r10d
test ecx, ecx
jle 0x14006609e
mov r9, qword [r12]
dec ecx
cmp qword [r9 + rcx*8], 0
je 0x1400660cb
test r8d, r8d
jle 0x1400660b0
mov rcx, qword [r15]
dec r8d
cmp qword [rcx + r8*8], 0
je 0x1400660cb
test esi, esi
je 0x1400661c3
mov rcx, qword [r15]
cmp esi, 4
jae 0x1400660f3
xor r9d, r9d
xor r8d, r8d
jmp 0x140066150
mov dword [rsp + 0x20], 0xd4
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bndiv.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, reloc.WS2_32.dll_WSAGetLastError
call fcn.1400c18f0
jmp 0x140066747
mov r9, rax
and r9, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rcx + r8*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r8*8 + 0x10]
por xmm1, xmm2
add r8, 4
cmp r9, r8
jne 0x140066110
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp r9, rax
je 0x14006615c
nop word cs:[rax + rax]
or r8, qword [rcx + r9*8]
inc r9
cmp rax, r9
jne 0x140066150
test r8, r8
je 0x1400661c3
mov qword [rsp + 0x60], rdx
cmp byte [rbx + 0x28], 0
jne 0x1400661ff
mov rcx, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rcx, qword [rbx + 0x18]
jne 0x1400661eb
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x1400661f9
mov rax, rdi
shr rax, 0x3d
jne 0x1400661f9
lea rdx, [rdi*8]
mov rcx, qword [rbx + 8]
call fcn.1400c0a10
test rax, rax
je 0x1400661f9
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 0x10]
jmp 0x1400661ef
mov dword [rsp + 0x20], 0xd9
lea r9, str....._third_party_boringssl_srccrypto_fipsmodule_bndiv.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.1400c18f0
jmp 0x140066747
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], rsi
inc qword [rbx + 0x10]
jmp 0x1400661ff
mov word [rbx + 0x28], 0x101
mov rcx, rbx
call fcn.140065eb0
mov qword [rsp + 0x68], rax
mov rcx, rbx
call fcn.140065eb0
mov r14, rax
mov rcx, rbx
call fcn.140065eb0
mov rbp, rax
test r13, r13
jne 0x140066232
mov rcx, rbx
call fcn.140065eb0
mov r13, rax
mov qword [rsp + 0x30], r13
test rbp, rbp
je 0x14006671d
cmp qword [rsp + 0x30], 0
je 0x14006671d
mov eax, dword [r15 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov r8, rax
nop word [rax + rax]
test r8d, r8d
jle 0x14006627f
mov rdx, qword [r15]
lea r9, [r8 - 1]
cmp qword [rdx + r8*8 - 8], 0
mov r8, r9
je 0x140066260
inc r9d
mov ecx, r9d
jmp 0x14006628c
xor esi, esi
test eax, eax
jns 0x14006632c
mov rdx, qword [r15]
movsxd rax, ecx
shl ecx, 6
mov rdx, qword [rdx + rax*8 - 8]
xor eax, eax
test rdx, rdx
setne al
or eax, ecx
xor ecx, ecx
mov r8, rdx
shr r8, 0x20
cmove r8, rdx
setne cl
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
cmovb r9, r8
setae dl
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
cmovb r10, r9
setae r8b
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor edi, edi
cmp r9, 4
setae dil
cmovb r10, r9
add edi, edi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea esi, [rax + r11*4]
add esi, 0xffffffc0
or esi, edi
cmp r10, 2
sbb esi, 0xffffffff
and esi, 0x3f
mov r8d, 0x40
sub r8d, esi
mov rcx, rbp
mov rdx, r15
call fcn.140066830
test eax, eax
je 0x14006671d
mov ecx, dword [rbp + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop word cs:[rax + rax]
test ecx, ecx
jle 0x14006637b
mov r8, qword [rbp]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140066360
inc edx
mov eax, edx
mov dword [rbp + 8], eax
mov dword [rbp + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov rcx, r14
mov rdx, r12
mov dword [rsp + 0x48], r8d
call fcn.140066830
test eax, eax
je 0x14006671d
mov ecx, dword [r14 + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop word cs:[rax + rax]
test ecx, ecx
jle 0x1400663da
mov r8, qword [r14]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x1400663c0
inc edx
mov eax, edx
mov dword [r14 + 8], eax
mov dword [r14 + 0x10], 0
movsxd rdx, dword [rbp + 8]
lea ecx, [rdx + 1]
cmp eax, ecx
jle 0x14006641d
inc eax
movsxd rdx, eax
mov rcx, r14
call fcn.140063720
test eax, eax
je 0x14006671d
mov rax, qword [r14]
movsxd rcx, dword [r14 + 8]
mov qword [rax + rcx*8], 0
mov edi, dword [r14 + 8]
inc edi
jmp 0x14006645b
add rdx, 2
mov rcx, r14
call fcn.140063720
test eax, eax
je 0x14006671d
movsxd rax, dword [r14 + 8]
mov edi, dword [rbp + 8]
add edi, 2
cmp eax, edi
jge 0x14006645b
nop
mov rcx, qword [r14]
mov qword [rcx + rax*8], 0
inc rax
movsxd rdi, dword [rbp + 8]
add rdi, 2
cmp rax, rdi
jl 0x140066440
mov dword [r14 + 8], edi
movsxd r8, dword [rbp + 8]
mov ebx, edi
sub ebx, r8d
mov rax, qword [rbp]
cmp r8, 1
jne 0x140066476
xor ecx, ecx
jmp 0x14006647b
mov rcx, qword [rax + r8*8 - 0x10]
mov qword [rsp + 0x58], rcx
mov rcx, qword [r14]
mov qword [rsp + 0x70], rcx
mov rsi, qword [rax + r8*8 - 8]
mov ecx, dword [r12 + 0x10]
mov eax, dword [r15 + 0x10]
mov r13d, ecx
xor eax, ecx
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x10], eax
lea eax, [rbx + 1]
movsxd rdx, eax
mov r12, r8
call fcn.140063720
test eax, eax
je 0x14006671d
lea ecx, [rbx - 1]
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], ecx
mov dword [rsp + 0x4c], ecx
movsxd r15, ecx
shl r15, 3
add r15, qword [rax]
lea rdx, [r12 + 1]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x78], rdx
call fcn.140063720
test eax, eax
je 0x14006671d
mov qword [rsp + 0x38], r12
mov rax, qword [rsp + 0x30]
cmp dword [rax + 8], 0
mov dword [rsp + 0x44], r13d
je 0x140066509
add r15, 0xfffffffffffffff8
jmp 0x140066510
mov dword [rax + 0x10], 0
mov r8, qword [rsp + 0x38]
cmp ebx, 2
jl 0x14006668c
movsxd rax, ebx
movsxd rcx, edi
mov rdx, qword [rsp + 0x70]
lea r13, [rdx + rax*8]
lea rbx, [rdx + rcx*8]
add rbx, 0xfffffffffffffff8
xor edi, edi
mov qword [rsp + 0x50], r14
jmp 0x14006655a
mov r14, qword [rsp + 0x50]
mov qword [r15], r12
inc edi
add rbx, 0xfffffffffffffff8
add r15, 0xfffffffffffffff8
cmp edi, dword [rsp + 0x4c]
je 0x14006668c
mov rdx, qword [rbx]
mov r12, 0xffffffffffffffff
cmp rdx, rsi
mov r14, qword [rsp + 0x58]
je 0x1400665d3
mov rax, qword [rbx - 8]
mov qword [rsp + 0x80], rsi
div qword [rsp + 0x80]
mov rcx, rdx
mov r12, rax
mul r14
mov r11, qword [rbx - 0x10]
cmp r11, rax
mov r9, rcx
sbb r9, rdx
jae 0x1400665d3
add rcx, rsi
dec r12
mov r9, r12
nop word cs:[rax + rax]
mov r12, r9
cmp rcx, rsi
jb 0x1400665d3
sub rax, r14
sbb rdx, 0
lea r10, [rcx + rsi]
lea r9, [r12 - 1]
cmp r11, rax
sbb rcx, rdx
mov rcx, r10
jb 0x1400665b0
mov rdx, qword [rbp]
mov r14, qword [rsp + 0x68]
mov rcx, qword [r14]
mov r9, r12
call fcn.1400642b0
mov r8, qword [rsp + 0x38]
add r13, 0xfffffffffffffff8
mov rcx, qword [r14]
mov qword [rcx + r8*8], rax
mov rcx, qword [rsp + 0x78]
test ecx, ecx
je 0x14006653e
mov rax, qword [r14]
xor edx, edx
sub r9, r9
jmp 0x140066610
mov r9, qword [r13 + rdx*8]
sbb r9, qword [rax + rdx*8]
mov qword [r13 + rdx*8], r9
lea rdx, [rdx + 1]
dec rcx
jne 0x140066610
sbb r9, r9
test r9b, 1
mov r14, qword [rsp + 0x50]
je 0x140066543
dec r12
test r8d, r8d
je 0x140066543
mov rax, qword [rbp]
xor edx, edx
mov rcx, r8
sub r9, r9
jmp 0x140066660
mov r9, qword [r13 + rdx*8]
adc r9, qword [rax + rdx*8]
mov qword [r13 + rdx*8], r9
lea rdx, [rdx + 1]
dec rcx
jne 0x140066660
sbb r9, r9
test r9b, 1
je 0x140066543
inc qword [rbx]
jmp 0x140066543
mov eax, dword [r14 + 8]
mov r10d, eax
sar r10d, 0x1f
and r10d, eax
mov rdx, rax
mov r11, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x60]
mov esi, dword [rsp + 0x44]
test edx, edx
jle 0x1400666ca
mov r9, qword [r14]
lea r8, [rdx - 1]
cmp qword [r9 + rdx*8 - 8], 0
mov rdx, r8
je 0x1400666ab
inc r8d
mov dword [r14 + 8], r8d
jmp 0x1400666da
mov dword [r14 + 8], r10d
test eax, eax
js 0x1400666da
mov dword [r14 + 0x10], 0
test rcx, rcx
je 0x1400667b9
mov rdx, r14
mov r8d, dword [rsp + 0x48]
call fcn.140066c20
test eax, eax
je 0x14006671d
mov r9, qword [rsp + 0x60]
movsxd rax, dword [r9 + 8]
test rax, rax
mov r11, qword [rsp + 0x30]
je 0x1400667b9
mov rcx, qword [r9]
cmp eax, 4
jae 0x14006675d
xor edx, edx
xor r8d, r8d
jmp 0x1400667a4
xor edi, edi
mov r8, qword [rsp + 0xf0]
cmp byte [r8 + 0x28], 0
jne 0x140066747
mov rax, qword [r8 + 8]
mov rcx, qword [r8 + 0x10]
lea rdx, [rcx - 1]
mov qword [r8 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r8 + 0x20], rax
mov eax, edi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rax
and rdx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rcx + r8*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r8*8 + 0x10]
por xmm1, xmm2
add r8, 4
cmp rdx, r8
jne 0x14006676f
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp rdx, rax
je 0x1400667b0
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x1400667a4
test r8, r8
je 0x1400667b9
mov dword [r9 + 0x10], esi
mov eax, dword [r11 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov rdx, rax
mov r10, qword [rsp + 0xf0]
test edx, edx
jle 0x1400667ee
mov r9, qword [r11]
lea r8, [rdx - 1]
cmp qword [r9 + rdx*8 - 8], 0
mov rdx, r8
je 0x1400667cf
inc r8d
mov dword [r11 + 8], r8d
jmp 0x1400667fe
mov dword [r11 + 8], ecx
test eax, eax
js 0x1400667fe
mov dword [r11 + 0x10], 0
mov edi, 1
cmp byte [r10 + 0x28], 0
jne 0x140066747
mov rax, qword [r10 + 8]
mov rcx, qword [r10 + 0x10]
lea rdx, [rcx - 1]
mov qword [r10 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r10 + 0x20], rax
jmp 0x140066747