Function at 0x140451d90
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
mov rax, qword [r8]
mov qword [rsp + 0x30], rax
mov rax, qword [r8 + 8]
mov r12, rcx
mov rsi, rdx
mov dword [rsp + 0x2e8], r9d
mov qword [rsp + 0x28], rax
cmp eax, 0xfffffff6
jl 0x1404520d0
mov eax, dword [rsp + 0x28]
lea edx, [rax + 0xb]
cmp edx, 0x7fe
jg 0x140451f90
mov rax, qword [rsp + 0x30]
shl rdx, 0x34
mov ebx, r9d
add rax, rax
shr rax, 0xc
or rax, rdx
mov rdx, rax
mov qword [rsp + 0x78], rax
shr rdx, 0x34
lea edi, [rdx - 0x434]
lea rdx, [rax + rax]
movabs rax, 0x1ffffffffffffe
and rdx, rax
mov dword [rsp + 0x40], edi
bts rdx, 0x35
add rdx, 1
lea rbp, [rsp + 0x80]
xor eax, eax
mov ecx, 0x3f
mov r13d, 1
mov rdi, rbp
rep stosq qword [rdi], rax
mov eax, 1
mov qword [rsp + 0x80], rdx
mov edi, 1
mov word [rsp + 0x270], ax
mov eax, dword [rsp + 0x40]
sub eax, dword [rsp + 0x2e8]
neg ebx
mov dword [rsp + 0x38], eax
jne 0x140452141
movzx ebx, word [rsi + 0x1f0]
mov eax, dword [rsp + 0x38]
mov r11, rbx
test eax, eax
jle 0x140451fc0
and eax, 0x3f
mov r10d, eax
je 0x140451f08
mov eax, eax
mov r14d, 0x40
sub r14, rax
test rdi, rdi
je 0x140451f08
mov r15d, r14d
mov rax, rbp
lea r11, [rbp + rdi*8]
xor r9d, r9d
nop dword [rax]
mov r8, r9
mov r9, qword [rax]
mov ecx, r10d
add rax, 8
mov rdx, r9
shl rdx, cl
mov ecx, r15d
shr r8, cl
or rdx, r8
mov qword [rax - 8], rdx
cmp r11, rax
jne 0x140451eb0
mov ecx, r14d
shr r9, cl
test r9, r9
je 0x140451f08
cmp r13w, 0x3d
ja 0x140451f13
movzx eax, r13w
add r13d, 1
mov qword [rsp + rax*8 + 0x80], r9
movzx edi, r13w
mov word [rsp + 0x270], r13w
nop dword [rax]
cmp dword [rsp + 0x38], 0x3f
jg 0x1404524f0
cmp rbx, rdi
ja 0x1404521a0
cmp rdi, rbx
jbe 0x140451f49
jmp 0x140452230
sub rbx, 1
mov rax, qword [rbp + rbx*8]
cmp qword [rsi + rbx*8], rax
ja 0x140452428
jb 0x140452480
test rbx, rbx
jne 0x140451f30
mov rax, qword [rsp + 0x30]
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
mov qword [r12 + 8], rax
cmp eax, 0xfffffff6
jl 0x1404525d9
mov rbx, qword [rsp + 0x30]
mov eax, dword [rsp + 0x28]
shr rbx, 0xb
add eax, 0xb
mov dword [r12 + 8], eax
mov rax, rbx
and eax, 1
jmp 0x1404521d0
movabs rax, 0x7ff0000000000000
mov dword [rsp + 0x40], 0x3cb
mov ebx, r9d
movabs rdx, 0x20000000000001
mov qword [rsp + 0x78], rax
jmp 0x140451e24
je 0x140451f13
nop word cs:[rax + rax]
mov r13d, dword [rsp + 0x2e8]
sub r13d, dword [rsp + 0x40]
mov r9d, r13d
and r9d, 0x3f
je 0x140452068
mov eax, r9d
mov edx, 0x40
sub rdx, rax
mov qword [rsp + 0x38], rdx
test rbx, rbx
je 0x140451f1c
mov r15d, edx
mov rax, rsi
lea r14, [rsi + rbx*8]
xor r10d, r10d
mov r8, r10
mov r10, qword [rax]
mov ecx, r9d
add rax, 8
mov rdx, r10
shl rdx, cl
mov ecx, r15d
shr r8, cl
or rdx, r8
mov qword [rax - 8], rdx
cmp r14, rax
jne 0x140452010
movzx ecx, byte [rsp + 0x38]
shr r10, cl
test r10, r10
je 0x140452068
cmp r11w, 0x3d
ja 0x140451f13
movzx eax, r11w
add r11d, 1
mov qword [rsi + rax*8], r10
movzx ebx, r11w
mov word [rsi + 0x1f0], r11w
nop dword [rax]
cmp r13d, 0x3f
jbe 0x140451f13
shr r13, 6
lea rax, [r13 + rbx]
cmp rax, 0x3e
ja 0x140451f13
test r11w, r11w
je 0x140451f13
lea r8, [rbx*8]
lea rcx, [rsi + r13*8]
mov rdx, rsi
call sub.msvcrt.dll_memmove
xor edx, edx
mov rcx, rax
sub rcx, rsi
mov r8, rcx
mov rcx, rsi
call sub.msvcrt.dll_memset
movzx ebx, word [rsi + 0x1f0]
add rbx, r13
mov word [rsi + 0x1f0], bx
movzx ebx, bx
jmp 0x140451f13
mov ecx, 1
sub ecx, dword [rsp + 0x28]
cmp ecx, 0x3f
jg 0x140452260
mov rax, qword [rsp + 0x30]
mov ebx, r9d
shr rax, cl
lea rdx, [rax + rax + 1]
lea rbp, [rsp + 0x80]
mov qword [rsp + 0x78], rax
mov ecx, 0x3f
xor eax, eax
mov rdi, rbp
mov dword [rsp + 0x40], 0xfffffbcd
rep stosq qword [rdi], rax
mov qword [rsp + 0x80], rdx
mov eax, 0xfffffbcd
mov edx, 1
sub eax, dword [rsp + 0x2e8]
neg ebx
mov word [rsp + 0x270], dx
mov dword [rsp + 0x38], eax
je 0x1404522a0
cmp ebx, 0x86
jbe 0x1404525a2
lea r13, [0x14061cde0]
lea rdi, [rsp + 0x60]
jmp 0x140452172
sub ebx, 0x87
cmp ebx, 0x86
jbe 0x1404522f0
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], 5
call fcn.140452620
test al, al
jne 0x140452160
movzx edi, word [rsp + 0x270]
mov r13, rdi
jmp 0x140451e70
mov rsi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
mov qword [r12], rsi
mov qword [r12 + 8], rax
cmp eax, 0xfffffff6
jl 0x1404522b8
add eax, 0xb
shr rsi, 0xb
mov dword [r12 + 8], eax
mov rbx, rsi
mov eax, 1
add rbx, rax
movabs rax, 0x20000000000000
cmp rbx, rax
jne 0x140452468
mov eax, dword [rsp + 0x28]
xor ebx, ebx
add eax, 0xc
mov dword [r12 + 8], eax
mov qword [r12], rbx
cmp eax, 0x7fe
jle 0x140452210
mov dword [r12 + 8], 0x7ff
mov qword [r12], 0
mov rax, r12
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x28]
mov qword [r12], rdi
mov qword [r12 + 8], rax
cmp eax, 0xfffffff6
jl 0x140452270
add eax, 0xb
shr rdi, 0xb
mov dword [r12 + 8], eax
mov rbx, rdi
btr rbx, 0x34
jmp 0x1404521f4
mov edx, 1
xor eax, eax
mov ebx, r9d
jmp 0x1404520f2
mov ecx, 1
mov rbx, rdi
sub ecx, dword [rsp + 0x28]
shr rbx, cl
cmp ecx, 0x3f
jg 0x14045256a
xor eax, eax
mov qword [r12], rbx
mov dword [r12 + 8], eax
jmp 0x140452210
movzx ebx, word [rsi + 0x1f0]
mov edi, 1
mov r11, rbx
jmp 0x140451fd0
mov ecx, 1
sub ecx, dword [rsp + 0x28]
cmp ecx, 0x3f
jg 0x140452560
movabs rax, 0xfffffffffffff
mov rbx, qword [rsp + 0x30]
shr rbx, cl
add rbx, 1
cmp rbx, rax
seta al
movzx eax, al
jmp 0x14045228a
movzx eax, word [rsp + 0x270]
mov qword [rsp + 0x48], rax
mov r13, rax
cmp ebx, 0x1a
jbe 0x1404525d1
mov byte [rsp + 0x47], 0
mov r11d, r13d
movabs r9, 0x6765c793fa10079d
movzx edi, r11w
test rdi, rdi
je 0x140452380
mov rcx, rbp
lea r8, [rbp + rdi*8]
xor r10d, r10d
nop
mov rax, r9
mul qword [rcx]
xor r15d, r15d
add rax, r10
adc rdx, r15
mov qword [rcx], rax
add rcx, 8
mov r10, rdx
cmp r8, rcx
jne 0x140452330
test rdx, rdx
je 0x140452383
cmp r11w, 0x3d
jbe 0x1404524c0
cmp byte [rsp + 0x47], 0
je 0x140452578
mov word [rsp + 0x270], r11w
mov r13d, r11d
jmp 0x140451e70
xor r11d, r11d
sub ebx, 0x1b
cmp ebx, 0x1a
ja 0x14045231b
cmp byte [rsp + 0x47], 0
mov rdi, qword [rsp + 0x48]
je 0x1404523a7
mov word [rsp + 0x270], r11w
movzx edi, r11w
mov r13d, r11d
test ebx, ebx
je 0x140451e70
lea rax, [0x14061ce20]
mov r9, qword [rax + rbx*8]
test rdi, rdi
je 0x140451e70
mov rcx, rbp
lea r10, [rbp + rdi*8]
xor r8d, r8d
nop
mov rax, r9
mul qword [rcx]
xor r15d, r15d
add rax, r8
adc rdx, r15
mov qword [rcx], rax
add rcx, 8
mov r8, rdx
cmp r10, rcx
jne 0x1404523d0
test rdx, rdx
je 0x140451e70
cmp r13w, 0x3d
ja 0x140451e70
movzx eax, r13w
add r13d, 1
mov qword [rsp + rax*8 + 0x80], rdx
movzx edi, r13w
mov word [rsp + 0x270], r13w
jmp 0x140451e70
mov rax, qword [rsp + 0x30]
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
mov qword [r12 + 8], rax
cmp eax, 0xfffffff6
jl 0x1404522b8
mov eax, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
add eax, 0xb
shr rbx, 0xb
mov dword [r12 + 8], eax
mov eax, 1
jmp 0x1404521d0
mov eax, dword [r12 + 8]
btr rbx, 0x34
jmp 0x1404521f4
mov rax, qword [rsp + 0x30]
mov qword [r12], rax
mov rax, qword [rsp + 0x28]
mov qword [r12 + 8], rax
cmp eax, 0xfffffff6
jge 0x140452588
mov rbx, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [rsp + 0x28]
mov eax, 0
shr rbx, cl
cmp ecx, 0x40
cmovge rbx, rax
jmp 0x140452288
movzx eax, r11w
sub ebx, 0x1b
mov byte [rsp + 0x47], 1
add r11d, 1
mov qword [rsp + rax*8 + 0x80], rdx
cmp ebx, 0x1a
ja 0x14045231b
jmp 0x14045238b
movsxd rax, dword [rsp + 0x38]
shr rax, 6
mov r14, rax
lea rax, [rax + rdi]
cmp rax, 0x3e
ja 0x140451f13
test r13w, r13w
je 0x140451f13
lea r8, [rdi*8]
lea rcx, [rbp + r14*8]
mov rdx, rbp
call sub.msvcrt.dll_memmove
xor edx, edx
mov rcx, rax
sub rcx, rbp
mov r8, rcx
mov rcx, rbp
call sub.msvcrt.dll_memset
movzx edi, word [rsp + 0x270]
add rdi, r14
mov word [rsp + 0x270], di
movzx edi, di
jmp 0x140451f13
mov ebx, 1
jmp 0x140452288
xor ebx, ebx
xor eax, eax
jmp 0x14045228a
mov rdi, qword [rsp + 0x48]
jmp 0x140451e70
mov eax, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
add eax, 0xb
shr rbx, 0xb
mov dword [r12 + 8], eax
jmp 0x140452257
mov qword [rsp + 0x48], 1
mov r13d, 1
cmp ebx, 0x1a
ja 0x140452309
mov ebx, ebx
lea rax, [0x14061ce20]
mov edi, 1
mov r9, qword [rax + rbx*8]
jmp 0x1404523c3
movzx edi, ax
jmp 0x1404523a7
mov ecx, 1
sub ecx, dword [rsp + 0x28]
xor eax, eax
cmp ecx, 0x3f
jg 0x1404525f6
mov rbx, qword [rsp + 0x30]
shr rbx, cl
mov eax, ebx
and eax, 1
movzx eax, al
add rbx, rax
movabs rax, 0xfffffffffffff
cmp rbx, rax
seta al
movzx eax, al
jmp 0x14045228a