Function at 0x140049480
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r11, qword [r9]
mov esi, 0xa
mov qword [rsp + 0x70], rbx
movabs rax, 0xaaaaaaaaaaaaaaaa
mov rbx, qword [rsp + 0x88]
mov r15, r8
mov qword [rsp + 0x28], rbp
mov r10, qword [r11]
lea r12d, [rsi - 8]
mov qword [rsp + 0x20], r13
mov ebx, dword [rbx]
mov dword [rsp + 0xa8], ebx
and r10, rax
je 0x14004987a
test r10b, 0x2a
je 0x14004954c
movabs rax, 0xdddddddddddddddf
mov qword [r11], rax
test r12b, r10b
jne 0x14004954c
mov rax, qword [r11 + 0x10]
lea r8, [r11 + 0x10]
mov r9, r8
test r10b, 8
je 0x140049528
mov qword [r8 - 8], rax
lea rdx, [r8 - 8]
mov rax, qword [r8 + 8]
mov qword [r8], rax
add r8, 0x10
mov rax, qword [r8]
mov qword [rdx + 0x10], rax
add rdx, 0x18
jmp 0x14004955b
mov qword [r8 - 8], rax
lea rcx, [r8 - 8]
mov rax, qword [r8 + 0x10]
lea rdx, [rcx + 0x10]
add r8, 0x10
mov qword [r9], rax
mov rax, qword [r8 + 8]
mov qword [rdx], rax
add rdx, 8
jmp 0x14004955b
mov rax, qword [r11 + 0x20]
lea rdx, [r11 + 0x20]
mov qword [rdx - 8], rax
mov r8, rdx
movabs rax, 0x4000000000000000
add r8, 0x10
or r10, rax
mov r9, r10
shr r9, 6
test r9b, 0x3f
jne 0x1400495a8
nop dword [rax]
mov rax, qword [r8]
mov qword [rdx], rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [r8 + 0x20]
add r8, 0x30
mov qword [rdx + 0x18], rax
add rdx, 0x20
shr r9, 6
test r9b, 0x3f
je 0x140049580
movabs r13, 0xdddddddddddddddd
test r9, 0xffffffffffffffc0
je 0x14004962c
mov rcx, rdx
mov rax, r12
sub rcx, r11
sar rcx, 3
shl rax, cl
or rax, r13
mov qword [r11], rax
mov rax, qword [r8]
mov qword [rdx], rax
test r12b, r9b
je 0x1400495f2
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [r8 + 0x20]
jmp 0x14004961c
mov rax, qword [r8 + 0x10]
mov qword [rdx + 8], rax
test r9b, 8
je 0x140049610
mov rax, qword [r8 + 0x18]
mov qword [rdx + 0x10], rax
mov rax, qword [r8 + 0x20]
jmp 0x14004961c
mov rax, qword [r8 + 0x20]
mov qword [rdx + 0x10], rax
mov rax, qword [r8 + 0x28]
mov qword [rdx + 0x18], rax
add r8, 0x30
add rdx, 0x20
shr r9, 6
test r9b, 0x15
jne 0x14004965a
mov rax, qword [r8]
mov qword [rdx], rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [r8 + 0x20]
add r8, 0x30
mov qword [rdx + 0x18], rax
add rdx, 0x20
shr r9, 6
test r9b, 0x15
je 0x140049632
test r9b, 0x2a
je 0x1400496a5
mov rcx, rdx
mov rax, r12
sub rcx, r11
sar rcx, 3
shl rax, cl
or rax, r13
mov qword [r11], rax
mov rax, qword [r8]
mov qword [rdx], rax
test r12b, r9b
je 0x140049693
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov rcx, qword [r8 + 0x10]
mov qword [rdx + 0x10], rcx
jmp 0x1400496b3
mov rax, qword [r8 + 0x10]
mov qword [rdx + 8], rax
mov rcx, qword [r8 + 0x18]
mov qword [rdx + 0x10], rcx
jmp 0x1400496b3
mov rax, qword [r8]
mov qword [rdx], rax
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [r15 + rbx*8]
add rdx, 0x18
mov rbp, qword [rsp + 0x90]
mov r9, rbx
mov ebx, 5
mov rcx, rbp
mov r8d, ebx
mov qword [rdx], rax
add rdx, 8
nop dword [rax + rax]
mov rax, qword [rcx + 0x10]
lea rcx, [rcx + 0x30]
mov qword [rdx], rax
lea rdx, [rdx + 0x20]
mov rax, qword [rcx - 0x10]
mov qword [rdx - 0x10], rax
mov rax, qword [rcx]
mov qword [rdx - 8], rax
add r8d, 0xffffffff
jne 0x1400496e0
mov rax, qword [rcx + 0x10]
lea rdx, [r11 + 0x200]
mov qword [r15 + r9*8], rax
mov rax, rdx
sub rdx, 8
test r10b, 0x2a
jne 0x140049749
mov rcx, qword [rdx + 0x10]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x20]
add rdx, 0x30
mov qword [rax + 0x10], rcx
shr r10, 6
mov rcx, qword [rdx]
mov qword [rax + 0x18], rcx
add rax, 0x20
test r10b, 0x2a
je 0x140049720
test r10, 0xffffffffffffffc0
je 0x1400497b3
test r12b, r10b
je 0x14004976c
mov rcx, qword [rdx + 8]
mov qword [rax], rcx
mov rcx, qword [rdx + 0x10]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x20]
jmp 0x14004979c
mov rcx, qword [rdx + 0x10]
mov qword [rax], rcx
test r10b, 8
je 0x140049790
mov rcx, qword [rdx + 0x18]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x20]
jmp 0x14004979c
mov rcx, qword [rdx + 0x20]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x28]
mov qword [rax + 0x10], rcx
add rdx, 0x30
mov rcx, qword [rdx]
mov qword [rax + 0x18], rcx
add rax, 0x20
shr r10, 6
test r10b, 0x15
jne 0x1400497e9
nop dword [rax]
mov rcx, qword [rdx + 0x10]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x20]
add rdx, 0x30
mov qword [rax + 0x10], rcx
shr r10, 6
mov rcx, qword [rdx]
mov qword [rax + 0x18], rcx
add rax, 0x20
test r10b, 0x15
je 0x1400497c0
test r10b, 0x2a
je 0x140049821
test r12b, r10b
je 0x140049801
mov rcx, qword [rdx + 8]
mov qword [rax], rcx
mov rcx, qword [rdx + 0x10]
jmp 0x14004980c
mov rcx, qword [rdx + 0x10]
mov qword [rax], rcx
mov rcx, qword [rdx + 0x18]
mov qword [rax + 8], rcx
add rax, 0x10
mov rcx, qword [rdx + 0x20]
mov qword [rax], rcx
add rax, 8
jmp 0x140049835
mov rcx, qword [rdx + 0x10]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + 0x20]
mov qword [rax + 0x10], rcx
add rax, 0x18
lea rdx, [rbp + 0x208]
mov r8d, ebx
mov rcx, qword [rdx]
mov qword [rax], rcx
add rax, 8
nop dword [rax]
mov rcx, qword [rdx + 0x10]
lea rdx, [rdx + 0x30]
mov qword [rax + 8], rcx
lea rax, [rax + 0x20]
mov rcx, qword [rdx - 0x10]
mov qword [rax - 0x10], rcx
mov rcx, qword [rdx]
mov qword [rax - 8], rcx
add r8d, 0xffffffff
jne 0x140049850
jmp 0x1400499b5
lea rdx, [r11 + 0x20]
movabs r13, 0xdddddddddddddddd
mov qword [r11], r13
mov rcx, rdx
mov rax, qword [rdx]
mov r8d, 9
mov qword [rdx - 8], rax
add rdx, 0x10
nop
mov rax, qword [rdx]
lea rdx, [rdx + 0x30]
mov qword [rcx], rax
mov rax, qword [rdx - 0x20]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx - 0x10]
mov qword [rcx + 0x18], rax
add rcx, 0x20
add r8d, 0xffffffff
jne 0x1400498a0
mov rax, qword [rdx]
lea r9, [r15 + rbx*8]
mov rbp, qword [rsp + 0x90]
mov ebx, 5
mov qword [rcx], rax
mov r8d, ebx
mov rax, qword [rdx + 0x10]
mov rdx, rbp
mov qword [rcx + 0x10], rax
mov rax, qword [r9]
mov qword [rcx + 0x18], rax
add rcx, 0x20
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rdx + 0x10]
lea rdx, [rdx + 0x30]
mov qword [rcx], rax
lea rcx, [rcx + 0x20]
mov rax, qword [rdx - 0x10]
mov qword [rcx - 0x10], rax
mov rax, qword [rdx]
mov qword [rcx - 8], rax
add r8d, 0xffffffff
jne 0x140049900
mov rax, qword [rdx + 0x10]
mov r8d, esi
lea rdx, [r11 + 0x200]
mov qword [r9], rax
mov rcx, rdx
sub rdx, 8
nop dword [rax]
mov rax, qword [rdx + 0x10]
lea rdx, [rdx + 0x30]
mov qword [rcx + 8], rax
mov rax, qword [rdx - 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx]
mov qword [rcx + 0x18], rax
add rcx, 0x20
add r8d, 0xffffffff
jne 0x140049940
mov rax, qword [rdx + 0x10]
mov r8d, ebx
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x20]
lea rdx, [rbp + 0x208]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx]
mov qword [rcx + 0x18], rax
add rcx, 0x20
nop word [rax + rax]
mov rax, qword [rdx + 0x10]
lea rdx, [rdx + 0x30]
mov qword [rcx + 8], rax
lea rcx, [rcx + 0x20]
mov rax, qword [rdx - 0x10]
mov qword [rcx - 0x10], rax
mov rax, qword [rdx]
mov qword [rcx - 8], rax
add r8d, 0xffffffff
jne 0x140049990
mov r14, qword [rsp + 0xa0]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov rdi, qword [r14]
mov r10, qword [rdi]
lea rcx, [rdi + 0x400]
mov rdx, rcx
and r10, rax
je 0x140049d49
or r10, 1
add rcx, 8
mov r11, r10
movabs r9, 0xa800000000000000
mov r8, r10
and r11, r9
jne 0x140049a28
nop dword [rax]
mov rax, qword [rcx - 0x10]
mov qword [rdx - 8], rax
mov rax, qword [rcx - 0x20]
sub rcx, 0x30
mov qword [rdx - 0x10], rax
shl r8, 6
mov rax, qword [rcx]
mov qword [rdx - 0x18], rax
sub rdx, 0x20
test r9, r8
je 0x140049a00
movabs rsi, 0x5400000000000000
test rsi, r8
jne 0x140049ad8
mov rax, qword [rcx - 0x10]
mov qword [rdx - 8], rax
test r8, r8
jns 0x140049a66
mov rax, qword [rcx - 0x18]
mov qword [rdx - 0x10], rax
mov rax, qword [rcx - 0x20]
mov qword [rdx - 0x18], rax
sub rdx, 0x20
mov rax, qword [rcx - 0x30]
sub rcx, 0x30
jmp 0x140049a9e
bt r8, 0x3d
mov rax, qword [rcx - 0x20]
mov qword [rdx - 0x10], rax
jae 0x140049a8a
mov rax, qword [rcx - 0x28]
add rcx, 0xffffffffffffffd0
mov qword [rdx - 0x18], rax
add rdx, 0xffffffffffffffe0
mov rax, qword [rcx]
jmp 0x140049a9e
mov rax, qword [rcx - 0x30]
sub rcx, 0x30
mov qword [rdx - 0x18], rax
sub rdx, 0x20
mov rax, qword [rcx - 8]
shl r8, 6
mov qword [rdx], rax
test rsi, r8
jne 0x140049ad8
nop word [rax + rax]
mov rax, qword [rcx - 0x10]
mov qword [rdx - 8], rax
mov rax, qword [rcx - 0x20]
sub rcx, 0x30
mov qword [rdx - 0x10], rax
shl r8, 6
mov rax, qword [rcx]
mov qword [rdx - 0x18], rax
sub rdx, 0x20
test rsi, r8
je 0x140049ab0
lea r9, [rdx - 8]
movabs rax, 0xa800000000000000
lea rdx, [rcx - 0x10]
test rax, r8
mov rax, qword [rdx]
mov qword [r9], rax
je 0x140049b37
add r9, 0xfffffffffffffff8
test r8, r8
jns 0x140049b0b
mov rax, qword [rdx - 8]
mov qword [r9], rax
mov rcx, qword [rdx - 0x10]
jmp 0x140049b16
mov rax, qword [rdx - 0x10]
mov qword [r9], rax
mov rcx, qword [rdx - 0x18]
mov rax, 0xfffffffffffffff8
lea rdx, [rbp + 0x3f8]
mov qword [rax + r9], rcx
lea rcx, [rax - 8]
mov rax, qword [rdx]
add rcx, r9
mov qword [rcx], rax
jmp 0x140049b60
mov rax, qword [rdx - 0x10]
lea rcx, [r9 - 0x18]
lea rdx, [rbp + 0x3f8]
mov qword [r9 - 8], rax
mov rax, qword [rdx]
mov qword [r9 - 0x10], rax
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdx - 0x10]
lea rdx, [rdx - 0x30]
mov qword [rcx - 8], rax
lea rcx, [rcx - 0x20]
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx]
mov qword [rcx + 8], rax
add ebx, 0xffffffff
jne 0x140049b60
lea rdx, [rdi + 0x200]
test r11, r11
mov r8, rdx
movabs r11, 0xa800000000000000
jne 0x140049bc7
nop dword [rax]
mov rax, qword [rdx - 0x10]
mov qword [r8 - 8], rax
mov rax, qword [rdx - 0x20]
sub rdx, 0x30
mov qword [r8 - 0x10], rax
sub r8, 0x20
shl r10, 6
mov rax, qword [rdx]
mov qword [r8], rax
test r11, r10
je 0x140049ba0
test rsi, r10
jne 0x140049c87
mov rcx, r8
mov rax, r12
sub rcx, rdi
sar rcx, 3
sub cl, 4
shl rax, cl
or rax, r13
mov qword [rdi], rax
test r10, r10
jns 0x140049c04
mov rax, qword [rdx - 8]
mov qword [r8 - 8], rax
mov rax, qword [rdx - 0x10]
mov qword [r8 - 0x10], rax
mov rax, qword [rdx - 0x20]
jmp 0x140049c3c
bt r10, 0x3d
mov rax, qword [rdx - 0x10]
mov qword [r8 - 8], rax
jae 0x140049c30
mov rax, qword [rdx - 0x18]
mov qword [r8 - 0x10], rax
mov rax, qword [rdx - 0x20]
mov qword [r8 - 0x18], rax
sub r8, 0x20
sub rdx, 0x30
jmp 0x140049c48
mov rax, qword [rdx - 0x20]
mov qword [r8 - 0x10], rax
mov rax, qword [rdx - 0x28]
add rdx, 0xffffffffffffffd0
mov qword [r8 - 0x18], rax
add r8, 0xffffffffffffffe0
mov rax, qword [rdx]
shl r10, 6
mov qword [r8], rax
test rsi, r10
jne 0x140049c87
nop word [rax + rax]
mov rax, qword [rdx - 0x10]
mov qword [r8 - 8], rax
mov rax, qword [rdx - 0x20]
sub rdx, 0x30
mov qword [r8 - 0x10], rax
sub r8, 0x20
shl r10, 6
mov rax, qword [rdx]
mov qword [r8], rax
test rsi, r10
je 0x140049c60
lea r9, [r8 - 8]
test r11, r10
je 0x140049cd9
sub r8, rdi
sar r8, 3
lea ecx, [r8 - 4]
shl r12, cl
or r12, r13
mov qword [rdi], r12
test r10, r10
jns 0x140049cb6
mov rax, qword [rdx - 8]
mov qword [r9], rax
mov rax, qword [rdx - 0x10]
jmp 0x140049cc1
mov rax, qword [rdx - 0x10]
mov qword [r9], rax
mov rax, qword [rdx - 0x18]
mov esi, dword [rsp + 0xa8]
mov qword [r9 - 8], rax
lea eax, [rsi + 1]
mov rax, qword [r15 + rax*8]
mov qword [r9 - 0x10], rax
jmp 0x140049cf2
mov rax, qword [rdx - 0x10]
mov esi, dword [rsp + 0xa8]
mov qword [r9], rax
lea eax, [rsi + 1]
mov rax, qword [r15 + rax*8]
mov qword [r9 - 8], rax
sub r9, 0x18
lea rcx, [rbp + 0x1f0]
mov rax, qword [rcx]
mov r8d, 4
mov qword [r9], rax
nop dword [rax]
mov rax, qword [rcx - 0x10]
lea rcx, [rcx - 0x30]
mov qword [r9 - 8], rax
lea r9, [r9 - 0x20]
mov rax, qword [rcx + 0x10]
mov qword [r9 + 0x10], rax
mov rax, qword [rcx]
mov qword [r9], rax
add r8d, 0xffffffff
jne 0x140049d10
mov rax, qword [rcx - 0x10]
mov qword [r9 - 8], rax
mov rax, qword [rcx - 0x20]
mov qword [r9 - 0x10], rax
jmp 0x140049e68
add rcx, 8
mov r8d, esi
mov rax, qword [rcx - 0x10]
lea rcx, [rcx - 0x30]
mov qword [rdx - 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx - 0x10], rax
mov rax, qword [rcx]
mov qword [rdx - 0x18], rax
sub rdx, 0x20
add r8d, 0xffffffff
jne 0x140049d50
mov rax, qword [rcx - 0x10]
mov qword [rdx - 8], rax
mov rax, qword [rcx - 0x20]
lea rcx, [rbp + 0x3f8]
mov qword [rdx - 0x10], rax
mov rax, qword [rcx]
mov qword [rdx - 0x18], rax
sub rdx, 0x20
nop word [rax + rax]
mov rax, qword [rcx - 0x10]
lea rcx, [rcx - 0x30]
mov qword [rdx - 8], rax
lea rdx, [rdx - 0x20]
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [rcx]
mov qword [rdx + 8], rax
add ebx, 0xffffffff
jne 0x140049da0
lea rcx, [rdi + 0x200]
mov rdx, rcx
nop
mov rax, qword [rcx - 0x10]
lea rcx, [rcx - 0x30]
mov qword [rdx - 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx - 0x10], rax
sub rdx, 0x20
mov rax, qword [rcx]
mov qword [rdx], rax
add esi, 0xffffffff
jne 0x140049dd0
mov rax, qword [rcx - 0x10]
mov r8d, 4
mov esi, dword [rsp + 0xa8]
lea rcx, [rbp + 0x1f0]
mov qword [rdx - 8], rax
lea eax, [rsi + 1]
mov rax, qword [r15 + rax*8]
mov qword [rdx - 0x10], rax
sub rdx, 0x20
mov rax, qword [rcx]
mov qword [rdx], rax
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx - 0x10]
lea rcx, [rcx - 0x30]
mov qword [rdx - 8], rax
lea rdx, [rdx - 0x20]
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [rcx]
mov qword [rdx], rax
add r8d, 0xffffffff
jne 0x140049e30
mov rax, qword [rcx - 0x10]
mov qword [rdx - 8], rax
mov rax, qword [rcx - 0x20]
mov qword [rdx - 0x10], rax
mov qword [rdx - 0x20], r13
mov r12d, dword [rsp + 0x68]
mov ebx, r12d
mov eax, esi
sub ebx, esi
shl rbx, 3
mov r8, rbx
lea rdi, [r15 + rax*8]
lea rcx, [rdi + 0x300]
lea rdx, [rcx + 8]
call sub.VCRUNTIME140.dll_memmove
lea rcx, [rdi + 8]
mov r8, rbx
lea rdx, [rcx + 8]
call sub.VCRUNTIME140.dll_memmove
dec r12d
mov rdx, rbp
mov eax, r12d
mov qword [r15], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x48]
call qword [rax + 0x30]
mov r13, qword [rsp + 0x20]
mov r10d, eax
mov rbp, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x70]
test eax, eax
je 0x140049edf
mov eax, 0xfffffffd
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov rax, qword [rsp + 0xb0]
lea edx, [rsi - 1]
cmp rax, qword [rdi]
mov rax, qword [rsp + 0x88]
cmovae edx, esi
xor r11d, r11d
mov dword [rax], edx
test edx, edx
je 0x140049f15
lea eax, [rdx - 1]
mov r8d, edx
mov r9, qword [r15 + rax*8 + 0x300]
lea rcx, [r15 + rdx*8]
jmp 0x140049f1e
mov r9, r11
mov rcx, r11
mov r8, r11
mov rax, qword [rsp + 0x80]
mov qword [rax], rcx
mov rax, qword [rsp + 0x78]
mov qword [rax], r9
cmp edx, r12d
je 0x140049f67
lea eax, [rdx + 1]
mov rax, qword [r15 + rax*8 + 0x300]
lea rcx, [r15 + 8]
mov qword [r14], rax
lea rcx, [rcx + r8*8]
mov rax, qword [rsp + 0x98]
mov qword [rax], rcx
mov eax, r10d
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov rax, qword [rsp + 0x98]
mov qword [r14], r11
mov qword [rax], r11
mov eax, r10d
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret