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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
test r8, r8
js 0x14003d1b4
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov qword [rsp + 0x48], rcx
je 0x14003ca84
movzx eax, byte [0x141f49078]
xor ecx, ecx
mov rdx, r14
call fcn.1400c6170
mov rbx, rax
nop dword [rax]
mov eax, dword [0x141f32510]
xor edx, edx
div dword [0x141f32514]
add eax, 0xa408006b
or eax, 0xac0bcc1c
cmp eax, 0xd5f1cf49
je 0x14003ca30
test rbx, rbx
je 0x14003d1b4
nop dword [rax + rax]
mov eax, dword [0x141f32518]
sub eax, dword [0x141f3251c]
add eax, 0x8f749fe
and eax, 0xf63a3504
add eax, 0xe1f5b901
cmp eax, 0x3a97e220
jb 0x14003ca60
jmp 0x14003ca89
mov ebx, 1
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], 0
lea r13, [rdi + r14*2]
xor r14d, r14d
mov edx, 0xe86ba48d
mov esi, 0xc984b917
lea rcx, [rsp + 0x30]
lea r15, [rsp + 0x2c]
xor r12d, r12d
mov qword [rsp + 0x50], r13
nop
cmp rdi, r13
je 0x14003d10f
mov eax, dword [0x141f32528]
mov r8d, dword [0x141f3252c]
add eax, r8d
add eax, 0x7a1da98c
imul rax, rdx
shr rax, 0x3e
add eax, 0xb0cc32e7
cmp eax, 0x1abf0246
jb 0x14003cac9
lea rax, [rdi + 2]
movzx r9d, word [rdi]
mov edx, dword [0x141f32530]
or edx, dword [0x141f32534]
imul rdx, rdx, 0x60a53765
shr rdx, 0x3c
cmp edx, 0x157fbb0c
je 0x14003cafa
mov edx, r9d
and edx, 0xf800
movzx edx, dx
cmp edx, 0xd800
jne 0x14003cc40
cmp r9d, 0xdbff
ja 0x14003d12a
cmp rax, r13
je 0x14003d12a
nop word [rax + rax]
mov edx, dword [0x141f32548]
xor edx, dword [0x141f3254c]
add edx, 0x16f14243
imul rdx, rsi
shr rdx, 0x3e
cmp edx, 0x792f80ab
ja 0x14003cb50
movzx r8d, word [rax]
mov eax, dword [0x141f32550]
xor edx, edx
div dword [0x141f32554]
nop word cs:[rax + rax]
mov eax, dword [0x141f32558]
or eax, dword [0x141f3255c]
or eax, 0x59dffbfc
xor eax, 0x622e8ef2
cmp eax, 0xcc096662
ja 0x14003cb90
lea eax, [r8 + 0x2000]
movzx eax, ax
cmp eax, 0xfc00
jb 0x14003d12a
add rdi, 4
and r9d, 0x3ff
and r8d, 0x3ff
shl r9, 0x1a
mov eax, dword [0x141f32560]
xor eax, dword [0x141f32564]
xor eax, 0x89a5959d
imul eax, eax, 0xe0573a55
cmp eax, 0xad8c0ff2
jb 0x14003cbd8
shl r8, 0x10
movabs rax, 0x100000000
add r9, rax
nop word [rax + rax]
mov eax, dword [0x141f32568]
xor eax, dword [0x141f3256c]
imul eax, eax, 0x13ab952c
cmp eax, 0xcb7e181b
je 0x14003cc10
or r9, r8
mov rbp, r9
shr rbp, 0x10
cmp ebp, 0x80
jb 0x14003cca0
jmp 0x14003cce0
mov edx, dword [0x141f32538]
or edx, dword [0x141f3253c]
add edx, 0xbb73dfcf
xor edx, 0x20ec18ae
cmp edx, 0x4458489d
jb 0x14003cc40
shl r9, 0x10
nop word cs:[rax + rax]
mov edx, dword [0x141f32540]
sub edx, dword [0x141f32544]
imul edx, edx, 0x40feeb6c
cmp edx, 0x6eb9d105
je 0x14003cc70
mov rdi, rax
mov rbp, r9
shr rbp, 0x10
cmp ebp, 0x80
jae 0x14003cce0
nop dword [rax]
mov eax, dword [0x141f325e8]
and eax, dword [0x141f325ec]
xor eax, 0x80800
or eax, 0x51520400
and eax, 0x517b0c00
cmp eax, 0x98bbaa28
je 0x14003cca0
cmp r12, qword [rsp + 0x30]
jne 0x14003d0b0
test r14b, r14b
je 0x14003d080
jmp 0x14003d100
mov eax, dword [0x141f32570]
imul eax, dword [0x141f32574]
add eax, 0x66b5683
mov edx, 0xedf17315
imul rax, rdx
shr rax, 0x3f
or eax, 0x250ed6a4
cmp eax, 0x22bbdcf3
jb 0x14003cd32
nop dword [rax + rax]
mov eax, dword [0x141f32578]
xor edx, edx
div dword [0x141f3257c]
add eax, 0x44a93006
mov dword [rsp + 0x2c], 0
cmp eax, 0x947647b1
jbe 0x14003cd40
mov dword [rsp + 0x2c], 0
jmp 0x14003cd10
mov eax, dword [0x141f32580]
xor eax, dword [0x141f32584]
imul eax, eax, 0x29405b29
and eax, 0x30680248
cmp eax, 0x255d36b1
ja 0x14003cd40
cmp ebp, 0x800
jae 0x14003cd90
shr r9d, 0x16
or r9b, 0xc0
mov byte [rsp + 0x2c], r9b
mov r13d, 2
mov eax, 1
jmp 0x14003ceff
mov eax, dword [0x141f32588]
mov edx, dword [0x141f3258c]
add eax, edx
add eax, 0x60ada6e8
xor eax, 0xa797f899
cmp eax, 0xa62a6efa
ja 0x14003cd90
cmp ebp, 0x10000
jae 0x14003ce30
mov eax, dword [0x141f325a8]
sub eax, dword [0x141f325ac]
add eax, 0x27ab5527
cmp eax, 0x42b0f83b
jae 0x14003cde0
mov rax, r9
shr rax, 0x1c
or al, 0xe0
mov byte [rsp + 0x2c], al
nop dword [rax]
mov eax, dword [0x141f325b0]
sub eax, dword [0x141f325b4]
imul eax, eax, 0x67433b5e
add eax, 0xc8d5fbf7
mov rdx, r9
shr rdx, 0x1c
or dl, 0xe0
mov byte [rsp + 0x2c], dl
cmp eax, 0x158f3d46
jb 0x14003cde0
shr r9, 0x16
and r9b, 0x3f
or r9b, 0x80
mov byte [rsp + 0x2d], r9b
mov r13d, 3
mov eax, 2
jmp 0x14003ceff
mov eax, dword [0x141f32590]
add eax, dword [0x141f32594]
imul rax, rax, 0x2ea4f78b
shr rax, 0x3d
cmp eax, 0x6f635c12
je 0x14003ce30
mov rax, r9
shr rax, 0x22
or al, 0xf0
mov edx, dword [0x141f32598]
add edx, dword [0x141f3259c]
xor edx, 0x78a44cc2
mov r8d, 0xe2eab917
imul rdx, r8
shr rdx, 0x3d
and edx, 2
cmp edx, 0xf82ca402
jne 0x14003cea0
mov byte [rsp + 0x2c], al
mov rdx, r9
shr rdx, 0x1c
and dl, 0x3f
or dl, 0x80
mov byte [rsp + 0x2d], dl
nop word [rax + rax]
mov edx, dword [0x141f325a0]
sub edx, dword [0x141f325a4]
imul edx, edx, 0x985ab457
imul rdx, rdx, 0x44cd6253
shr rdx, 0x3e
imul edx, edx, 0xc7b7835c
mov r8, r9
shr r8, 0x1c
and r8b, 0x3f
or r8b, 0x80
mov byte [rsp + 0x2c], al
mov byte [rsp + 0x2d], r8b
cmp edx, 0x23be9bcb
je 0x14003cea0
shr r9d, 0x16
and r9b, 0x3f
or r9b, 0x80
mov byte [rsp + 0x2e], r9b
mov r13d, 4
mov eax, 3
and bpl, 0x3f
or bpl, 0x80
mov byte [rsp + rax + 0x2c], bpl
mov rax, qword [rsp + 0x30]
sub rax, r12
cmp rax, r13
jae 0x14003cff0
mov eax, dword [0x141f325b8]
add eax, dword [0x141f325bc]
imul rax, rax, 0x6e0452cb
shr rax, 0x3e
or eax, 0x80020
cmp eax, 0x307c2a03
ja 0x14003d063
mov eax, dword [0x141f325c0]
mov edx, dword [0x141f325c4]
lea ebx, [rax + rdx]
add ebx, 0x15d8b2d6
xor ebx, 0x523beaa6
mov rdx, r12
mov r8, r13
call fcn.1400f8980
lea rcx, [rsp + 0x30]
cmp ebx, 0x29434d62
jb 0x14003cf44
mov ecx, 0xa2f5affb
nop dword [rax]
mov eax, dword [0x141f325c8]
imul eax, dword [0x141f325cc]
and eax, 0x787bbed3
imul eax, eax, 0xb13df821
imul rax, rcx
shr rax, 0x3d
cmp eax, 0x4573369c
ja 0x14003cf80
mov rbp, qword [rsp + 0x40]
mov eax, dword [0x141f325d0]
xor edx, edx
div dword [0x141f325d4]
mov eax, dword [0x141f325d8]
xor edx, edx
div dword [0x141f325dc]
imul eax, eax, 0x894a4a3d
mov ecx, 0xace9784f
imul rax, rcx
shr rax, 0x3e
cmp eax, 0xc079f3b6
je 0x14003cfba
mov rbx, qword [rsp + 0x38]
jmp 0x14003cff3
mov rbp, r12
mov eax, dword [0x141f325e0]
xor edx, edx
div dword [0x141f325e4]
add eax, 0x796129ce
cmp eax, 0x567d4000
jae 0x14003d030
lea rcx, [rbx + rbp]
mov rdx, r15
mov r8, r13
call fcn.1400f5630
mov rax, rbp
add rax, r13
mov qword [rsp + 0x40], rax
nop word [rax + rax]
lea rcx, [rbx + rbp]
mov rdx, r15
mov r8, r13
call fcn.1400f5630
mov r12, rbp
add r12, r13
mov qword [rsp + 0x40], r12
test r14b, r14b
jne 0x14003d030
mov r13, qword [rsp + 0x50]
mov edx, 0xe86ba48d
lea rcx, [rsp + 0x30]
jmp 0x14003cac0
mov rdx, r12
mov r8, r13
call fcn.1400f8980
lea rcx, [rsp + 0x30]
jmp 0x14003cf44
mov eax, dword [0x141f325f0]
and eax, dword [0x141f325f4]
imul ebx, eax, 0x1a88285b
xor ebx, 0x11000014
or ebx, 0x6b5f763
call fcn.14003c740
lea rcx, [rsp + 0x30]
cmp ebx, 0x18056492
jb 0x14003d100
mov rbx, qword [rsp + 0x38]
mov eax, dword [0x141f325f8]
or eax, dword [0x141f325fc]
or eax, 0xbf3ddbff
cmp eax, 0x8b8d15d6
jne 0x14003d0db
mov byte [rbx + r12], bpl
lea rax, [r12 + 1]
mov qword [rsp + 0x40], rax
mov edx, 0xe86ba48d
mov byte [rbx + r12], bpl
lea rax, [r12 + 1]
mov qword [rsp + 0x40], rax
test r14b, r14b
jne 0x14003d0e0
mov r12, rax
jmp 0x14003cac0
call fcn.14003c740
lea rcx, [rsp + 0x30]
jmp 0x14003d080
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rcx], xmm0
jmp 0x14003d1d5
movabs rax, 0x8000000000000000
mov ecx, dword [0x141f32600]
or ecx, dword [0x141f32604]
mov edx, 0xae847d5d
imul rdx, rcx
shr rdx, 0x3e
cmp edx, 0xe976ed08
mov rdx, qword [rsp + 0x48]
jne 0x14003d160
mov qword [rdx], rax
nop dword [rax]
mov ecx, dword [0x141f32608]
or ecx, dword [0x141f3260c]
imul rcx, rcx, 0x514dafb
shr rcx, 0x3a
imul ecx, ecx, 0xd364ee00
mov qword [rdx], rax
cmp ecx, 0xf4ec18d7
ja 0x14003d160
cmp qword [rsp + 0x30], 0
je 0x14003d1d5
mov eax, dword [0x141f32610]
and eax, dword [0x141f32614]
and eax, 0x25898ecd
add eax, 0xa358907
and eax, 0x2a261a59
cmp eax, 0x56a375e0
jne 0x14003d1e6
jmp 0x14003d213
mov eax, dword [0x141f32520]
sub eax, dword [0x141f32524]
cmp eax, 0x4d86781b
je 0x14003d1cf
ud2
ud2
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141f32618]
or eax, dword [0x141f3261c]
and eax, 0x54004681
mov ecx, 0x9c4fdad7
imul rcx, rax
shr rcx, 0x3d
mov rsi, qword [0x141f49060]
cmp ecx, 0xa5ca7776
jbe 0x14003d21c
mov rax, qword [0x141f49060]
jmp 0x14003d1e6
mov eax, dword [0x141f32620]
sub eax, dword [0x141f32624]
imul eax, eax, 0x6dc5115a
xor eax, 0x300d1703
add eax, 0x7d92671b
cmp eax, 0x44e8748
jae 0x14003d24d
mov rcx, rsi
xor edx, edx
mov r8, rbx
call qword [0x1401082d0]
mov rdi, qword [0x1401082d0]
nop word cs:[rax + rax]
mov ebp, dword [0x141f32628]
imul ebp, dword [0x141f3262c]
add ebp, 0x4dacbe17
and ebp, 0x7802d87e
add ebp, 0x2bd6e2d4
mov rcx, rsi
xor edx, edx
mov r8, rbx
call rdi
cmp ebp, 0xe82690e5
ja 0x14003d260
nop word cs:[rax + rax]
mov eax, dword [0x141f32630]
imul eax, dword [0x141f32634]
imul eax, eax, 0x17492538
cmp eax, 0x54d8249c
je 0x14003d2a0
jmp 0x14003d1d5