Function at 0x140041700
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
mov r9, rdx
mov r8, rcx
mov rsi, qword [rcx]
mov eax, dword [0x141dc5a00]
xor ecx, ecx
xor edx, edx
div dword [0x141dc5a04]
nop word cs:[rax + rax]
test cl, cl
jne 0x140041730
nop word cs:[rax + rax]
mov eax, dword [0x141dc5a08]
xor edx, edx
div dword [0x141dc5a0c]
and eax, 0x2856881a
xor eax, 0xb844a196
or eax, 0x45a95261
cmp eax, 0x4685126e
jb 0x140041740
test rsi, rsi
je 0x140041ec1
and r9d, 0x3f
nop word cs:[rax + rax]
mov eax, dword [0x141dc5a10]
sub eax, dword [0x141dc5a14]
and eax, 0xdbb7685e
add eax, 0xa09e0a3f
cmp eax, 0xe3f90962
ja 0x140041780
lea r10, [0x141db4fc8]
nop word cs:[rax + rax]
mov eax, dword [0x141dc5a18]
sub eax, dword [str.M_u]
or eax, 0xad5c74fc
imul eax, eax, 0xf7b9862a
cmp eax, 0xb0d85738
ja 0x1400417b0
movzx r11d, word [r10 + r9*2]
mov ecx, r11d
shr ecx, 0xb
mov eax, dword [0x141dc5a20]
xor edx, edx
div dword [0x141dc5a24]
and r11d, 0x7ff
nop
mov eax, dword [0x141dc5a28]
xor eax, dword [0x141dc5a2c]
xor eax, 0xf6f5cc58
add eax, 0x18097eb8
imul rdx, rax, 0x600442bd
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
cmp eax, 0x5716e682
ja 0x1400417f0
movzx eax, r11w
cmp eax, 0x51d
jae 0x140041f06
lea rax, [0x141db504a]
add rax, r11
nop word [rax + rax]
mov edx, dword [0x141dc5a48]
add edx, dword [str..Ty]
xor edx, 0x40839081
and edx, 0x40dfb299
imul edx, edx, 0x6a628abd
cmp edx, 0xf3367c8a
ja 0x140041840
movzx edx, word [r10 + r9*2 + 2]
and edx, 0x7ff
sub rdx, r11
xor r10d, r10d
lea r11, [0x141db5566]
mov edi, 0x9a51f75f
nop word cs:[rax + rax]
mov r14d, dword [0x141dc5a50]
imul r14d, dword [0x141dc5a54]
add r14d, 0x766689f7
test rdx, rdx
sete bl
cmp rax, r11
sete bpl
cmp r14d, 0xc146424c
jb 0x140041890
or bl, bpl
jne 0x140041b51
lea r14, [rax + 1]
mov ebx, dword [0x141dc5a58]
imul ebx, dword [0x141dc5a5c]
add ebx, 0x580daec9
imul rbx, rbx, 0x58fe8065
shr rbx, 0x3c
imul ebx, ebx, 0xf1605b0f
cmp ebx, 0xdc823b45
ja 0x1400418c9
cmp r10, rsi
je 0x140041b4e
mov rbx, r10
or rbx, 1
movzx ebp, byte [rax]
nop dword [rax + rax]
mov r15d, dword [0x141dc5a60]
add r15d, dword [0x141dc5a64]
imul r15d, r15d, 0xb72bccdc
cmp r15d, 0x5711c9b5
je 0x140041910
cmp r10, 0x300
je 0x140041ef4
nop dword [rax + rax]
mov r15d, dword [0x141dc5a68]
sub r15d, dword [0x141dc5a6c]
imul r15d, r15d, 0xd68ee65
cmp r15d, 0x82045d99
je 0x140041940
movzx r15d, byte [r8 + r10 + 8]
nop word cs:[rax + rax]
mov r12d, dword [0x141dc5a70]
xor r12d, dword [0x141dc5a74]
add r12d, 0x4428f986
and r12d, 0x8f953818
imul r12d, r12d, 0x40018125
cmp r12d, 0xd7da1d5b
je 0x140041970
cmp r15b, bpl
jne 0x140041b20
nop word cs:[rax + rax]
mov r15d, dword [0x141dc5a78]
and r15d, dword [0x141dc5a7c]
add r15d, 0xbfd3f0a5
imul r12, r15, 0xf77fc07
shr r12, 0x20
sub r15d, r12d
shr r15d, 1
add r15d, r12d
shr r15d, 0x1f
cmp r15d, 0x77432869
ja 0x1400419b0
cmp rdx, 1
je 0x140041b51
add rdx, 0xfffffffffffffffe
nop word cs:[rax + rax]
mov ebp, dword [0x141dc5a80]
add ebp, dword [0x141dc5a84]
or ebp, 0x47025b89
add ebp, 0xe2e4b973
or ebp, 0x80a9af64
cmp ebp, 0x7175a431
je 0x140041a00
nop word cs:[rax + rax]
mov ebp, dword [0x141dc5a88]
xor ebp, dword [0x141dc5a8c]
imul ebp, ebp, 0x2ae2f24
cmp ebp, 0x238c0d03
je 0x140041a30
cmp r14, r11
je 0x140041b51
cmp rbx, rsi
je 0x140041b4e
nop dword [rax]
mov r15d, dword [0x141dc5a90]
add r15d, dword [0x141dc5a94]
and r15d, 0xcccd3068
add r15d, 0xfdaf0db5
imul r15, rdi
shr r15, 0x3d
cmp r15d, 0xa9187a95
ja 0x140041a60
movzx ebp, byte [r14]
nop word cs:[rax + rax]
mov r14d, dword [0x141dc5a98]
and r14d, dword [0x141dc5a9c]
add r14d, 0xba95c905
or r14d, 0xb8cf7cf3
add r14d, 0x5f3a34e0
cmp r14d, 0x194160c2
jb 0x140041aa0
add r10, 2
add rax, 2
nop word cs:[rax + rax]
mov r14d, dword [0x141dc5aa0]
or r14d, dword [0x141dc5aa4]
and r14d, 0xbeb105b4
add r14d, 0xe6014f63
or r14d, 0x12c69f93
cmp r14d, 0x6a801cbd
jb 0x140041ae0
movzx r15d, byte [r8 + rbx + 8]
cmp r15b, bpl
je 0x140041890
nop dword [rax + rax]
mov eax, dword [0x141dc5aa8]
sub eax, dword [0x141dc5aac]
or eax, 0xaf2715a9
xor eax, 0x60a6dcc9
add eax, 0xdabf55f
cmp r15b, bpl
mov rdi, rcx
sbb rdi, 0
cmp eax, 0xd170401d
jb 0x140041b20
jmp 0x140041b54
dec rcx
mov rdi, rcx
lea r14, [rdi + rsi]
xor r10d, r10d
movabs rbx, 0xcccccccccccccccd
jmp 0x140041b79
test rsi, rsi
je 0x140041cf6
cmp rsi, 0x301
jae 0x140041ecc
dec rsi
dec r14
movzx r15d, byte [r8 + rsi + 8]
nop word cs:[rax + rax]
mov eax, dword [0x141dc5ae8]
xor edx, edx
div dword [0x141dc5aec]
mov r11, r15
mov ecx, r9d
shl r11, cl
imul ecx, eax, 0x61eb1c9b
or ecx, 0x9fa1768f
add r11, r10
mov rax, r11
mul rbx
cmp ecx, 0xcea85339
je 0x140041ba0
mov r10, rdx
shr r10, 3
lea rax, [r10 + r10]
lea rax, [rax + rax*4]
neg rax
add rax, r11
cmp r14, 0x300
jae 0x140041c60
nop word cs:[rax + rax]
mov ecx, dword [0x141dc5b08]
add ecx, dword [0x141dc5b0c]
imul ecx, ecx, 0x679f3c84
imul rcx, rcx, 0x166bf639
shr rcx, 0x3a
cmp ecx, 0x49b5f37d
je 0x140041c00
mov ecx, dword [0x141dc5b10]
add ecx, dword [0x141dc5b14]
and ecx, 0x2d0b54c
add ecx, 0xdd077959
or ecx, 0xf1342bf2
cmp ecx, 0x7e68a666
je 0x140041cef
jmp 0x140041cc0
mov ecx, dword [0x141dc5af8]
imul ecx, dword [0x141dc5afc]
or ecx, 0xdddffeff
cmp ecx, 0x2fd5e169
jb 0x140041c60
test rax, rax
je 0x140041b70
mov byte [r8 + 0x30c], 1
nop dword [rax]
mov eax, dword [0x141dc5b00]
imul eax, dword [0x141dc5b04]
xor eax, 0x1236a79d
add eax, 0x32ab3b8d
xor eax, 0x362f07fd
cmp eax, 0x7bd6f796
jb 0x140041c90
jmp 0x140041b70
mov ecx, dword [0x141dc5b18]
and ecx, dword [0x141dc5b1c]
xor ecx, 0x8021428
and ecx, 0x184a353d
xor ecx, 0xb83ac75f
mov byte [r8 + r14 + 8], al
cmp ecx, 0x2d9463ea
jae 0x140041b70
mov byte [r8 + r14 + 8], al
jmp 0x140041cc0
mov eax, dword [0x141dc5ab0]
xor edx, edx
div dword [str.r2Yg____]
nop word cs:[rax + rax]
mov eax, dword [0x141dc5ab8]
xor eax, dword [0x141dc5abc]
or eax, 0x5800c282
and eax, 0x5c01cbd3
xor eax, 0x38ed394d
cmp eax, 0x707234da
ja 0x140041d10
cmp r11, 0xa
jb 0x140041dac
xor ecx, ecx
mov r9, rdi
nop dword [rax]
mov rax, r10
mul rbx
dec r9
shr rdx, 3
lea rax, [rdx + rdx]
lea r11, [rax + rax*4]
mov rax, r10
sub rax, r11
cmp r9, 0x300
jae 0x140041d70
test cl, cl
jne 0x140041d64
mov byte [r8 + r9 + 8], al
jmp 0x140041d80
test rax, rax
je 0x140041d80
mov byte [r8 + 0x30c], 1
nop dword [rax]
mov eax, dword [0x141dc5ae0]
imul eax, dword [0x141dc5ae4]
xor eax, 0x240f2665
add eax, 0x9ed5e762
or eax, 0xd54e57bf
cmp eax, 0x33e3906d
je 0x140041d80
cmp r10, 0xa
mov r10, rdx
jae 0x140041d40
mov rcx, qword [r8]
add rcx, rdi
mov eax, dword [0x141dc5ac0]
xor edx, edx
div dword [0x141dc5ac4]
add eax, 0xb4e80db8
or eax, 0xad24cc1d
cmp eax, 0xf788d47d
jbe 0x140041df0
cmp rcx, 0x300
mov eax, 0x300
cmovb rax, rcx
mov qword [r8], rax
nop word cs:[rax + rax]
mov edx, dword [0x141dc5ac8]
and edx, dword [0x141dc5acc]
or edx, 0xd8abe5b9
and edx, 0xdcfbe7b9
cmp rcx, 0x300
mov eax, 0x300
cmovb rax, rcx
mov qword [r8], rax
cmp edx, 0xbaba165
jb 0x140041df0
mov edx, dword [r8 + 0x308]
mov r9d, dword [0x141dc5ad0]
imul r9d, dword [0x141dc5ad4]
imul r9d, r9d, 0xecc672cd
cmp r9d, 0x58e52a42
jne 0x140041e54
lea r9d, [rdx + rdi]
mov dword [r8 + 0x308], r9d
add edx, edi
nop word cs:[rax + rax]
mov r9d, dword [0x141dc5ad8]
sub r9d, dword [0x141dc5adc]
add r9d, 0x3417f906
or r9d, 0x19506f0f
xor r9d, 0xfb487e60
mov dword [r8 + 0x308], edx
cmp r9d, 0x80b20bcc
ja 0x140041e60
test rax, rax
je 0x140041ec1
cmp rcx, 0x300
mov eax, 0x300
cmovb rax, rcx
dec rax
nop dword [rax + rax]
cmp byte [r8 + rax + 8], 0
jne 0x140041ec1
mov qword [r8], rax
add rax, 0xffffffffffffffff
jb 0x140041eb0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
ud2
ud2
mov eax, dword [0x141dc5a30]
sub eax, dword [0x141dc5a34]
add eax, 0x74491690
xor eax, 0x18014120
and eax, 0x9cc37f7f
cmp eax, 0x85c1293
jne 0x140041f30
ud2
mov eax, dword [0x141dc5a38]
imul eax, dword [0x141dc5a3c]
add eax, 0x6eea0ee
or eax, 0xdbfbff5d
ud2