Function at 0x140147240
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, 0x98
mov r8, rdx
mov rdi, rcx
mov rsi, qword [rdx]
mov rbx, qword [rdx + 8]
mov r9, qword [rdx + 0x10]
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x30], rax
mov eax, dword [0x14022bee8]
xor edx, edx
div dword [0x14022beec]
nop dword [rax + rax]
mov eax, dword [0x14022bef0]
sub eax, dword [0x14022bef4]
mov ecx, eax
xor ecx, 0x60c1210
xor eax, 0xe9c32cad
mov edx, eax
and edx, 0x10f3e54a
and ecx, 0xef0c1ab5
imul ecx, edx
mov edx, eax
and edx, 0xef0c1ab5
or eax, 0xef0c1ab5
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x463670af
or eax, 0xb9c98f50
and eax, ecx
cmp eax, 0xe2552577
je 0x140147280
cmp rbx, qword [rsp + 0x30]
mov qword [rsp + 0x38], r9
je 0x140147494
mov r12, qword [r8 + 0x20]
nop word cs:[rax + rax]
mov eax, dword [0x14022bef8]
add eax, dword [0x14022befc]
mov ecx, eax
xor ecx, 0x83bd8e31
xor eax, 0x2098020
and eax, 0x5a49e12e
add eax, eax
sub ecx, eax
add ecx, 0xda49e12e
xor ecx, 0xeaa85f21
cmp ecx, 0x812f222e
jb 0x1401472f0
lea rbp, [rsp + 0x78]
nop dword [rax + rax]
mov eax, dword [0x14022bf00]
and eax, dword [0x14022bf04]
imul rax, rax, 0x11caf7fb
shr rax, 0x3c
mov ecx, 0xa15f1164
sub ecx, eax
add eax, 0x5ea0ee9b
mov edx, eax
and edx, 0x5ca08c1d
and ecx, 0x1000162
imul ecx, edx
mov edx, eax
and edx, 0x2006282
or eax, 0x30063e2
imul eax, edx
add eax, ecx
cmp eax, 0x62db763d
jb 0x140147330
nop dword [rax]
mov eax, dword [0x14022bf08]
mov ecx, eax
not ecx
or ecx, dword [0x14022bf0c]
add eax, ecx
inc eax
mov ecx, eax
not ecx
and ecx, 0x2e893b39
mov edx, eax
and edx, 0x1176c4c6
imul edx, ecx
mov ecx, eax
and ecx, 0x2e893b39
or eax, 0x2e893b39
imul eax, ecx
add eax, edx
and eax, 0x3c8192f1
add eax, 0x4b32ca53
cmp eax, 0xfa683b0
jb 0x140147380
lea r15, [rsp + 0x40]
xor r14d, r14d
mov r13, rsi
nop word [rax + rax]
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
add rbx, 0x20
mov r8d, dword [r12]
lea rcx, [rsp + 0x70]
mov rdx, r15
call fcn.14013e600
cmp qword [rsp + 0x70], 0
jne 0x1401474a1
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov eax, dword [0x14022bf10]
imul eax, dword [0x14022bf14]
xor eax, 0x3c25b403
imul rcx, rax, 0x3e90c94b
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x12
add eax, 0xb8190a4c
cmp eax, 0xbbaec3ef
ja 0x140147424
add r13, 0x20
mov eax, dword [0x14022bf18]
xor edx, edx
div dword [0x14022bf1c]
nop dword [rax + rax]
test r14b, r14b
jne 0x140147470
cmp rbx, qword [rsp + 0x30]
jne 0x1401473e0
sub r13, rsi
shr r13, 5
mov r15, r13
mov r14, qword [rsp + 0x38]
jmp 0x14014770c
mov byte [rsp + 0x2f], 0x12
mov r13, rsi
jmp 0x14014754b
mov eax, dword [0x14022bf20]
mov ecx, dword [0x14022bf24]
mov edx, eax
not edx
or eax, ecx
not ecx
or ecx, edx
and ecx, eax
mov eax, 0x2a8f6a69
sub eax, ecx
or eax, 0xfdffbefe
cmp eax, 0x3948a78f
jb 0x14014752e
mov eax, dword [0x14022bf28]
mov ecx, dword [0x14022bf2c]
add eax, ecx
add eax, 0xc7817025
mov ecx, eax
not ecx
and ecx, 0x29df1746
mov edx, eax
and edx, 0x5620e8b9
imul edx, ecx
mov ecx, eax
and ecx, 0x29df1746
or eax, 0x29df1746
imul eax, ecx
add eax, edx
and eax, 0x74c51e92
movzx ecx, byte [rsp + 0x78]
movups xmm0, xmmword [rsp + 0x79]
movaps xmmword [rsp + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rsp + 0x4f], xmm0
cmp eax, 0x1d5ef951
jae 0x140147547
movups xmm0, xmmword [rsp + 0x79]
movups xmm1, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x4f], xmm1
jmp 0x1401474cc
mov byte [rsp + 0x2f], cl
mov rax, r13
sub rax, rsi
mov qword [rsp + 0x68], rax
mov r12, qword [rsp + 0x30]
sub r12, rbx
shr r12, 5
nop word cs:[rax + rax]
mov eax, dword [0x14022bf30]
mov ecx, dword [0x14022bf34]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov eax, ecx
not eax
and eax, 0x78fe0e91
mov edx, ecx
and edx, 0x8701f16e
imul edx, eax
mov eax, ecx
and eax, 0x78fe0e91
or ecx, 0x78fe0e91
imul ecx, eax
add ecx, edx
imul eax, ecx, 0x950d8af5
add eax, 0x87e8a123
cmp eax, 0xfd1b5b47
ja 0x140147570
cmp qword [rsp + 0x30], rbx
je 0x14014767f
neg r12
xor ebp, ebp
xor r14d, r14d
jmp 0x1401475f3
inc r14
dec rbp
add rbx, 0x20
cmp r12, rbp
je 0x14014767f
mov eax, dword [0x14022bf38]
xor edx, edx
div dword [0x14022bf3c]
mov ecx, eax
xor ecx, 0xafb10b6
and ecx, eax
add ecx, 0x1532b7df
shr ecx, 1
imul rax, rcx, 0x5bf9dfe1
shr rax, 0x3b
cmp eax, 0xffe8b548
je 0x140147675
nop word cs:[rax + rax]
mov r15d, dword [0x14022bf40]
xor r15d, dword [0x14022bf44]
or r15d, 0xf142f834
add r15d, 0xb12749d9
mov eax, r15d
and eax, 0xec90016
add eax, eax
sub r15d, eax
add r15d, 0x4ec91036
mov rcx, rbx
call fcn.14013e0f0
cmp r15d, 0xfb88120
jae 0x1401475e0
mov rcx, rbx
call fcn.14013e0f0
jmp 0x140147630
mov r15, qword [rsp + 0x68]
shr r15, 5
mov r14, qword [rsp + 0x38]
nop dword [rax]
mov ecx, dword [0x14022bf48]
mov eax, dword [0x14022bf4c]
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
add eax, 0x9d174df0
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x9dc58d4e
and ecx, 0x623a72b1
imul ecx, edx
mov edx, eax
and edx, 0x623a72b1
or eax, 0x623a72b1
imul eax, edx
add eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x6e46cf83
and ecx, 0x91b9307c
imul ecx, edx
mov edx, eax
and edx, 0x91b9307c
or eax, 0x91b9307c
imul eax, edx
add eax, ecx
cmp eax, 0xb98961ad
jb 0x140147690
movzx ecx, byte [rsp + 0x2f]
cmp cl, 0x12
jne 0x140147768
mov eax, dword [0x14022bf50]
imul eax, dword [0x14022bf54]
add eax, 0xa4442e79
imul rax, rax, 0x4a19290d
shr rax, 0x3e
cmp eax, 0xc90d1fb8
jne 0x14014773f
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], r15
mov byte [rdi], 0x12
xor eax, eax
nop word cs:[rax + rax]
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], r15
mov byte [rdi], 0x12
test al, al
jne 0x140147750
jmp 0x140147a70
mov eax, dword [0x14022bf58]
sub eax, dword [0x14022bf5c]
add eax, 0x3ea7477a
and eax, 0xa2756e52
add eax, 0xdf56f371
cmp eax, 0x562c74a6
jae 0x14014779e
mov byte [rdi], cl
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rdi + 1], xmm0
movups xmm0, xmmword [rsp + 0x4f]
movups xmmword [rdi + 0x10], xmm0
xor eax, eax
mov byte [rdi], cl
movaps xmm0, xmmword [rsp + 0x40]
movups xmmword [rdi + 1], xmm0
movups xmm0, xmmword [rsp + 0x4f]
movups xmmword [rdi + 0x10], xmm0
test al, al
jne 0x1401477a0
nop dword [rax + rax]
mov eax, dword [0x14022bf60]
imul eax, dword [0x14022bf64]
mov ecx, eax
or ecx, 0x110827
not eax
and eax, 0x1600640
and ecx, 0x3017282f
or ecx, eax
cmp ecx, 0xe65800f5
ja 0x1401477c0
cmp r13, rsi
je 0x1401478b0
xor edi, edi
nop word [rax + rax]
mov eax, dword [0x14022bf68]
sub eax, dword [0x14022bf6c]
imul eax, eax, 0x8bb17a07
imul rax, rax, 0xa458bfd
shr rax, 0x3a
xor eax, 0x1d17e3f
cmp eax, 0x4aa7d2be
jbe 0x140147840
mov rcx, rdi
shl rcx, 5
add rcx, rsi
call fcn.14013e0f0
nop dword [rax + rax]
mov eax, dword [0x14022bf70]
mov ecx, dword [0x14022bf74]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x8a8b7f95
and ecx, 0x7574806a
imul ecx, edx
mov edx, eax
and edx, 0x7574806a
or eax, 0x7574806a
imul eax, edx
add eax, ecx
mov ebx, eax
not ebx
or eax, 0x3ffefb7d
or ebx, 0xffede7eb
and ebx, eax
mov rcx, rdi
shl rcx, 5
add rcx, rsi
call fcn.14013e0f0
cmp ebx, 0x3174910d
je 0x140147840
inc rdi
cmp rdi, r15
jne 0x140147800
mov eax, dword [0x14022bf78]
xor edx, edx
div dword [0x14022bf7c]
and eax, 0xca46da57
add eax, 0x214ad71
mov ecx, eax
not ecx
and ecx, 0x62478062
mov edx, eax
and edx, 0x8c187a9d
imul edx, ecx
mov ecx, eax
and ecx, 0x42478562
or eax, 0x62478562
imul eax, ecx
add eax, edx
cmp eax, 0x9918dc19
jb 0x1401478b0
nop word cs:[rax + rax]
mov eax, dword [0x14022bf80]
mov ecx, dword [0x14022bf84]
not ecx
add eax, ecx
add eax, 0x52431345
mov ecx, eax
not ecx
mov edx, eax
or edx, 0x81a9696e
mov r8d, edx
and r8d, 0x13936302
and ecx, 0x6c449491
imul ecx, r8d
and edx, 0xec6c9cfd
or eax, 0xededfdff
imul eax, edx
add eax, ecx
cmp eax, 0x3b369580
ja 0x140147900
test r14, r14
je 0x140147a70
mov eax, dword [0x14022bf88]
mov ecx, dword [0x14022bf8c]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
imul eax, eax, 0xaea0c12f
add eax, 0x3a252ea3
mov ecx, 0xb57565c9
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x26ac0283
je 0x1401479cc
mov eax, dword [0x14022bf90]
xor edx, edx
div dword [0x14022bf94]
and eax, 0x4d7f5bac
xor eax, 0x860488c
add eax, 0x5864e710
mov rdi, qword [0x14022cb48]
cmp eax, 0xc7e8863
jae 0x1401479d5
mov rax, qword [0x14022cb48]
jmp 0x1401479a1
mov eax, dword [0x14022bf98]
add eax, dword [0x14022bf9c]
mov ecx, eax
and ecx, 0x368a294b
xor ecx, 0x1008284b
and eax, 0x1008284b
or eax, ecx
add eax, 0x241dda10
cmp eax, 0xd5298141
ja 0x140147a43
mov eax, dword [0x14022bfa0]
mov ecx, eax
not ecx
or ecx, dword [0x14022bfa4]
lea ebx, [rax + rcx]
inc ebx
mov eax, ebx
and eax, 0x1f740393
add eax, eax
sub ebx, eax
add ebx, 0xd5257ce8
or ebx, 0x9d0d9fb
mov rcx, rdi
xor edx, edx
mov r8, rsi
call fcn.14014eed0
cmp ebx, 0x7cf86209
jae 0x140147a53
mov rcx, rdi
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140147a02
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140147a60
nop word cs:[rax + rax]
mov eax, dword [0x14022bfa8]
xor edx, edx
div dword [0x14022bfac]
mov ecx, eax
xor ecx, 0xc775ed6e
and ecx, eax
mov eax, ecx
xor eax, 0x497106ac
and ecx, 0x368ef953
add ecx, ecx
sub ecx, eax
add ecx, 0x87b99fbb
cmp ecx, 0x5699f261
ja 0x140147a70
nop word [rax + rax]
mov eax, dword [0x14022bfb0]
mov ecx, dword [0x14022bfb4]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x5d264bf7
and ecx, 0xa2d9b408
imul ecx, edx
mov edx, eax
and edx, 0xa2d9b408
or eax, 0xa2d9b408
imul eax, edx
add eax, ecx
imul rax, rax, 0x6209f1f5
shr rax, 0x3d
cmp eax, 0x31e1dfb2
ja 0x140147ab0
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret