Function at 0x140051640
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
cmp dword [r8 + 0x10], 0
jne 0x140051661
mov rbx, r9
cmp dword [r9 + 0x10], 0
je 0x140051697
mov dword [rsp + 0x20], 0x1cd
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.140044b10
mov eax, esi
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movsxd rax, dword [rbx + 8]
test rax, rax
je 0x140051795
mov r12, r8
mov r15, rcx
mov r14, rdx
mov rcx, qword [rbx]
cmp eax, 4
jae 0x1400516bc
xor edx, edx
xor r8d, r8d
jmp 0x140051710
mov rdx, rax
and rdx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop
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 0x1400516d0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp rdx, rax
je 0x14005171c
nop word cs:[rax + rax]
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140051710
test r8, r8
je 0x140051795
mov rdx, r14
mov rax, r15
mov r8, r12
mov rbp, qword [rsp + 0xc8]
cmp byte [rbp + 0x28], 0
jne 0x1400517cf
mov rcx, qword [rbp + 0x10]
mov rsi, qword [rbp + 0x20]
cmp rcx, qword [rbp + 0x18]
jne 0x1400517b8
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x1400517c6
mov rax, rdi
shr rax, 0x3d
jne 0x1400517c6
lea rdx, [rdi*8]
mov rcx, qword [rbp + 8]
call fcn.14008beb0
mov r8, r12
mov rdx, r14
test rax, rax
je 0x1400517c6
mov qword [rbp + 8], rax
mov qword [rbp + 0x18], rdi
mov rcx, qword [rbp + 0x10]
jmp 0x1400517bc
mov dword [rsp + 0x20], 0x1d1
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor esi, esi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
jmp 0x14005167f
mov rax, qword [rbp + 8]
mov qword [rax + rcx*8], rsi
inc qword [rbp + 0x10]
jmp 0x1400517cc
mov word [rbp + 0x28], 0x101
mov rax, r15
test rax, rax
je 0x1400517e1
cmp rax, r8
je 0x1400517e1
mov rdi, rax
cmp rax, rbx
jne 0x1400517f2
mov rcx, rbp
call fcn.14004faf0
mov r8, r12
mov rdx, r14
mov rdi, rax
test rdx, rdx
je 0x140051804
cmp rdx, r8
je 0x140051804
mov r13, rdx
cmp rdx, rbx
jne 0x14005180f
mov rcx, rbp
call fcn.14004faf0
mov r13, rax
mov rcx, rbp
call fcn.14004faf0
mov qword [rsp + 0x38], rax
xor esi, esi
test rdi, rdi
je 0x140051c61
test r13, r13
je 0x140051c61
cmp qword [rsp + 0x38], 0
je 0x140051c61
movsxd rdx, dword [r12 + 8]
mov rcx, rdi
call fcn.14004dbf0
test eax, eax
je 0x140051c61
movsxd rdx, dword [rbx + 8]
mov rcx, r13
call fcn.14004dbf0
test eax, eax
je 0x140051c61
movsxd rdx, dword [rbx + 8]
mov rcx, qword [rsp + 0x38]
call fcn.14004dbf0
test eax, eax
je 0x140051c61
movsxd r8, dword [r12 + 8]
mov rbp, rdi
xor edi, edi
mov eax, 0
test r8, r8
je 0x1400518a3
shl r8, 3
mov rcx, qword [rbp]
xor edx, edx
call fcn.14025c7b0
mov eax, dword [r12 + 8]
mov esi, dword [rsp + 0xc0]
mov dword [rbp + 8], eax
mov qword [rsp + 0x30], rbp
mov dword [rbp + 0x10], 0
movsxd r8, dword [rbx + 8]
test r8, r8
je 0x1400518d4
shl r8, 3
mov rcx, qword [r13]
xor edx, edx
call fcn.14025c7b0
mov edi, dword [rbx + 8]
mov dword [r13 + 8], edi
mov dword [r13 + 0x10], 0
mov rcx, r12
mov eax, dword [r12 + 8]
test esi, esi
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r12
je 0x140051938
dec esi
shr esi, 6
cmp esi, eax
cmovge esi, eax
test esi, esi
mov rdi, qword [rsp + 0x30]
je 0x140051934
movsxd rdx, eax
movsxd r8, esi
shl r8, 3
mov rcx, qword [r13]
shl rdx, 3
add rdx, qword [r12]
sub rdx, r8
call fcn.14025bfc0
mov rcx, r12
mov eax, dword [r12 + 8]
not esi
jmp 0x140051942
mov esi, 0xffffffff
mov rdi, qword [rsp + 0x30]
add eax, esi
js 0x140051c16
mov ebp, eax
jmp 0x14005195d
lea rax, [rbp - 1]
test ebp, ebp
mov rbp, rax
jle 0x140051c16
mov r15d, 0x3f
jmp 0x14005198f
not r14d
and r14d, 1
mov ecx, r15d
shl r14, cl
mov rdi, qword [rsp + 0x30]
mov rax, qword [rdi]
or qword [rax + rbp*8], r14
sub r15, 1
jb 0x14005194e
movsxd rcx, dword [rbx + 8]
test rcx, rcx
je 0x140051a40
mov rax, qword [r13]
xor r14d, r14d
cmp ecx, 4
jb 0x140051a20
nop dword [rax + rax]
mov rdx, qword [rax]
mov r8, qword [rax + 8]
mov r9, rdx
shr r9, 0x3f
add rdx, rdx
mov r10, r8
shr r10, 0x3f
add r8, r8
mov r11, qword [rax + 0x10]
mov rsi, r11
shr rsi, 0x3f
add r11, r11
mov rdi, qword [rax + 0x18]
mov r12, rdi
shr r12, 0x3f
add rdi, rdi
add rdx, r14
mov qword [rax], rdx
adc r8, r9
mov qword [rax + 8], r8
adc r11, r10
adc rdi, rsi
mov qword [rax + 0x10], r11
mov r14, r12
adc r14, 0
mov qword [rax + 0x18], rdi
add rax, 0x20
add rcx, 0xfffffffffffffffc
cmp rcx, 4
jae 0x1400519b0
test rcx, rcx
je 0x140051ab7
test cl, 1
jne 0x140051a50
mov rdx, rcx
mov r8, r14
cmp rcx, 1
jne 0x140051a78
jmp 0x140051ab7
xor r14d, r14d
jmp 0x140051ab7
mov rdx, qword [rax]
xor r8d, r8d
add r14, rdx
setb r8b
add r14, rdx
adc r8, 0
mov qword [rax], r14
add rax, 8
lea rdx, [rcx - 1]
mov r14, r8
cmp rcx, 1
je 0x140051ab7
xor ecx, ecx
mov r14, r8
nop dword [rax]
xor r8d, r8d
add r14, qword [rax + rcx*8]
setb r8b
add r14, qword [rax + rcx*8]
mov qword [rax + rcx*8], r14
adc r8, qword [rax + rcx*8 + 8]
setb r9b
movzx r14d, r9b
add r8, qword [rax + rcx*8 + 8]
adc r14, 0
mov qword [rax + rcx*8 + 8], r8
add rcx, 2
cmp rdx, rcx
jne 0x140051a80
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rax, qword [rax + rbp*8]
xor ecx, ecx
bt rax, r15
setb cl
mov rax, qword [r13]
or qword [rax], rcx
movsxd rsi, dword [rbx + 8]
mov rax, qword [rsp + 0x38]
mov rdi, qword [rax]
mov r8, qword [rbx]
mov r12, qword [r13]
mov rcx, rdi
mov rdx, r12
mov r9, rsi
call fcn.14004e740
sub r14, rax
test rsi, rsi
je 0x140051970
mov rax, r14
mov rcx, rax
not rcx
cmp esi, 4
jb 0x140051b24
lea rdx, [rdi + rsi*8]
cmp r12, rdx
jae 0x140051b9b
lea rdx, [r12 + rsi*8]
cmp rdi, rdx
jae 0x140051b9b
xor edx, edx
mov r8, rdx
test sil, 1
je 0x140051b4b
mov r8, qword [r12 + rdx*8]
and r8, rax
mov r9, qword [rdi + rdx*8]
and r9, rcx
or r9, r8
mov qword [r12 + rdx*8], r9
mov r8, rdx
or r8, 1
lea r9, [rsi - 1]
cmp rdx, r9
je 0x140051970
nop dword [rax + rax]
mov rdx, qword [r12 + r8*8]
and rdx, rax
mov r9, qword [rdi + r8*8]
and r9, rcx
or r9, rdx
mov qword [r12 + r8*8], r9
mov rdx, qword [r12 + r8*8 + 8]
and rdx, rax
mov r9, qword [rdi + r8*8 + 8]
and r9, rcx
or r9, rdx
mov qword [r12 + r8*8 + 8], r9
add r8, 2
cmp rsi, r8
jne 0x140051b60
jmp 0x140051970
mov rdx, rsi
and rdx, 0xfffffffffffffffc
movq xmm0, rax
pshufd xmm0, xmm0, 0x44
movq xmm1, rcx
pshufd xmm1, xmm1, 0x44
xor r8d, r8d
nop dword [rax]
movdqu xmm2, xmmword [rdi + r8*8]
movdqu xmm3, xmmword [rdi + r8*8 + 0x10]
movdqu xmm4, xmmword [r12 + r8*8]
movdqu xmm5, xmmword [r12 + r8*8 + 0x10]
pand xmm4, xmm0
pand xmm5, xmm0
pand xmm2, xmm1
por xmm2, xmm4
pand xmm3, xmm1
por xmm3, xmm5
movdqu xmmword [r12 + r8*8], xmm2
movdqu xmmword [r12 + r8*8 + 0x10], xmm3
add r8, 4
cmp rdx, r8
jne 0x140051bc0
cmp rdx, rsi
je 0x140051970
jmp 0x140051b26
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140051c2d
mov rdx, rdi
call fcn.14004eb20
test rax, rax
je 0x140051c53
mov rcx, qword [rsp + 0x40]
test rcx, rcx
mov rbp, qword [rsp + 0xc8]
je 0x140051c4c
mov rdx, r13
call fcn.14004eb20
test rax, rax
je 0x140051c5f
mov esi, 1
jmp 0x140051c61
xor esi, esi
mov rbp, qword [rsp + 0xc8]
jmp 0x140051c61
xor esi, esi
cmp byte [rbp + 0x28], 0
jne 0x140051684
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
lea rdx, [rcx - 1]
mov qword [rbp + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rbp + 0x20], rax
jmp 0x140051684