Function at 0x140098188
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbx, qword [rdx + 8]
lea rsi, [rdx + 0x28]
mov r15b, r9b
mov r12b, r8b
mov rdi, rdx
mov r14, rcx
mov al, byte [rbx + 0x44]
cmp al, 0x5c
jne 0x1400981ca
mov rax, qword [rsi]
or byte [rax - 3], 0x80
mov al, byte [rbx + 0x44]
cmp word [rbx + 0x10], 0x41
je 0x1400981d5
cmp al, 6
jne 0x1400981dc
mov rax, qword [rsi]
and byte [rax - 4], 0xbf
mov cl, byte [rbx + 0x44]
mov r10b, 8
lea eax, [rcx - 0x1d]
test al, 0xbf
jne 0x1400981f3
mov rax, qword [rsi]
or byte [rax - 4], r10b
mov cl, byte [rbx + 0x44]
cmp word [rbx + 0x10], 0x2f
mov r9b, 0x7f
jne 0x14009821f
cmp cl, 0x41
je 0x14009821f
mov rcx, qword [rsi]
cmp dword [rcx - 0x24], 0
jne 0x140098212
mov eax, dword [rdx]
mov dword [rcx - 0x24], eax
jmp 0x14009821f
and byte [rcx - 4], r9b
mov al, r15b
shl al, 7
or byte [rcx - 4], al
cmp byte [rbx + 0x44], 6
jne 0x140098240
cmp word [rbx + 0x10], 0x2f
je 0x140098240
mov rdx, qword [rsi]
mov al, r15b
shl al, 7
mov cl, byte [rdx - 4]
and cl, r9b
or cl, al
mov byte [rdx - 4], cl
mov r8b, 0xa
cmp byte [rbx + 0x44], r8b
jne 0x14009826f
mov rax, qword [rbx + 0xc8]
test rax, rax
je 0x14009826f
cmp byte [rax + 0x44], r8b
je 0x14009826f
mov rdx, qword [rsi]
mov al, r15b
shl al, 7
mov cl, byte [rdx - 4]
and cl, r9b
or cl, al
mov byte [rdx - 4], cl
mov ebp, 1
cmp byte [rbx + 0x44], bpl
jne 0x140098288
mov rcx, qword [rsi]
cmp dword [rcx - 0x14], 0
jne 0x140098288
mov eax, dword [rdi]
mov dword [rcx - 0x14], eax
mov edx, 4
lea r9d, [rdx - 2]
cmp byte [rbx + 0x44], r8b
jne 0x1400982e6
cmp word [rbx + 0x10], 0x3c
jne 0x1400982e6
test byte [rbx + 0x40], r10b
jne 0x1400982df
mov rax, qword [rbx + 0xd0]
mov rcx, rax
test rax, rax
je 0x1400982e6
cmp word [rcx + 0x10], dx
jne 0x1400982c7
mov rcx, qword [rcx + 0xd0]
test rcx, rcx
jne 0x1400982b3
jmp 0x1400982e6
cmp word [rax + 0x10], dx
jne 0x1400982d9
mov rax, qword [rax + 0xd0]
test rax, rax
jne 0x1400982c7
test byte [rax + 0x40], r10b
je 0x1400982e6
mov rax, qword [rsi]
or byte [rax - 2], r9b
cmp byte [r14 + 0x68], 0
je 0x140098303
cmp word [rbx + 0x10], 0x3c
jne 0x1400982fc
mov rcx, qword [rsi]
mov eax, dword [rdi]
mov dword [rcx - 0x20], eax
cmp byte [r14 + 0x68], 0
jne 0x140098354
cmp word [rbx + 0x10], 0x3d
je 0x140098354
mov rax, qword [rbx + 0xc8]
test rax, rax
je 0x140098354
cmp word [rax + 0x10], dx
jne 0x140098345
cmp byte [rax + 0x44], 0x30
je 0x140098334
mov rcx, qword [rax + 0xd0]
test rcx, rcx
je 0x140098334
cmp dword [rcx + 0x48], 0
jbe 0x140098340
mov rax, qword [rax + 0xc8]
test rax, rax
jne 0x140098316
test rax, rax
je 0x140098354
cmp word [rax + 0x10], 0x3c
jne 0x140098354
mov rcx, qword [rsi]
mov eax, dword [rdi]
mov dword [rcx - 0x20], eax
mov rcx, rbx
call fcn.140087820
test al, al
jne 0x1400983b7
mov dl, byte [rbx + 0x44]
cmp dl, 0x4f
jne 0x140098403
cmp qword [rbx + 0x20], rbp
jb 0x140098387
mov rax, qword [rbx + 0x18]
cmp byte [rax], 0x7d
jne 0x14009837f
xor eax, eax
jmp 0x140098383
sbb eax, eax
or eax, ebp
test eax, eax
je 0x1400983b7
movzx ecx, word [rbx + 0x10]
lea eax, [rcx - 0x14]
mov r8d, 0xfff9
test r8w, ax
jne 0x1400983a0
cmp cx, 0x1a
jne 0x1400983b7
cmp dl, 0x4d
je 0x1400983b7
cmp dl, 0x43
je 0x1400983b7
mov eax, dword [rdi + 0x18]
cmp dword [rbx + 0x78], eax
cmovb eax, dword [rbx + 0x78]
mov dword [rdi + 0x18], eax
movzx eax, word [rbx + 0x10]
sub ax, 0x19
cmp ax, 0x2d
ja 0x140098424
movabs rcx, 0x200000000801
bt rcx, rax
jae 0x140098424
cmp byte [rbx + 0x44], 0x2f
ja 0x1400983ef
movzx eax, byte [rbx + 0x44]
movabs rcx, 0x900000040000
bt rcx, rax
jb 0x140098424
cmp byte [rbx + 0x44], 0x52
je 0x140098424
cmp qword [rbx + 0xb8], 0
jne 0x14009841c
xor ecx, ecx
jmp 0x14009841e
cmp dl, 0x13
jne 0x140098387
movzx ecx, word [rbx + 0x10]
cmp cx, 0x33
jne 0x14009838b
jmp 0x1400983b7
mov ecx, dword [rdi]
mov rax, qword [rsi]
mov dword [rax - 0x18], ecx
cmp byte [rbx + 0x44], 0x48
jne 0x140098431
mov rax, qword [rsi]
or byte [rax - 3], 8
cmp byte [rbx + 0x44], 0xf
mov edx, 2
lea r8d, [rdx + 2]
jne 0x1400984d7
mov al, byte [r14 + 0x69]
cmp al, dl
je 0x1400984a2
sub al, bpl
neg al
mov rax, qword [rsi]
sbb ecx, ecx
and ecx, edx
add ecx, dword [rdi]
mov dword [rax - 0x30], ecx
mov rcx, qword [rsi]
mov eax, dword [rcx - 0x30]
mov dword [rcx - 0x28], eax
mov rcx, qword [rsi]
sub rcx, r8
mov al, byte [rcx]
cmp byte [r14 + 0xc3], bpl
jbe 0x14009849e
or al, 8
mov byte [rcx], al
mov rdx, qword [rsi]
mov al, byte [r14 + 0xc3]
sub al, 3
neg al
mov al, byte [rdx - 4]
sbb cl, cl
and al, 0xef
and cl, 0x10
or cl, al
mov byte [rdx - 4], cl
lea edx, [r8 - 2]
jmp 0x1400984a2
and al, 0xef
mov byte [rcx], al
cmp byte [rbx + 0x44], 0xf
jne 0x1400984d7
cmp byte [r14 + 0x69], dl
jne 0x1400984d7
mov ecx, dword [r14 + 0xb4]
add ecx, dword [rdi + 0x3c]
mov rax, qword [rsi]
mov dword [rax - 0x30], ecx
mov rcx, qword [rsi]
mov eax, dword [rcx - 0x30]
mov dword [rcx - 0x28], eax
cmp byte [r14 + 0xc3], bpl
jbe 0x1400984d7
mov rax, qword [rsi]
or byte [rax - 4], 8
cmp byte [rbx + 0x44], 0x1d
jne 0x1400984ed
mov ecx, dword [r14 + 0xb4]
mov rax, qword [rsi]
add ecx, dword [rdi + 0x3c]
mov dword [rax - 0x30], ecx
mov al, byte [rbx + 0x44]
sub al, 6
test al, 0xfb
jne 0x140098508
test r15b, r15b
je 0x140098508
mov edx, dword [rdi]
mov rax, qword [rsi]
inc edx
add edx, dword [rbx + 0x50]
mov dword [rax - 0x28], edx
mov al, byte [rbx + 0x44]
sub al, 0x2c
test al, 0xfd
jne 0x140098519
mov rcx, qword [rsi]
mov eax, dword [rdi]
mov dword [rcx - 0x2c], eax
mov rbp, qword [rbx + 0xc8]
jmp 0x140098530
cmp word [rbp + 0x10], r8w
jne 0x140098535
mov rbp, qword [rbp + 0xc8]
test rbp, rbp
jne 0x140098522
test rbp, rbp
je 0x140098657
mov r10b, 0x20
cmp word [rbx + 0x10], r8w
je 0x1400985fc
cmp word [rbp + 0x10], 0x17
je 0x14009855d
cmp byte [rbp + 0x44], 0
jne 0x1400985fc
cmp byte [rbp + 0x44], 0x13
je 0x1400985fc
mov r8, qword [rdi + 0x20]
movabs r11, 0x4924924924924925
mov rcx, qword [rdi + 0x28]
mov rax, r11
sub rcx, r8
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, 1
jbe 0x1400985fc
mov rax, qword [rsi]
test byte [rax - 3], 0x10
jne 0x1400985fc
imul rax, rdx, 0x38
test byte [rax + r8 - 0x3b], r10b
je 0x1400985d3
test r15b, r15b
je 0x1400985d3
lea r9d, [rdx - 1]
xor r8d, r8d
test r9d, r9d
je 0x1400985d3
mov ecx, r8d
inc r8d
imul rdx, rcx, 0x38
mov rcx, qword [rdi + 0x20]
or byte [rdx + rcx + 0x34], r10b
cmp r8d, r9d
jne 0x1400985bb
mov r8, qword [rdi + 0x20]
mov rax, r11
mov rcx, qword [rdi + 0x28]
sub rcx, r8
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0x38
and byte [rax + r8 - 0x3b], 0xdf
mov al, byte [rbp + 0x44]
sub al, 6
test al, 0xfb
je 0x14009862f
movzx eax, word [rbp + 0x10]
sub ax, 0x15
cmp ax, 0x2c
ja 0x140098657
movabs rcx, 0x110000000001
bt rcx, rax
jae 0x140098657
cmp byte [rbp + 0x44], 0x13
je 0x140098657
cmp byte [rbp + 0x44], 0x3d
je 0x140098657
test r15b, r15b
jne 0x140098646
mov r8, r14
mov rdx, rbx
mov rcx, rbp
call fcn.140097690
test al, al
jne 0x140098649
xor r10b, r10b
mov rcx, qword [rsi]
mov al, byte [rcx - 3]
and al, 0xdf
or al, r10b
mov byte [rcx - 3], al
mov r8b, r15b
mov rdx, rdi
mov rcx, r14
call fcn.1400976b4
mov rdx, rdi
mov rcx, r14
call fcn.140097a94
mov rax, qword [rsi]
mov r8b, r15b
mov rdx, rdi
mov rcx, r14
test byte [rax - 4], 0x60
sete sil
call fcn.140097c18
mov rdx, rdi
mov rcx, r14
call fcn.140097a54
cmp byte [rbx + 0x44], 0x40
mov edx, 1
jne 0x1400986ac
cmp dword [rdi + 0x1c], 0
jne 0x1400986ac
mov eax, dword [rdi]
add eax, edx
mov dword [rdi + 0x1c], eax
cmp byte [rbx + 0x44], 0x58
jne 0x1400986be
cmp dword [rdi + 0x1c], 0
jne 0x1400986be
mov eax, dword [rdi]
add eax, edx
jmp 0x1400986e1
movzx ecx, word [rbx + 0x10]
lea eax, [rcx - 0xd]
cmp ax, dx
jbe 0x1400986d9
lea eax, [rcx - 0x10]
mov r9d, 2
cmp ax, r9w
ja 0x1400986e6
cmp dword [rdi + 0x1c], 0
jne 0x1400986e6
mov eax, dword [rdi]
mov dword [rdi + 0x1c], eax
jmp 0x14009870a
lea eax, [rcx - 4]
cmp ax, dx
jbe 0x14009870a
cmp cx, 0x42
je 0x14009870a
cmp cx, 0xf
je 0x140098706
cmp cx, 0xc
jbe 0x140098706
cmp cx, 0x13
jb 0x14009870a
and dword [rdi + 0x1c], 0
mov eax, dword [rbx + 0x50]
mov r9b, r12b
add dword [rdi], eax
mov r8, rdi
mov rax, qword [rdi + 8]
mov rdx, rbx
mov byte [rsp + 0x28], r15b
mov byte [rsp + 0x20], sil
mov rcx, qword [rax + 0xd0]
mov qword [rdi + 8], rcx
mov rcx, r14
call fcn.1400974c8
mov rcx, qword [rbx + 0x28]
mov esi, eax
test rcx, rcx
je 0x140098754
mov r10, qword [rcx]
mov r9b, r12b
mov r8, r14
mov rdx, rdi
call qword [r10 + 0x10]
test rbp, rbp
je 0x140098773
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x140098773
mov rax, qword [rcx]
mov r9b, r12b
mov r8, r14
mov rdx, rdi
call qword [rax + 0x18]
add esi, eax
mov rbx, qword [rsp + 0x50]
mov eax, esi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r12
ret