Function at 0x140096e40
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, 0x38
mov rsi, rdx
movzx edi, word [rdx + 0x10]
mov r15, qword [rdx]
mov r14, qword [rdx + 8]
xor ebp, ebp
mov r10d, 0xd11d9dd1
mov r13, 0xffffffffffffffff
mov r12d, 0xc26dfb23
mov qword [rsp + 0x30], rcx
nop dword [rax + rax]
mov r9d, edi
mov edi, 0xc614be8d
nop dword [rax + rax]
mov eax, dword [0x141f3d248]
xor edx, edx
div dword [0x141f3d24c]
add eax, 0x8a37ac74
xor eax, 0x82760ce8
imul eax, eax, 0x91f9cd8b
cmp eax, 0x5e5299f6
jb 0x140096e90
test r9w, r9w
je 0x140096f60
mov eax, dword [0x141f3d290]
and eax, dword [0x141f3d294]
add eax, 0xcc6c411a
imul rdx, rax, 0x8d85da1
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1f
or eax, 0x14ae032a
cmp eax, 0xda4fe70e
jbe 0x140096f00
mov word [rsi + 0x10], 0
nop word cs:[rax + rax]
mov eax, dword [0x141f3d298]
or eax, dword [0x141f3d29c]
imul eax, eax, 0x1692470a
imul rax, r12
shr rax, 0x3f
mov word [rsi + 0x10], 0
cmp eax, 0x2ee4b2d6
je 0x140096f00
nop word [rax + rax]
mov eax, dword [0x141f3d2a0]
sub eax, dword [0x141f3d2a4]
add eax, 0x3d250fdd
xor eax, 0xe7279dd8
add eax, 0x82cc2647
cmp eax, 0x7879de73
jae 0x140096f30
xor edi, edi
jmp 0x140097090
mov eax, dword [0x141f3d250]
xor eax, dword [0x141f3d254]
add eax, 0x532c4a53
and eax, 0x8110fa88
add eax, 0x1033e5c3
cmp eax, 0xde9fb333
ja 0x140096f60
cmp r15, r14
je 0x140097351
lea r11, [r15 + 1]
mov qword [rsi], r11
movzx edx, byte [r15]
nop word cs:[rax + rax]
mov eax, dword [0x141f3d258]
sub eax, dword [0x141f3d25c]
xor eax, 0x8f4aec03
imul rax, rax, 0x22e19f37
shr rax, 0x3d
add eax, 0xfcddd901
cmp eax, 0xfb0d8d11
jb 0x140096fa0
test dl, dl
js 0x140096fd4
mov r8d, edx
jmp 0x140097080
mov eax, edx
and eax, 0x1f
lea r11, [r15 + 2]
mov qword [rsi], r11
movzx r9d, byte [r15 + 1]
mov r8d, eax
shl r8d, 6
and r9d, 0x3f
or r8d, r9d
nop word cs:[rax + rax]
mov r10d, dword [0x141f3d260]
or r10d, dword [0x141f3d264]
add r10d, 0xffa8bcfc
and r10d, 0x7fcafd24
add r10d, 0x75a2a9b8
cmp r10d, 0xdf976c29
jb 0x140097000
cmp dl, 0xdf
mov r10d, 0xd11d9dd1
jbe 0x140097080
mov r8d, dword [0x141f3d268]
or r8d, dword [0x141f3d26c]
imul r10d, r8d, 0xccda58da
imul r8, r10, 0x28d1fef1
shr r8, 0x20
sub r10d, r8d
shr r10d, 1
add r10d, r8d
shr r10d, 0x1b
and r10d, 0xfffffff8
cmp r10d, 0xc7531e95
jne 0x14009716f
jmp 0x14009719b
xor edi, edi
mov r15, r11
mov r9d, r8d
nop dword [rax + rax]
mov eax, dword [0x141f3d2c0]
imul eax, dword [0x141f3d2c4]
add eax, 0xe4bb2a82
imul rax, r10
shr rax, 0x3c
cmp eax, 0x2f3f0a1c
je 0x140097090
mov rbx, qword [rcx + 0x10]
cmp rbx, qword [rcx]
je 0x14009710c
mov eax, dword [0x141f3d2c8]
or eax, dword [0x141f3d2cc]
imul eax, eax, 0xac38837b
and eax, 0x2a44094
cmp eax, 0xe91a673e
ja 0x1400970ba
mov rax, qword [rcx + 8]
mov word [rax + rbx*2], r9w
inc rbx
mov eax, dword [0x141f3d2d0]
mov edx, dword [0x141f3d2d4]
add eax, edx
add eax, 0x8ebb02cf
xor eax, 0xbad37b9d
cmp eax, 0xcebff600
jbe 0x140097330
jmp 0x14009734b
mov dword [rsp + 0x2c], r9d
nop word cs:[rax + rax]
mov r8, r14
sub r8, r15
add r8, 3
cmovb r8, r13
test bpl, bpl
jne 0x140097120
shr r8, 2
cmp di, 1
sbb r8, 0
add r8, 2
mov qword [rsp + 0x20], 2
mov r9d, 2
mov rdx, rbx
call fcn.1401035b0
mov rcx, qword [rsp + 0x30]
mov r10d, 0xd11d9dd1
mov r9d, dword [rsp + 0x2c]
jmp 0x1400970ba
mov r8d, dword [0x141f3d270]
sub r8d, dword [0x141f3d274]
add r8d, 0x25ec1f0c
and r8d, 0x94278b00
lea r11, [r15 + 3]
mov qword [rsi], r11
cmp r8d, 0x2ccd5dc3
jne 0x1400971a4
lea r8, [r15 + 3]
mov qword [rsi], r8
jmp 0x14009716f
movzx r10d, byte [r15 + 2]
shl r9d, 6
and r10d, 0x3f
or r10d, r9d
mov r8d, eax
shl r8d, 0xc
or r8d, r10d
nop
mov r9d, dword [0x141f3d278]
imul r9d, dword [0x141f3d27c]
add r9d, 0x8170aacf
xor r9d, 0x4e896ea0
imul r9, rdi
shr r9, 0x3f
cmp r9d, 0x2375c7c9
ja 0x1400971c0
cmp dl, 0xf0
jb 0x14009725e
mov edx, dword [0x141f3d280]
xor edx, dword [0x141f3d284]
imul edx, edx, 0xbc6080c
add edx, 0x39184b0e
cmp edx, 0xe5f95171
ja 0x1400972da
mov edx, dword [0x141f3d288]
imul edx, dword [0x141f3d28c]
and edx, 0x140502a8
add edx, 0xba7c189d
lea r11, [r15 + 4]
mov qword [rsi], r11
cmp edx, 0xa214bb7
jb 0x1400972da
shl eax, 0x12
movzx r8d, byte [r15 + 3]
and eax, 0x1c0000
shl r10d, 6
and r8d, 0x3f
or r8d, r10d
or r8d, eax
mov r10d, 0xd11d9dd1
nop word cs:[rax + rax]
test bpl, bpl
jne 0x140097270
cmp r8d, 0xffff
jbe 0x140097080
mov eax, dword [0x141f3d2a8]
xor edx, edx
div dword [0x141f3d2ac]
or eax, 0xfbf7fefe
add eax, 0xcfbb4448
cmp eax, 0xd27d2ea7
ja 0x140097282
lea eax, [r8 + 0xff0000]
shr eax, 0xa
movzx r9d, ax
or r9d, 0xd800
mov eax, dword [0x141f3d2b0]
and eax, dword [0x141f3d2b4]
xor eax, 0x6dcdc8cb
add eax, 0x6aaf7fee
or eax, 0x65c09cba
cmp eax, 0xd562eea0
jae 0x1400972e6
jmp 0x140097313
lea rdx, [r15 + 4]
mov qword [rsi], rdx
jmp 0x140097217
mov eax, dword [0x141f3d2b8]
xor edx, edx
div dword [0x141f3d2bc]
add eax, 0x43eeee45
mov edi, r8d
and edi, 0x3ff
or edi, 0xdc00
mov word [rsi + 0x10], di
cmp eax, 0xe0cb2c95
jbe 0x140097326
mov eax, r8d
and eax, 0x3ff
or eax, 0xdc00
mov word [rsi + 0x10], ax
jmp 0x1400972e6
mov r15, r11
jmp 0x140097090
mov eax, dword [0x141f3d2d8]
xor eax, dword [0x141f3d2dc]
mov qword [rcx + 0x10], rbx
cmp eax, 0xb3cd1c61
jne 0x140096e80
mov qword [rcx + 0x10], rbx
jmp 0x140097330
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret