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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
cmp byte [rcx + 0x3c], 0
mov qword [rsp + 0xd8], rdx
mov rbp, rcx
mov rsi, r8
mov qword [rsp + 0xe8], r9
jne 0x140179cc2
cmp byte [rcx + 0x450], 0
jne 0x140179b2e
lea rax, [rbp + 0x40]
xor r11d, r11d
cmp qword [rsp + 0xe8], 0
mov qword [rsp + 0x38], rax
je 0x1401795b2
mov qword [rsp + 0x20], r11
mov rax, qword [rbp + 0x20]
mov rdi, qword [rsi + 0x10]
mov qword [rsp + 0x28], rax
mov rax, qword [rsi]
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0x30], rax
call fcn.1401746e0
mov ebx, eax
cmp eax, 0xffffffff
je 0x1401798b0
cmp eax, 0x3c
jle 0x1401795c0
movzx edx, byte [rsi + 0x20]
and edx, 1
je 0x140179960
mov r15, qword [rbp + 0x40]
xor r13d, r13d
mov r14d, 2
test r15, r15
je 0x140179be6
xor r12d, r12d
jmp 0x140179495
test r12, r12
je 0x1401794d0
mov rax, qword [r15 + 8]
mov r8, qword [rsi + 0x18]
cmp r8, qword [rax + 0x18]
je 0x1401794eb
nop dword [rax + rax]
mov r15, qword [r15 + 0x40]
test r15, r15
je 0x1401796a0
cmp ebx, dword [r15 + 0x10]
jne 0x140179488
cmp ebx, 0xffffffff
jne 0x140179470
cmp r13d, dword [r15 + 0x4c]
jne 0x140179488
mov rax, qword [r15]
cmp rdi, qword [rax + 0x18]
jne 0x140179488
mov rcx, qword [rax + 0x10]
mov rdx, qword [rsp + 0x30]
mov r8, rdi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140179488
test r12, r12
jne 0x140179475
nop dword [rax]
cmp r14d, 2
je 0x1401799a0
mov rax, qword [r15 + 8]
mov r8, qword [rsi + 0x18]
mov r12, r15
cmp r8, qword [rax + 0x18]
jne 0x140179488
mov rdx, qword [rsi + 8]
mov rcx, qword [rax + 0x10]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140179488
mov eax, dword [rbp + 0x38]
add eax, 0x3c
sub eax, dword [r15 + 0x48]
lea rdx, [rax + 1]
cmp rdx, 0x7e
jbe 0x140179ab8
sub rax, 0x7e
cmp rax, 0x7f
jbe 0x140179cad
mov rcx, rax
mov edx, 1
nop word [rax + rax]
shr rcx, 7
mov r8, rdx
add rdx, 1
cmp rcx, 0x7f
ja 0x140179530
add r8, 2
cmp r8, 0x10
ja 0x140179b87
mov byte [rsp + 0x40], 0xff
lea rdx, [rsp + 0x41]
nop dword [rax]
mov ecx, eax
add rdx, 1
shr rax, 7
or ecx, 0xffffff80
mov byte [rdx - 1], cl
cmp rax, 0x7f
ja 0x140179560
mov byte [rdx], al
lea rbx, [rsp + 0x40]
mov rcx, qword [rsp + 0xd8]
mov rdx, rbx
call fcn.140178ee0
test eax, eax
jne 0x140179876
add qword [rsp + 0x20], 1
add rsi, 0x28
mov rax, qword [rsp + 0x20]
cmp qword [rsp + 0xe8], rax
jne 0x140179410
xor eax, eax
jmp 0x14017987a
movsxd rcx, eax
lea r8, [0x140402ae0]
mov rax, rcx
shl rax, 7
mov r13d, dword [r8 + rax + 0x7c]
mov edx, r13d
and edx, 0x7f
cmp ebx, 0x16
je 0x140179890
cmp ebx, 0x1f
jne 0x140179ccc
mov rax, qword [rsi + 0x18]
cmp rax, 0x13
jbe 0x140179630
test byte [rsi + 0x20], 1
jne 0x140179630
lea r10, [rdi + rax + 0x20]
mov rax, qword [rbp + 0x30]
mov r15, qword [rbp + rdx*8 + 0x40]
xor r14d, r14d
lea rax, [rax + rax*2]
shr rax, 2
cmp rax, r10
setb r14b
test r15, r15
jne 0x140179467
mov rdi, rcx
jmp 0x140179a67
mov r15, qword [rbp + rdx*8 + 0x40]
mov r14d, 2
test r15, r15
jne 0x140179467
mov edi, 0x20
mov r11d, 0xf
mov r9d, 0x10
mov r10d, 0xf
mov r14d, 2
neg r9d
mov r8d, 2
cmp r14d, 1
je 0x140179814
cmp r14d, 2
jne 0x140179d0c
and r9d, 0x10
mov eax, 0x10
cmp rdi, r10
jae 0x140179822
lea rbx, [rsp + 0x40]
jmp 0x140179bfc
cmp ebx, 0x3c
jbe 0x140179a50
test r12, r12
je 0x140179aca
mov eax, dword [rbp + 0x38]
lea edi, [rax + 0x3c]
sub edi, dword [r12 + 0x48]
test r14d, r14d
jne 0x1401799b8
lea rcx, [rsp + 0x60]
mov r8, rdi
mov rdx, rbp
call fcn.140177090
mov r15, qword [rsp + 0x60]
mov eax, dword [r15 + 0x20]
mov qword [rsp + 0x40], r15
cmp eax, 0xffffffff
je 0x1401796f0
add eax, 1
mov dword [r15 + 0x20], eax
mov rax, qword [rsi + 8]
mov r14, qword [rsi + 0x18]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x28]
lea rcx, [r14 + 0x29]
mov rdx, qword [rax]
call qword [rax + 8]
mov r12, rax
test rax, rax
je 0x140179a3c
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx]
mov qword [r12], rax
mov rax, qword [rcx + 0x10]
lea rcx, [r12 + 0x28]
mov qword [r12 + 0x10], rcx
mov qword [r12 + 8], rax
mov dword [r12 + 0x20], 1
mov qword [r12 + 0x18], r14
test r14, r14
je 0x140179762
mov rdx, qword [rsp + 0x30]
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rcx, rax
add rcx, r14
mov byte [rcx], 0
mov r8, qword [rsp + 0x38]
mov r9d, r13d
mov rcx, rbp
mov dword [rsp + 0x50], ebx
lea rbx, [rsp + 0x40]
mov rdx, rbx
mov byte [rsp + 0x54], 0
call fcn.140177790
mov rcx, r12
mov r14d, eax
call fcn.1401776a0
mov rcx, r15
call fcn.1401776a0
test r14d, r14d
jne 0x140179b87
cmp rdi, 0xffffffffffffffff
je 0x1401799dd
add rdi, 1
cmp rdi, 0x3e
jbe 0x140179bf0
mov r10d, 0x3f
mov r11d, 0x3f
mov r9d, 0x40
mov rdx, rdi
mov ecx, 1
sub rdx, r10
cmp rdx, 0x7f
jbe 0x140179661
nop dword [rax]
shr rdx, 7
mov r8, rcx
add rcx, 1
cmp rdx, 0x7f
ja 0x1401797e8
add r8, 2
cmp r8, 0x10
ja 0x140179b87
neg r9d
cmp r14d, 1
jne 0x140179674
xor r9d, r9d
xor eax, eax
cmp rdi, r10
jb 0x140179690
or eax, r11d
sub rdi, r10
mov byte [rsp + 0x40], al
lea rax, [rsp + 0x41]
cmp rdi, 0x7f
jbe 0x140179856
nop word [rax + rax]
mov edx, edi
add rax, 1
shr rdi, 7
or edx, 0xffffff80
mov byte [rax - 1], dl
cmp rdi, 0x7f
ja 0x140179840
mov byte [rax], dil
lea rbx, [rsp + 0x40]
mov rcx, qword [rsp + 0xd8]
mov rdx, rbx
call fcn.140178ee0
test eax, eax
je 0x140179a22
mov byte [rbp + 0x3c], 1
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, qword [rbp + rdx*8 + 0x40]
mov r14d, 2
test r15, r15
jne 0x140179467
mov edi, 0x17
jmp 0x140179649
test rdi, rdi
je 0x140179bb8
mov rcx, qword [rsp + 0x30]
mov edx, 0x811c9dc5
mov rax, rcx
lea r8, [rdi + rcx]
nop word [rax + rax]
movzx r13d, byte [rax]
add rax, 1
xor r13d, edx
mov edx, r13d
lea r9d, [r13 + r13*8]
mov ecx, r13d
shl edx, 7
shl ecx, 0x18
lea edx, [rdx + r9*2]
add edx, r13d
shl r13d, 8
add edx, r13d
add edx, ecx
cmp r8, rax
jne 0x1401798d0
mov r13d, edx
and edx, 0x7f
test byte [rsi + 0x20], 1
jne 0x140179bcd
mov rax, qword [rsi + 0x18]
mov r15, qword [rbp + rdx*8 + 0x40]
xor r14d, r14d
lea r8, [rdi + rax + 0x20]
mov rax, qword [rbp + 0x30]
lea rcx, [rax + rax*2]
shr rcx, 2
cmp rcx, r8
setb r14b
test r15, r15
jne 0x140179467
cmp ebx, 0x3c
jbe 0x140179d1c
xor edx, edx
cmp rcx, r8
jae 0x140179ad3
jmp 0x1401799e2
mov rax, qword [rsi + 0x18]
mov r15, qword [rbp + 0x40]
xor r14d, r14d
lea r8, [rdi + rax + 0x20]
mov rax, qword [rbp + 0x30]
lea rcx, [rax + rax*2]
shr rcx, 2
cmp rcx, r8
setb r14b
xor r13d, r13d
test r15, r15
jne 0x140179467
cmp rcx, r8
jae 0x140179ad3
jmp 0x1401799e2
cmp ebx, 0x3c
jbe 0x140179c3c
mov eax, dword [rbp + 0x38]
lea edi, [rax + 0x3c]
sub edi, dword [r15 + 0x48]
nop dword [rax + rax]
add rdi, 1
cmp rdi, 0xe
jbe 0x140179b91
mov r10d, 0xf
mov r11d, 0xf
mov r9d, 0x10
jmp 0x1401797cc
mov edx, 0x40
mov rax, qword [rsp + 0xd8]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x20]
cmp qword [rax + 0x10], rcx
je 0x140179c09
lea r8, [rcx + 1]
mov qword [rax + 0x20], r8
mov byte [rcx], dl
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
call fcn.140179010
test eax, eax
jne 0x140179876
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x18]
mov rcx, qword [rsp + 0xd8]
call fcn.140179010
jmp 0x14017958d
mov rcx, r15
call fcn.1401776a0
mov eax, 0xfffffc7b
jmp 0x140179876
movsxd rcx, ebx
lea r8, [0x140402ae0]
mov rdi, rcx
cmp r14d, 2
je 0x140179c3f
shl rcx, 7
mov r15d, ebx
lea r12, [r8 + rcx + 0x38]
jmp 0x140179a8a
add r15d, 1
sub r12, 0xffffffffffffff80
cmp r15d, 0x3d
je 0x1401796bd
cmp ebx, dword [r12 + 0x40]
jne 0x1401796bd
mov r8, qword [rsi + 0x18]
cmp qword [r12 + 8], r8
jne 0x140179a78
mov rdx, qword [rsi + 8]
mov rcx, qword [r12]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140179a78
lea edx, [r15 + 1]
movsxd rdx, edx
or edx, 0xffffff80
mov r8d, 1
mov byte [rsp + 0x40], dl
jmp 0x140179578
test r14d, r14d
jne 0x140179c7c
mov r14, qword [rsp + 0x28]
lea rcx, [rdi + 0x29]
mov rdx, qword [r14]
call qword [r14 + 8]
mov r15, rax
test rax, rax
je 0x140179a44
mov qword [rsp + 0x40], rax
mov rax, qword [r14]
lea rcx, [r15 + 0x28]
mov qword [r15], rax
mov rax, qword [r14 + 0x10]
mov qword [r15 + 0x10], rcx
mov qword [r15 + 8], rax
mov dword [r15 + 0x20], 1
mov qword [r15 + 0x18], rdi
test rdi, rdi
jne 0x140179c8b
mov byte [rcx], 0
mov rdi, 0xffffffffffffffff
jmp 0x1401796f0
mov rax, qword [rcx + 0x448]
mov rdx, qword [rcx + 0x30]
mov edi, 0xffffffff
mov byte [rcx + 0x450], 0
mov qword [rcx + 0x448], rdi
cmp rax, rdx
jae 0x140179b6d
mov rcx, qword [rsp + 0xd8]
mov rdx, rax
call fcn.140178f60
test eax, eax
jne 0x140179876
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rsp + 0xd8]
call fcn.140178f60
test eax, eax
je 0x1401793f0
jmp 0x140179876
mov eax, 0xfffffdf5
jmp 0x140179876
cmp r14d, 1
je 0x140179c60
mov r9d, 0xfffffff0
mov r11d, 0xf
mov r8d, 1
mov r10d, 0xf
jmp 0x14017967e
mov edx, 0x45
mov r13d, 0x811c9dc5
test byte [rsi + 0x20], 1
je 0x140179911
mov r15, qword [rbp + rdx*8 + 0x40]
mov r14d, 2
test r15, r15
jne 0x140179467
cmp ebx, 0x3c
jbe 0x140179c3c
mov edx, 0x10
jmp 0x1401799e2
mov r9d, 0x40
mov r8d, 1
or r9d, edi
mov byte [rsp + 0x40], r9b
jmp 0x14017985e
mov rcx, qword [rsp + 0xd8]
mov byte [rsp + 0x28], dl
call fcn.140178e60
test eax, eax
jne 0x140179876
mov rax, qword [rsp + 0xd8]
movzx edx, byte [rsp + 0x28]
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x20]
jmp 0x1401799fc
movsxd rdi, ebx
add rdi, 1
cmp rdi, 0xe
ja 0x140179649
mov r9d, 0x10
mov r8d, 1
lea rbx, [rsp + 0x40]
jmp 0x140179bfc
xor r9d, r9d
xor eax, eax
mov r11d, 0xf
mov r8d, 1
mov r10d, 0xf
jmp 0x140179819
cmp r14d, 1
setne dl
shl edx, 4
jmp 0x1401799e2
mov rdx, qword [rsp + 0x30]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rcx, rax
add rcx, rdi
mov rdi, 0xffffffffffffffff
mov byte [rcx], 0
jmp 0x1401796f0
mov byte [rsp + 0x40], 0xff
mov r8d, 2
lea rdx, [rsp + 0x41]
jmp 0x140179576
mov eax, 0xfffffdf5
jmp 0x14017987a
test byte [rsi + 0x20], 1
jne 0x140179bcd
cmp ebx, 0x36
ja 0x140179911
movabs rax, 0x40218208100008
bt rax, rcx
jae 0x140179911
mov r15, qword [rbp + rdx*8 + 0x40]
mov r14d, 1
test r15, r15
jne 0x140179467
jmp 0x140179627
mov r9d, 0x40
mov eax, 0x40
jmp 0x140179819
lea r8, [0x140402ae0]
movsxd rcx, ebx
jmp 0x140179627