Function at 0x140061f70
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rsi, r9
mov r15d, r8d
mov rdi, rdx
mov rbp, rcx
mov rax, qword [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov dword [rcx], 0
lea rcx, [0x1403a17e8]
lea rdx, [0x140053a70]
call fcn.1400a1270
lea rdx, [0x1403a17f0]
mov rcx, rdi
call fcn.1400544c0
mov r14d, 1
test eax, eax
jle 0x1400620a5
mov r12d, dword [rdi + 8]
test r12d, r12d
jle 0x14006207f
mov r13, qword [rdi]
mov rbx, qword [r13]
test bl, 1
jne 0x1400620c6
xor rbx, 2
cmp r12d, 1
je 0x140062092
mov eax, 1
cmp r12d, 5
jb 0x140062070
lea rcx, [r12 - 1]
mov rdx, rcx
and rdx, 0xfffffffffffffffc
lea rax, [rdx + 1]
movq xmm1, rbx
pxor xmm0, xmm0
xor r8d, r8d
nop word cs:[rax + rax]
movdqu xmm2, xmmword [r13 + r8*8 + 8]
por xmm1, xmm2
movdqu xmm2, xmmword [r13 + r8*8 + 0x18]
por xmm0, xmm2
add r8, 4
cmp rdx, r8
jne 0x140062030
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rbx, xmm1
cmp rcx, rdx
je 0x140062092
nop word cs:[rax + rax]
or rbx, qword [r13 + rax*8]
inc rax
cmp r12, rax
jne 0x140062070
jmp 0x140062092
test r12, r12
je 0x140062282
mov rax, qword [rdi]
mov rbx, qword [rax]
xor rbx, 2
xor eax, eax
test rbx, rbx
jne 0x1400620a2
xor eax, eax
cmp dword [rdi + 0x10], 0
sete al
mov dword [rbp], eax
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.140265fe0
mov eax, r14d
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
xor rcx, 3
cmp r12d, 1
je 0x14006214d
mov eax, 1
cmp r12d, 5
jb 0x140062140
lea rdx, [r12 - 1]
mov r8, rdx
and r8, 0xfffffffffffffffc
lea rax, [r8 + 1]
movq xmm1, rcx
pxor xmm0, xmm0
xor ecx, ecx
nop dword [rax]
movdqu xmm2, xmmword [r13 + rcx*8 + 8]
por xmm1, xmm2
movdqu xmm2, xmmword [r13 + rcx*8 + 0x18]
por xmm0, xmm2
add rcx, 4
cmp r8, rcx
jne 0x140062100
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rcx, xmm1
cmp rdx, r8
je 0x14006214d
nop word cs:[rax + rax]
or rcx, qword [r13 + rax*8]
inc rax
cmp r12, rax
jne 0x140062140
test rcx, rcx
jne 0x14006215c
cmp dword [rdi + 0x10], 0
je 0x1400623ba
cmp dword [rsp + 0xe0], 0
je 0x1400622c4
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x38], rsi
xor r15d, r15d
cmp r12d, 0x11
setge sil
mov r14w, 3
mov rcx, rdi
mov dx, 3
call fcn.1400575b0
test ax, ax
je 0x1400621ec
mov qword [rsp + 0x28], rbp
mov r15b, sil
shl r15, 9
add r15, 0x200
mov esi, 2
lea rbp, [0x1402e14b0]
nop word cs:[rax + rax]
movzx r14d, word [rbp + rsi*2]
mov rcx, rdi
mov edx, r14d
call fcn.1400575b0
test ax, ax
je 0x1400621de
inc rsi
cmp r15, rsi
jne 0x1400621c0
cmp rsi, r15
mov rbp, qword [rsp + 0x28]
jae 0x140062297
movzx eax, r14w
xor rbx, rax
cmp r12d, 2
jl 0x14006228c
mov eax, 1
cmp r12d, 5
mov r14d, 1
jb 0x140062270
lea rcx, [r12 - 1]
mov rdx, rcx
and rdx, 0xfffffffffffffffc
lea rax, [rdx + 1]
movq xmm1, rbx
pxor xmm0, xmm0
xor r8d, r8d
nop word [rax + rax]
movdqu xmm2, xmmword [r13 + r8*8 + 8]
por xmm1, xmm2
movdqu xmm2, xmmword [r13 + r8*8 + 0x18]
por xmm0, xmm2
add r8, 4
cmp rdx, r8
jne 0x140062230
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rbx, xmm1
cmp rcx, rdx
je 0x140062092
nop word [rax + rax]
or rbx, qword [r13 + rax*8]
inc rax
cmp r12, rax
jne 0x140062270
jmp 0x140062092
xor eax, eax
mov dword [rbp], eax
jmp 0x1400620a5
mov r14d, 1
jmp 0x140062092
mov r8, qword [rsp + 0xe8]
test r8, r8
mov rsi, qword [rsp + 0x38]
mov r15d, dword [rsp + 0x30]
je 0x1400622c4
mov ecx, 1
mov edx, 0xffffffff
call qword [rioctlsocket + 8]
test eax, eax
je 0x14006265d
test r15d, r15d
je 0x1400622dd
test rsi, rsi
je 0x140062319
xor r12d, r12d
cmp byte [rsi + 0x28], 0
jne 0x14006253b
jmp 0x14006234e
mov eax, dword [rdi + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov r8, rax
nop word [rax + rax]
test r8d, r8d
jle 0x1400623c6
mov rdx, qword [rdi]
lea r9, [r8 - 1]
cmp qword [rdx + r8*8 - 8], 0
mov r8, r9
je 0x1400622f0
mov rbx, rsi
inc r9d
mov ecx, r9d
jmp 0x1400623da
mov ecx, 0x30
call fcn.140098680
test rax, rax
je 0x140062508
mov r12, rax
pxor xmm0, xmm0
movdqu xmmword [rax + 0x1a], xmm0
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax], xmm0
mov rsi, rax
cmp byte [rsi + 0x28], 0
jne 0x14006253b
mov rcx, qword [rsi + 0x10]
mov rbx, qword [rsi + 0x20]
cmp rcx, qword [rsi + 0x18]
jne 0x1400624fa
mov r14, rsi
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov esi, 0x20
cmovne rsi, rax
cmp rsi, rcx
jbe 0x140062531
mov rax, rsi
shr rax, 0x3d
jne 0x140062531
lea rdx, [rsi*8]
mov rcx, qword [r14 + 8]
call fcn.140098700
test rax, rax
je 0x140062531
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rsi
mov rsi, r14
mov rcx, qword [r14 + 0x10]
jmp 0x1400624fe
mov dword [rbp], 1
jmp 0x1400620a5
mov r15d, 0x22
test eax, eax
jns 0x1400622c9
mov rbx, rsi
mov rdx, qword [rdi]
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
setne cl
cmove r8, rdx
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
setae dl
cmovb r9, r8
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
setae r8b
cmovb r10, r9
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor esi, esi
cmp r9, 4
cmovb r10, r9
setae sil
add esi, esi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea eax, [rax + r11*4]
add eax, 0xffffffc0
or eax, esi
cmp r10, 2
sbb eax, 0xffffffff
mov r15d, 3
cmp eax, 0xea2
mov rsi, rbx
jg 0x1400622c9
mov r15d, 4
cmp eax, 0x540
jg 0x1400622c9
mov r15d, 5
cmp eax, 0x1db
jg 0x1400622c9
mov r15d, 6
cmp eax, 0x18f
jg 0x1400622c9
mov r15d, 7
cmp eax, 0x15a
jg 0x1400622c9
mov r15d, 8
cmp eax, 0x133
jg 0x1400622c9
cmp eax, 0x37
mov eax, 0x1b
mov r15d, 0x22
cmovge r15d, eax
jmp 0x1400622c9
mov rax, qword [rsi + 8]
mov qword [rax + rcx*8], rbx
inc qword [rsi + 0x10]
jmp 0x14006253b
mov dword [rsp + 0x20], reloc.WS2_32.dll_WSAGetLastError
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_ctx.c
xor r14d, r14d
mov ecx, 3
xor edx, edx
mov r8d, 0x41
call fcn.1400490c0
jmp 0x1400620a5
mov rsi, r14
mov word [r14 + 0x28], 0x101
mov rcx, rsi
call fcn.140054a90
mov r13, rax
mov rcx, rdi
mov rdx, rsi
call fcn.140058100
mov rdi, rax
xor r14d, r14d
test r13, r13
je 0x140062695
test rdi, rdi
je 0x140062695
lea rcx, [rsp + 0x48]
mov rdx, rdi
mov r8, rsi
call fcn.140061230
test eax, eax
je 0x140062695
mov qword [rsp + 0x28], r12
movsxd rax, r15d
mov qword [rsp + 0x30], rax
mov r12d, 1
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
xor r14d, r14d
jmp 0x1400625e1
add r14, r15
xor eax, eax
cmp r12d, 0x10
lea ecx, [r12 + 1]
setb al
mov rdx, r14
mov r9, qword [rsp + 0x30]
xor rdx, r9
mov r8, r14
sub r8, r9
xor r8, r14
or r8, rdx
xor r8, r14
sar r8, 0x3f
or r8, rax
mov r12d, ecx
mov rdi, rbx
je 0x140062683
mov r8d, 2
mov rcx, r13
lea rdx, [rsp + 0x44]
mov r9, qword [rsp + 0x38]
call fcn.140062700
test eax, eax
je 0x140062665
movsxd r15, dword [rsp + 0x44]
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov r8, r13
mov rbx, rdi
mov r9, rdi
call fcn.140061610
xor edi, edi
test eax, eax
je 0x140062676
cmp dword [rsp + 0x40], 0
je 0x14006266a
mov r8, qword [rsp + 0xe8]
test r8, r8
je 0x1400625a3
lea edx, [r12 - 1]
mov ecx, 1
call qword [rioctlsocket + 8]
test eax, eax
jne 0x1400625a3
jmp 0x140062676
xor r14d, r14d
jmp 0x1400620a5
xor r14d, r14d
jmp 0x140062690
mov dword [rbp], 0
mov edi, 1
mov r14d, edi
mov r12, qword [rsp + 0x28]
mov rdi, rbx
jmp 0x140062695
mov dword [rbp], 1
mov r14d, 1
mov r12, qword [rsp + 0x28]
mov rcx, rdi
call fcn.140058520
cmp byte [rsi + 0x28], 0
jne 0x1400626bc
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
lea rdx, [rcx - 1]
mov qword [rsi + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rsi + 0x20], rax
test r12, r12
je 0x1400620a5
mov rcx, qword [r12]
lea rdx, [0x140084e20]
lea r8, [fcn.1400538f0]
call fcn.1400a0ac0
mov rcx, qword [r12 + 8]
call fcn.1400986b0
mov rcx, r12
call fcn.1400986b0
jmp 0x1400620a5