Function at 0x140084480
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 r13, r9
mov rbp, r8
mov rsi, rdx
mov r15, rcx
mov rbx, qword [rsp + 0xe0]
mov edx, dword [r8 + 8]
mov eax, edx
sar eax, 0x1f
and eax, edx
lea ecx, [rdx + 1]
nop word cs:[rax + rax]
test edx, edx
jle 0x1400844d8
mov r8, qword [rbp]
dec ecx
cmp qword [r8 + rdx*8 - 8], 0
lea rdx, [rdx - 1]
je 0x1400844c0
jmp 0x1400844da
mov ecx, eax
mov edx, dword [r13 + 8]
movsxd rax, edx
mov r9d, eax
sar r9d, 0x1f
and r9d, eax
lea r8d, [rax + 1]
mov r10, rdx
nop word cs:[rax + rax]
test r10d, r10d
jle 0x14008451e
mov r11, qword [r13]
dec r8d
cmp qword [r11 + r10*8 - 8], 0
lea r10, [r10 - 1]
je 0x140084500
test ecx, ecx
jg 0x140084525
jmp 0x140084536
mov r8d, r9d
test ecx, ecx
jle 0x140084536
mov r9, qword [rbp]
dec ecx
cmp qword [r9 + rcx*8], 0
je 0x1400845e3
test r8d, r8d
jle 0x14008454d
mov rcx, qword [r13]
dec r8d
cmp qword [rcx + r8*8], 0
je 0x1400845e3
test rdx, rdx
je 0x14008460b
mov rcx, qword [r13]
xor edx, edx
xor r8d, r8d
nop
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140084560
test r8, r8
je 0x14008460b
mov qword [rsp + 0x60], rsi
cmp byte [rbx + 0x28], 0
jne 0x140084647
mov rcx, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rcx, qword [rbx + 0x18]
jne 0x140084633
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x140084641
mov rax, rdi
shr rax, 0x3d
jne 0x140084641
lea rdx, [rdi*8]
mov rcx, qword [rbx + 8]
call fcn.1400ae2f0
test rax, rax
je 0x140084641
mov qword [rbx + 8], rax
mov qword [rbx + 0x18], rdi
mov rcx, qword [rbx + 0x10]
jmp 0x140084637
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, 0x6f
call fcn.1400bacd0
jmp 0x140084bcc
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.1400bacd0
jmp 0x140084bcc
mov rax, qword [rbx + 8]
mov qword [rax + rcx*8], rsi
inc qword [rbx + 0x10]
jmp 0x140084647
mov word [rbx + 0x28], 0x101
mov rcx, rbx
call fcn.140084300
mov qword [rsp + 0x40], rax
mov rcx, rbx
call fcn.140084300
mov qword [rsp + 0x28], rax
mov rcx, rbx
call fcn.140084300
mov r12, rax
test r15, r15
jne 0x14008467c
mov rcx, rbx
call fcn.140084300
mov r15, rax
mov qword [rsp + 0x30], r15
test r12, r12
je 0x140084ba2
cmp qword [rsp + 0x30], 0
je 0x140084ba2
mov edx, dword [r13 + 8]
mov eax, edx
sar eax, 0x1f
and eax, edx
lea ecx, [rdx + 1]
mov r9, rdx
nop word [rax + rax]
test r9d, r9d
jle 0x1400846c9
mov r8, qword [r13]
dec ecx
cmp qword [r8 + r9*8 - 8], 0
lea r9, [r9 - 1]
je 0x1400846b0
jmp 0x1400846d9
xor esi, esi
test edx, edx
jns 0x140084779
mov r8, qword [r13]
mov ecx, eax
movsxd rax, ecx
shl ecx, 6
mov rdx, qword [r8 + 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, r12
mov rdx, r13
call fcn.140084c20
test eax, eax
je 0x140084ba2
mov ecx, dword [r12 + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
lea edx, [rcx + 1]
mov r9, qword [rsp + 0x28]
nop dword [rax]
test ecx, ecx
jle 0x1400847c8
mov r8, qword [r12]
dec edx
cmp qword [r8 + rcx*8 - 8], 0
lea rcx, [rcx - 1]
je 0x1400847b0
jmp 0x1400847ca
mov edx, eax
mov dword [r12 + 8], edx
mov dword [r12 + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov rcx, r9
mov rdx, rbp
mov dword [rsp + 0x50], r8d
call fcn.140084c20
test eax, eax
je 0x140084ba2
mov rcx, qword [rsp + 0x28]
mov edx, dword [rcx + 8]
mov r9d, edx
sar r9d, 0x1f
and r9d, edx
lea eax, [rdx + 1]
nop
test edx, edx
jle 0x140084827
mov r8, qword [rcx]
dec eax
cmp qword [r8 + rdx*8 - 8], 0
lea rdx, [rdx - 1]
je 0x140084810
jmp 0x14008482a
mov eax, r9d
mov dword [rcx + 8], eax
mov dword [rcx + 0x10], 0
movsxd rdx, dword [r12 + 8]
lea r8d, [rdx + 1]
cmp eax, r8d
jle 0x14008486f
inc eax
movsxd rdx, eax
call fcn.140082450
test eax, eax
je 0x140084ba2
mov rdx, qword [rsp + 0x28]
mov rax, qword [rdx]
movsxd rcx, dword [rdx + 8]
mov qword [rax + rcx*8], 0
mov edi, dword [rdx + 8]
inc edi
jmp 0x1400848bc
add rdx, 2
call fcn.140082450
test eax, eax
je 0x140084ba2
mov rdx, qword [rsp + 0x28]
movsxd rax, dword [rdx + 8]
mov edi, dword [r12 + 8]
add edi, 2
cmp eax, edi
jge 0x1400848bc
nop word cs:[rax + rax]
mov rcx, qword [rdx]
mov qword [rcx + rax*8], 0
inc rax
movsxd rdi, dword [r12 + 8]
add rdi, 2
cmp rax, rdi
jl 0x1400848a0
mov dword [rdx + 8], edi
movsxd r8, dword [r12 + 8]
mov r15d, edi
sub r15d, r8d
mov rax, qword [r12]
cmp r8, 1
jne 0x1400848d8
xor ecx, ecx
jmp 0x1400848dd
mov rcx, qword [rax + r8*8 - 0x10]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rcx]
mov rsi, qword [rax + r8*8 - 8]
mov ebp, dword [rbp + 0x10]
mov eax, dword [r13 + 0x10]
xor eax, ebp
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x10], eax
lea eax, [r15 + 1]
movsxd rdx, eax
mov r14, r8
call fcn.140082450
test eax, eax
je 0x140084ba2
lea ecx, [r15 - 1]
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], ecx
mov dword [rsp + 0x54], ecx
movsxd r13, ecx
shl r13, 3
add r13, qword [rax]
lea rdx, [r14 + 1]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x68], rdx
call fcn.140082450
test eax, eax
je 0x140084ba2
mov qword [rsp + 0x58], r14
mov rax, qword [rsp + 0x30]
cmp dword [rax + 8], 0
mov dword [rsp + 0x4c], ebp
je 0x140084966
add r13, 0xfffffffffffffff8
jmp 0x14008496d
mov dword [rax + 0x10], 0
mov r11, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
cmp r15d, 2
jl 0x140084ada
movsxd rax, r15d
movsxd rcx, edi
mov rdx, rbx
lea rbx, [rbx + rax*8]
lea r15, [rdx + rcx*8]
add r15, 0xfffffffffffffff8
xor edi, edi
jmp 0x1400849b7
mov r14, qword [rsp + 0x38]
add r15, 0xfffffffffffffff8
mov qword [r13], rbp
inc edi
add r13, 0xfffffffffffffff8
cmp edi, dword [rsp + 0x54]
je 0x140084ada
mov rdx, qword [r15]
mov rbp, 0xffffffffffffffff
cmp rdx, rsi
je 0x140084a22
mov rax, qword [r15 - 8]
mov qword [rsp + 0x70], rsi
div qword [rsp + 0x70]
mov rcx, rdx
mov rbp, rax
mul r14
mov r8, qword [r15 - 0x10]
cmp r8, rax
mov r9, rcx
sbb r9, rdx
jae 0x140084a22
add rcx, rsi
dec rbp
mov r9, rbp
nop word cs:[rax + rax]
mov rbp, r9
cmp rcx, rsi
jb 0x140084a22
sub rax, r14
sbb rdx, 0
lea r10, [rcx + rsi]
lea r9, [rbp - 1]
cmp r8, rax
sbb rcx, rdx
mov rcx, r10
jb 0x140084a00
mov rdx, qword [r12]
mov rcx, qword [r11]
mov r14, qword [rsp + 0x58]
mov r8, r14
mov r9, rbp
call fcn.140082ce0
mov r11, qword [rsp + 0x40]
add rbx, 0xfffffffffffffff8
mov rcx, qword [r11]
mov qword [rcx + r14*8], rax
mov rcx, qword [rsp + 0x68]
test ecx, ecx
je 0x14008499a
mov rax, qword [r11]
xor edx, edx
sub r8, r8
jmp 0x140084a60
mov r8, qword [rbx + rdx*8]
sbb r8, qword [rax + rdx*8]
mov qword [rbx + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x140084a60
sbb r8, r8
test r8b, 1
mov r14, qword [rsp + 0x38]
je 0x14008499f
dec rbp
mov rcx, qword [rsp + 0x58]
test ecx, ecx
je 0x14008499f
mov rax, qword [r12]
xor edx, edx
sub r8, r8
jmp 0x140084ab0
mov r8, qword [rbx + rdx*8]
adc r8, qword [rax + rdx*8]
mov qword [rbx + rdx*8], r8
lea rdx, [rdx + 1]
dec rcx
jne 0x140084ab0
sbb r8, r8
test r8b, 1
je 0x14008499f
inc qword [r15]
jmp 0x14008499f
mov rdx, qword [rsp + 0x28]
mov eax, dword [rdx + 8]
mov r10d, eax
sar r10d, 0x1f
and r10d, eax
lea edi, [rax + 1]
mov r8, rax
mov r11, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x60]
mov esi, dword [rsp + 0x4c]
test r8d, r8d
jle 0x140084b1b
mov r9, qword [rdx]
dec edi
cmp qword [r9 + r8*8 - 8], 0
lea r8, [r8 - 1]
je 0x140084b00
mov dword [rdx + 8], edi
jmp 0x140084b2a
mov dword [rdx + 8], r10d
test eax, eax
js 0x140084b2a
mov dword [rdx + 0x10], 0
test rcx, rcx
je 0x140084b6d
mov r8d, dword [rsp + 0x50]
call fcn.140084dc0
test eax, eax
je 0x140084ba2
mov r9, qword [rsp + 0x60]
movsxd rax, dword [r9 + 8]
test rax, rax
mov r11, qword [rsp + 0x30]
je 0x140084b6d
mov rcx, qword [r9]
xor edx, edx
xor r8d, r8d
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140084b58
test r8, r8
je 0x140084b6d
mov dword [r9 + 0x10], esi
mov eax, dword [r11 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
lea edx, [rax + 1]
mov r8, rax
mov r10, qword [rsp + 0xe0]
test r8d, r8d
jle 0x140084bdf
mov r9, qword [r11]
dec edx
cmp qword [r9 + r8*8 - 8], 0
lea r8, [r8 - 1]
je 0x140084b86
mov dword [r11 + 8], edx
jmp 0x140084bef
xor edi, edi
mov r8, qword [rsp + 0xe0]
cmp byte [r8 + 0x28], 0
jne 0x140084bcc
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, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [r11 + 8], ecx
test eax, eax
js 0x140084bef
mov dword [r11 + 0x10], 0
mov edi, 1
cmp byte [r10 + 0x28], 0
jne 0x140084bcc
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 0x140084bcc