Function at 0x140005ec0
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, 0xd8
mov ebp, r9d
mov rbx, r8
mov rdi, rdx
movzx r15d, word [rsp + 0x148]
movzx esi, byte [rsp + 0x140]
test r8, r8
mov qword [rsp + 0x90], rcx
je 0x140005f0b
movzx edx, byte [rdi]
cmp rbx, 1
jne 0x140005f21
mov r14d, edx
jmp 0x14000605a
mov r12d, 1
mov ecx, 2
xor r13d, r13d
xor r14d, r14d
jmp 0x140006082
cmp rbx, 9
jae 0x140005f2e
xor eax, eax
jmp 0x140006033
lea rcx, [rbx - 1]
cmp rbx, 0x21
jae 0x140005f3f
xor eax, eax
jmp 0x140005fcf
mov rax, rcx
and rax, 0xffffffffffffffe0
movzx edx, dl
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor edx, edx
movdqa xmm1, xmm0
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rdx + 1]
pmaxub xmm0, xmm2
movdqu xmm2, xmmword [rdi + rdx + 0x11]
pmaxub xmm1, xmm2
add rdx, 0x20
cmp rax, rdx
jne 0x140005f70
pmaxub xmm0, xmm1
pshufd xmm1, xmm0, 0xee
pmaxub xmm1, xmm0
pshufd xmm0, xmm1, 0x55
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
pmaxub xmm0, xmm1
movd edx, xmm0
cmp rcx, rax
je 0x140005f03
test cl, 0x18
je 0x140006033
mov r8, rax
mov rax, rcx
and rax, 0xfffffffffffffff8
movzx edx, dl
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
nop dword [rax]
movq xmm1, qword [rdi + r8 + 1]
pmaxub xmm0, xmm1
add r8, 8
cmp rax, r8
jne 0x140005ff0
pshufd xmm1, xmm0, 0x55
pmaxub xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
pmaxub xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
pmaxub xmm1, xmm0
movd edx, xmm1
mov r14d, edx
cmp rcx, rax
je 0x14000605a
inc rax
nop word cs:[rax + rax]
movzx r14d, byte [rdi + rax]
movzx ecx, dl
cmp cl, r14b
cmova r14d, ecx
inc rax
mov edx, r14d
cmp rbx, rax
jne 0x140006040
mov r12d, 1
mov ecx, r14d
shl r12, cl
mov r13d, r14d
and r13b, 0x3f
mov eax, 2
shl rax, cl
mov rcx, rax
cmp r13b, 0x3d
ja 0x140006a2b
movzx eax, byte [0x14005eb28]
call fcn.1400100e0
test rax, rax
je 0x140006a2b
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0
test r13b, r13b
je 0x1400060bf
mov ecx, 1
cmp r12, 0x11
jae 0x1400060c7
mov rdx, rax
jmp 0x140006110
mov r12d, 1
jmp 0x140006131
lea r8, [r12 - 1]
mov r9, r8
and r9, 0xfffffffffffffff0
lea rdx, [rax + r9*2]
lea rcx, [r9 + 1]
xor r10d, r10d
movdqa xmm0, xmmword [0x1400234f0]
nop word cs:[rax + rax]
movdqu xmmword [rax + r10*2], xmm0
movdqu xmmword [rax + r10*2 + 0x10], xmm0
add r10, 0x10
cmp r9, r10
jne 0x1400060f0
cmp r8, r9
jne 0x140006110
mov rax, rdx
jmp 0x140006131
mov rax, rdx
nop word cs:[rax + rax]
inc rcx
mov word [rax], 0x10
add rax, 2
cmp r12, rcx
jne 0x140006120
lea r13, [rdi + rbx]
mov word [rax], 0x10
mov qword [rsp + 0x80], r12
movdqu xmm0, xmmword [rsp + 0x58]
movdqa xmmword [rsp + 0x70], xmm0
mov word [rsp + 0x88], r15w
mov word [rsp + 0x8a], 0x100
mov byte [rsp + 0x8c], bpl
mov byte [rsp + 0x8d], sil
mov byte [rsp + 0x8e], r14b
xor r14d, r14d
nop dword [rax]
cmp rbx, r14
je 0x140006233
mov rsi, r14
movzx ebp, byte [rdi + r14]
inc r14
test bpl, bpl
je 0x140006180
movzx eax, byte [0x14005eb28]
mov ecx, 0x10
call fcn.1400100e0
test rax, rax
je 0x140006a2b
add rdi, rsi
inc rdi
mov word [rax], si
mov byte [rax + 2], bpl
mov qword [rsp + 0x58], 4
mov qword [rsp + 0x60], rax
mov ecx, 1
mov qword [rsp + 0x50], rcx
lea rsi, [rsp + 0x58]
mov r12d, 1
mov qword [rsp + 0x68], r12
nop dword [rax + rax]
cmp rdi, r13
je 0x140006246
mov rbx, r14
movzx ebp, byte [rdi]
inc rdi
inc r14
test bpl, bpl
je 0x1400061f0
cmp r12, qword [rsp + 0x58]
je 0x140006221
mov word [rax + r12*4], bx
mov byte [rax + r12*4 + 2], bpl
inc r12
dec qword [rsp + 0x50]
jmp 0x1400061e3
mov rcx, rsi
mov rdx, r12
call fcn.140021550
mov rax, qword [rsp + 0x60]
jmp 0x14000620d
mov r14d, 2
mov byte [rsp + 0x27], 1
xor r12d, r12d
jmp 0x1400068f4
mov r14, qword [rsp + 0x60]
cmp qword [rsp + 0x58], 0
sete bl
cmp r12, 0x15
mov byte [rsp + 0x27], bl
jae 0x14000627e
cmp r12, 1
jbe 0x1400068f4
mov r8d, 1
mov rcx, r14
mov rdx, r12
call fcn.1400058f0
jmp 0x1400068f4
movabs rax, 0x7ffffffffffffffc
lea rcx, [r12 + r12]
and rcx, rax
movzx eax, byte [0x14005eb28]
call fcn.1400100e0
test rax, rax
je 0x140006a2b
mov r15, rax
movzx eax, byte [0x14005eb28]
mov ecx, 0x100
call fcn.1400100e0
test rax, rax
je 0x140006a2b
mov rbp, rax
lea rax, [r14 + 6]
mov qword [rsp + 0xa8], rax
lea rax, [r14 - 4]
mov qword [rsp + 0xa0], rax
mov eax, 0x10
mov qword [rsp + 0x98], rax
xor edi, edi
xor ebx, ebx
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], r15
mov qword [rsp + 0xb0], r12
jmp 0x140006323
mov ebx, 1
mov rdi, qword [rsp + 0x40]
cmp rdi, r12
jae 0x1400068d1
mov rax, r12
sub rax, rdi
lea rcx, [r14 + rdi*4]
cmp rax, 2
jae 0x1400066f0
mov r8, rax
lea rax, [r8 + rdi]
mov rsi, rax
sub rsi, rdi
jb 0x140006a2b
cmp rax, r12
ja 0x140006a2b
jae 0x140006393
cmp r8, 0xa
jae 0x140006393
cmp rdi, 0xfffffffffffffff6
jae 0x140006a2b
mov r13, rbx
lea rbx, [rdi + 0xa]
cmp rbx, r12
cmovae rbx, r12
cmp rax, rdi
mov eax, 1
cmove r8, rax
mov rsi, rbx
sub rsi, rdi
mov rdx, rsi
call fcn.1400058f0
mov rax, rbx
mov rbx, r13
mov qword [rsp + 0x40], rax
cmp rbx, qword [rsp + 0x98]
jne 0x1400063f4
mov rcx, rbx
shl rcx, 5
movzx eax, byte [0x14005eb28]
call fcn.1400100e0
test rax, rax
je 0x140006a2b
mov r13, rax
lea rax, [rbx + rbx]
mov qword [rsp + 0x98], rax
mov r8, rbx
shl r8, 4
mov rcx, r13
mov rdx, rbp
call fcn.140020090
mov rcx, qword [0x14005eb20]
xor edx, edx
mov r8, rbp
call qword [sym.imp.kernel32.dll_HeapFree]
mov rbp, r13
mov rax, rbx
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], rdi
inc rbx
mov rax, rbx
cmp rbx, 2
mov qword [rsp + 0x48], rbp
jae 0x140006490
jmp 0x140006315
mov r15, qword [rsp + 0x38]
mov rdx, r15
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x48]
add rdi, rbp
sub r8, rdx
mov rcx, rsi
call fcn.140020090
mov rax, qword [rsp + 0xb8]
add rax, r12
mov qword [rdi], rax
mov rax, qword [rsp + 0xc0]
mov qword [rdi + 8], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0xc8]
not rax
add rbx, rax
shl rbx, 4
mov rcx, r13
mov r8, rbx
call fcn.140020090
mov rax, qword [rsp + 0xd0]
cmp rax, 1
mov r12, qword [rsp + 0xb0]
jbe 0x140006310
mov rbx, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r12
je 0x140006500
mov rdx, rbx
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x140006500
cmp rbx, 2
je 0x1400067e9
lea r11, [rbx - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140006516
cmp rbx, 3
jbe 0x1400068c7
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x140006516
jmp 0x140006315
cmp rbx, 2
je 0x14000651b
lea r11, [rbx - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x14000651f
lea r11, [rbx - 2]
cmp r11, rbx
jae 0x140006a2b
lea rdi, [r11 + 1]
mov qword [rsp + 0x28], rbx
cmp rdi, rbx
jae 0x140006a2b
mov r13, r11
shl r13, 4
mov rax, qword [rbp + r13 + 8]
shl rdi, 4
mov rcx, qword [rbp + rdi]
mov rbx, qword [rbp + rdi + 8]
add rbx, rcx
mov r15, rbx
sub r15, rax
jb 0x140006a2b
cmp rbx, r12
ja 0x140006a2b
mov qword [rsp + 0xb8], rcx
mov qword [rsp + 0xc8], r11
mov qword [rsp + 0xd0], r10
add r13, rbp
mov r12, qword [r13]
mov qword [rsp + 0xc0], rax
lea rsi, [r14 + rax*4]
lea rbp, [rsi + r12*4]
mov r14, r15
sub r14, r12
cmp r14, r12
jae 0x140006640
lea r8, [r14*4]
mov r15, qword [rsp + 0x38]
mov rcx, r15
mov rdx, rbp
call fcn.140020090
lea r8, [r15 + r14*4]
test r12, r12
jle 0x1400066d0
test r14, r14
jle 0x1400066d0
mov rax, qword [rsp + 0xa0]
lea rax, [rax + rbx*4]
mov r14, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x28]
nop
movzx ecx, byte [r8 - 2]
movzx edx, byte [rbp - 2]
cmp cl, dl
mov r9d, 0
sbb r9, r9
cmp cl, dl
mov r10d, 0
adc r10, 0xffffffffffffffff
cmp cl, dl
lea rbp, [rbp + r9*4]
lea r8, [r8 + r10*4]
mov rcx, r8
cmovb rcx, rbp
mov ecx, dword [rcx]
mov dword [rax], ecx
cmp rbp, rsi
jbe 0x140006634
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x1400065f0
mov rsi, rbp
mov rdx, r15
jmp 0x140006428
lea r8, [r12*4]
mov r14, qword [rsp + 0x38]
mov rcx, r14
mov rdx, rsi
call fcn.140020090
lea r8, [r14 + r12*4]
test r12, r12
jle 0x1400066d5
cmp r15, r12
mov r14, qword [rsp + 0x30]
jle 0x14000641b
lea rax, [r14 + rbx*4]
mov r15, qword [rsp + 0x38]
mov rdx, r15
mov rbx, qword [rsp + 0x28]
movzx r9d, byte [rbp + 2]
xor r10d, r10d
xor ecx, ecx
cmp r9b, byte [rdx + 2]
setae r10b
setb r9b
mov r11, rdx
cmovb r11, rbp
mov r11d, dword [r11]
mov dword [rsi], r11d
add rsi, 4
lea rdx, [rdx + r10*4]
cmp rdx, r8
jae 0x140006428
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x140006680
jmp 0x140006428
mov rsi, rbp
jmp 0x1400066da
mov r15, qword [rsp + 0x38]
mov rdx, r15
mov r14, qword [rsp + 0x30]
jmp 0x140006423
movzx edx, byte [rcx + 6]
cmp dl, byte [rcx + 2]
jae 0x140006770
mov r8d, 2
cmp rax, 2
je 0x140006741
mov r8, qword [rsp + 0x50]
lea r9, [r8 + rdi]
mov r8d, 2
nop word cs:[rax + rax]
mov r10d, edx
movzx edx, byte [rcx + r8*4 + 2]
cmp dl, r10b
jae 0x140006741
lea r10, [r9 + r8]
inc r10
inc r8
cmp r10, 2
jne 0x140006720
mov r8, rax
mov rax, r8
add rax, rdi
jb 0x140006a2b
cmp rax, r12
ja 0x140006a2b
cmp r8, 2
jae 0x1400067b7
mov r8d, 1
jmp 0x14000633e
mov r8d, 2
cmp rax, 2
je 0x14000633a
mov r8, qword [rsp + 0x50]
lea r9, [r8 + rdi]
mov r8d, 2
nop
mov r10d, edx
movzx edx, byte [rcx + r8*4 + 2]
cmp dl, r10b
jb 0x14000633a
lea r10, [r9 + r8]
inc r10
inc r8
cmp r10, 2
jne 0x140006790
jmp 0x140006337
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x48], rbp
mov rax, r8
shr rax, 1
lea rdx, [rcx + r8*4]
lea r9, [rax*4]
sub rdx, r9
cmp rax, 1
jne 0x1400067f3
xor r9d, r9d
jmp 0x14000687e
mov ebx, 2
jmp 0x140006315
movabs r9, 0x7ffffffffffffffc
lea r10, [r9 + 2]
and r10, rax
mov r9, qword [rsp + 0xa8]
lea r11, [r9 + rdi*4]
mov r9, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x40]
lea rsi, [r9 + rsi*4]
xor r9d, r9d
movabs r13, 0x3ffffffffffffffe
nop
movzx ebx, word [r11 + r9*4 - 6]
movzx ebp, byte [r11 + r9*4 - 4]
mov r14d, dword [rsi]
mov dword [r11 + r9*4 - 6], r14d
mov word [rsi], bx
mov byte [rsi + 2], bpl
mov rbx, r9
xor rbx, r13
add rbx, rax
movzx ebp, word [r11 + r9*4 - 2]
movzx r14d, byte [r11 + r9*4]
mov r15d, dword [rdx + rbx*4]
mov dword [r11 + r9*4 - 2], r15d
mov word [rdx + rbx*4], bp
mov byte [rdx + rbx*4 + 2], r14b
add r9, 2
add rsi, 0xfffffffffffffff8
cmp r10, r9
jne 0x140006830
test r8b, 2
je 0x1400068a9
mov r10, r9
not r10
add rax, r10
movzx r10d, word [rcx + r9*4]
movzx r11d, byte [rcx + r9*4 + 2]
mov esi, dword [rdx + rax*4]
mov dword [rcx + r9*4], esi
mov word [rdx + rax*4], r10w
mov byte [rdx + rax*4 + 2], r11b
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x40]
jmp 0x14000633e
mov ebx, 3
jmp 0x140006315
mov rcx, qword [0x14005eb20]
xor edx, edx
mov r8, rbp
mov rsi, qword [sym.imp.kernel32.dll_HeapFree]
call rsi
mov rcx, qword [0x14005eb20]
xor edx, edx
mov r8, r15
call rsi
lea rdi, [r14 + r12*4]
xor esi, esi
lea rbx, [rsp + 0x70]
mov r15, r14
xor r8d, r8d
nop word cs:[rax + rax]
cmp r14, rdi
je 0x1400069b2
movzx edx, word [r14]
movzx ebp, byte [r14 + 2]
mov ecx, ebp
sub cl, r8b
and cl, 0xf
shl esi, cl
mov rcx, rbx
mov r8d, esi
mov r9d, ebp
call fcn.140006a30
inc esi
add r14, 4
mov r8d, ebp
test rax, rax
je 0x140006910
mov rcx, qword [rsp + 0x90]
mov qword [rcx + 8], rax
movabs rax, 0x7ffffffffffffffc
add rax, 4
mov qword [rcx], rax
cmp byte [rsp + 0x27], 0
jne 0x14000697e
mov rcx, qword [0x14005eb20]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x70], 0
je 0x140006a17
mov r8, qword [rsp + 0x78]
mov rcx, qword [0x14005eb20]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.kernel32.dll_HeapFree]
cmp byte [rsp + 0x27], 0
jne 0x1400069cb
mov rcx, qword [0x14005eb20]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [rsp + 0x8e]
cmp byte [rsp + 0x8c], 0
movzx ecx, byte [rsp + 0x8d]
mov edx, 1
cmovne edx, ecx
cmp al, dl
cmovb edx, eax
mov rcx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x90]
mov qword [r8 + 0x10], rcx
movdqa xmm0, xmmword [rsp + 0x70]
movdqu xmmword [r8], xmm0
mov byte [r8 + 0x18], dl
mov byte [r8 + 0x19], al
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2