Function at 0x140031290
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 r14, r9
mov edi, r8d
mov r15, rdx
mov r12, rcx
cmp byte [r9 + 0x28], 0
jne 0x140031327
mov rcx, qword [r14 + 0x10]
mov rsi, qword [r14 + 0x20]
cmp rcx, qword [r14 + 0x18]
jne 0x140031310
mov ebp, edi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
setbe al
mov rcx, rdi
shr rcx, 0x3d
setne cl
or cl, al
jne 0x14003131e
lea rdx, [rdi*8]
mov rcx, qword [r14 + 8]
call fcn.1400987b0
test rax, rax
je 0x14003131e
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rdi
mov rcx, qword [r14 + 0x10]
mov edi, ebp
jmp 0x140031314
mov rax, qword [r14 + 8]
mov qword [rax + rcx*8], rsi
inc qword [r14 + 0x10]
jmp 0x140031327
mov word [r14 + 0x28], 0x101
mov edi, ebp
mov rcx, r14
call fcn.140028b10
xor ebp, ebp
test rax, rax
je 0x14003178e
mov r13, rax
mov rcx, r12
mov rdx, r15
call fcn.140027620
test rax, rax
je 0x14003178e
mov esi, dword [r12 + 8]
cmp esi, dword [r13 + 0xc]
jbe 0x1400313ee
cmp esi, 0x800000
jb 0x14003139b
mov dword [rsp + 0x20], 0x163
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c.inc
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, 0x66
call fcn.1400885a0
cmp byte [r14 + 0x28], 0
jne 0x1400317ae
jmp 0x140031795
test byte [r13 + 0x14], 2
jne 0x1400317c1
movsxd rcx, esi
mov edx, 8
call fcn.1400986c0
test rax, rax
je 0x14003178e
mov r15, rax
movsxd r8, dword [r13 + 8]
test r8, r8
je 0x1400313d8
shl r8, 3
mov rdx, qword [r13]
mov rcx, r15
call fcn.1402a44e0
mov rcx, qword [r13]
call fcn.140098760
mov qword [r13], r15
mov dword [r13 + 0xc], esi
mov esi, dword [r12 + 8]
test esi, esi
je 0x140031789
shl esi, 6
xor ebp, ebp
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x34], esi
jmp 0x140031422
inc ebp
mov eax, dword [rsp + 0x34]
mov ecx, ebp
shr eax, cl
test eax, eax
je 0x140031789
bt edi, ebp
mov esi, 0
sbb rsi, rsi
mov rax, r12
movsxd r12, dword [r12 + 8]
mov r10d, 1
mov ecx, ebp
shl r10d, cl
mov rbx, r13
mov r15, qword [r13]
mov r13d, r10d
shr r13d, 6
cmp r12d, r13d
jbe 0x140031490
mov rdx, qword [rax]
cmp ebp, 5
jbe 0x140031570
mov r8, r12
sub r8, r13
shl r8, 3
shl r13d, 3
add rdx, r13
mov rcx, r15
call fcn.1402a44e0
lea rcx, [r15 + r12*8]
sub rcx, r13
xor edx, edx
mov r8, r13
jmp 0x1400314a1
test r12d, r12d
je 0x1400314a6
shl r12, 3
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.1402a4b90
mov r12, qword [rsp + 0x40]
movsxd rax, dword [r12 + 8]
test rax, rax
mov r13, rbx
je 0x140031410
mov rcx, qword [r12]
mov rdx, qword [r13]
mov r8, rsi
not r8
cmp eax, 4
jb 0x1400314ee
lea r9, [rcx + rax*8]
lea r10, [rdx + rax*8]
cmp rcx, r10
setb r10b
cmp rdx, r9
setb r9b
test r10b, r9b
je 0x1400316fc
xor r9d, r9d
mov r10, r9
test al, 1
je 0x140031514
mov r10, qword [rdx + r9*8]
and r10, rsi
mov r11, qword [rcx + r9*8]
and r11, r8
or r11, r10
mov qword [rcx + r9*8], r11
mov r10, r9
or r10, 1
lea r11, [rax - 1]
cmp r9, r11
je 0x140031410
nop word cs:[rax + rax]
mov r9, qword [rdx + r10*8]
and r9, rsi
mov r11, qword [rcx + r10*8]
and r11, r8
or r11, r9
mov qword [rcx + r10*8], r11
mov r9, qword [rdx + r10*8 + 8]
and r9, rsi
mov r11, qword [rcx + r10*8 + 8]
and r11, r8
or r11, r9
mov qword [rcx + r10*8 + 8], r11
add r10, 2
cmp rax, r10
jne 0x140031530
jmp 0x140031410
and r10d, 0x3f
lea r9, [r12 - 1]
mov eax, r10d
sub r9, r13
jbe 0x140031776
mov r8d, 0x40
sub r8d, r10d
mov rcx, r13
not rcx
add rcx, r12
mov r10, r13
cmp rcx, 3
jbe 0x140031652
lea r10, [rdx + r12*8]
cmp r15, r10
jae 0x1400315d3
lea r10, [r12*8]
lea r11d, [r13*8]
sub r10, r11
lea rdi, [r15 + r10]
add rdi, 0xfffffffffffffff8
add r11, rdx
mov r10, r13
cmp r11, rdi
jb 0x140031652
mov r11, rcx
and r11, 0xfffffffffffffffc
mov r10, r11
or r10, r13
movd xmm0, eax
movd xmm1, r8d
lea rdi, [rdx + r13*8]
add rdi, 0x18
xor r14d, r14d
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + r14*8 - 0x18]
movdqu xmm3, xmmword [rdi + r14*8 - 0x10]
movdqu xmm4, xmmword [rdi + r14*8 - 8]
movdqu xmm5, xmmword [rdi + r14*8]
psrlq xmm2, xmm0
psrlq xmm4, xmm0
psllq xmm3, xmm1
por xmm3, xmm2
psllq xmm5, xmm1
por xmm5, xmm4
movdqu xmmword [r15 + r14*8], xmm3
movdqu xmmword [r15 + r14*8 + 0x10], xmm5
add r14, 4
cmp r11, r14
jne 0x140031600
cmp rcx, r11
je 0x1400316e0
mov ecx, r10d
sub ecx, r12d
mov r11, r10
test cl, 1
jne 0x140031685
mov rdi, qword [rdx + r10*8]
mov r14, qword [rdx + r10*8 + 8]
mov ecx, eax
shr rdi, cl
lea r11, [r10 + 1]
mov ecx, r8d
shl r14, cl
or r14, rdi
mov rcx, r10
sub rcx, r13
mov qword [r15 + rcx*8], r14
lea rcx, [r12 - 2]
cmp rcx, r10
je 0x1400316e0
inc r11
shl r13d, 3
mov r10, r15
sub r10, r13
nop dword [rax]
mov rdi, qword [rdx + r11*8 - 8]
mov r14, qword [rdx + r11*8]
mov ecx, eax
shr rdi, cl
mov ecx, r8d
shl r14, cl
or r14, rdi
mov qword [r10 + r11*8 - 8], r14
mov rdi, qword [rdx + r11*8]
mov r14, qword [rdx + r11*8 + 8]
mov ecx, eax
shr rdi, cl
mov ecx, r8d
shl r14, cl
or r14, rdi
mov qword [r10 + r11*8], r14
add r11, 2
cmp r12, r11
jne 0x1400316a0
mov rdx, qword [rdx + r12*8 - 8]
mov ecx, eax
shr rdx, cl
mov qword [r15 + r9*8], rdx
mov r14, qword [rsp + 0x38]
mov edi, dword [rsp + 0x30]
jmp 0x1400314a6
mov r9, rax
and r9, 0xfffffffffffffffc
movq xmm0, rsi
pshufd xmm0, xmm0, 0x44
movq xmm1, r8
pshufd xmm1, xmm1, 0x44
xor r10d, r10d
nop word [rax + rax]
movdqu xmm2, xmmword [rcx + r10*8]
movdqu xmm3, xmmword [rcx + r10*8 + 0x10]
movdqu xmm4, xmmword [rdx + r10*8]
movdqu xmm5, xmmword [rdx + r10*8 + 0x10]
pand xmm4, xmm0
pand xmm5, xmm0
pand xmm2, xmm1
por xmm2, xmm4
pand xmm3, xmm1
por xmm3, xmm5
movdqu xmmword [rcx + r10*8], xmm2
movdqu xmmword [rcx + r10*8 + 0x10], xmm3
add r10, 4
cmp r9, r10
jne 0x140031720
cmp r9, rax
je 0x140031410
jmp 0x1400314f1
mov rdx, qword [rdx + r12*8 - 8]
mov ecx, eax
shr rdx, cl
mov qword [r15 + r9*8], rdx
jmp 0x1400314a6
mov ebp, 1
cmp byte [r14 + 0x28], 0
jne 0x1400317ae
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
mov eax, ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x20], 0x168
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_bn.c.inc
xor ebp, ebp
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.1400885a0
cmp byte [r14 + 0x28], 0
jne 0x1400317ae
jmp 0x140031795