Function at 0x140004fad
Capabilities:
Decode data using base64 via dword translation table

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
mov rax, r8
mov eax, eax
add rax, 3
jb 0x140005c34
invalid
invalid
or al, 0
invalid
mov rdi, r8
shr rax, 2
lea rcx, [rax + rax*2]
or al, 0x40
xor edx, edx
call fcn.140010c9b
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rdx
and qword [rsp + 0x68], 0
mov r15, rdi
add r15, 7
jb 0x140005c34
shr r15, 3
imul rdx, r15, 6
lea r14, [rsp + 0x58]
mov rcx, r14
call fcn.140011fd7
mov rax, qword [r14]
mov qword [rsp + 0x30], rax
mov r9, qword [r14 + 0x10]
mov eax, edi
and eax, 7
cmp rax, 5
ja case.default.0x14000503d
lea rcx, [0x1400fc3d0]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov dl, 1
sub rdi, 1
jae 0x14000594c
jmp 0x140005b9e
mov eax, 8
jmp case.default.0x14000503d
mov eax, 0xa
jmp case.default.0x14000503d
mov eax, 0xb
jmp case.default.0x14000503d
mov eax, 0xc
xor r8d, r8d
mov rcx, rdi
sub rcx, rax
cmovb rcx, r8
cmp rcx, 0x20
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x40], r9
jb 0x1400055b0
mov qword [rsp + 0x38], rcx
lea rdx, [rcx - 0x20]
mov r8d, 0x20
xor ebp, ebp
lea r12, [0x1400a68d0]
mov qword [rsp + 0x70], rdx
lea rcx, [r8 - 0x20]
cmp rcx, rdx
ja 0x140005a5f
test r8, r8
je 0x140005c34
cmp r8, rdi
ja 0x140005c34
lea rax, [rbp + 0x1a]
cmp rax, r9
ja 0x140005c34
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0x20]
movzx esi, byte [r10 + r12]
cmp rsi, 0xff
je 0x140005b99
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0x1f]
movzx eax, byte [r10 + r12]
cmp rax, 0xff
je 0x140005a6d
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8 - 0x1e]
movzx r13d, byte [r10 + r12]
cmp r13, 0xff
je 0x140005a76
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8 - 0x1d]
movzx r9d, byte [r10 + r12]
cmp r9, 0xff
je 0x140005a7f
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 - 0x1c]
movzx edi, byte [r10 + r12]
cmp rdi, 0xff
je 0x140005a88
mov qword [rsp + 0x48], r15
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 - 0x1b]
movzx r15d, byte [r10 + r12]
cmp r15, 0xff
je 0x140005a91
mov r11, rbp
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 - 0x1a]
movzx ebp, byte [r10 + r12]
cmp rbp, 0xff
je 0x140005a9a
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 - 0x19]
movzx r14d, byte [r10 + r12]
cmp r14, 0xff
je 0x140005aa3
shl rax, 0x34
shl rsi, 0x3a
or rsi, rax
shl r13, 0x2e
shl r9, 0x28
or r9, r13
or r9, rsi
shl rdi, 0x22
shl r15, 0x1c
or r15, rdi
shl rbp, 0x16
or rbp, r15
or rbp, r9
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0x30]
mov rdx, r11
mov qword [rax + r11], r14
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0x18]
movzx esi, byte [r10 + r12]
cmp rsi, 0xff
je 0x140005af4
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0x17]
movzx eax, byte [r10 + r12]
cmp rax, 0xff
je 0x140005afd
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x16]
movzx r13d, byte [r10 + r12]
cmp r13, 0xff
je 0x140005b17
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x15]
movzx r9d, byte [r10 + r12]
cmp r9, 0xff
je 0x140005b1d
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x14]
movzx edi, byte [r10 + r12]
cmp rdi, 0xff
je 0x140005b23
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x13]
movzx r15d, byte [r10 + r12]
cmp r15, 0xff
je 0x140005b29
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x12]
movzx ebp, byte [r10 + r12]
cmp rbp, 0xff
je 0x140005b2f
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0x11]
movzx r14d, byte [r10 + r12]
cmp r14, 0xff
je 0x140005b35
shl rax, 0x34
shl rsi, 0x3a
or rsi, rax
shl r13, 0x2e
shl r9, 0x28
or r9, r13
or r9, rsi
shl rdi, 0x22
shl r15, 0x1c
or r15, rdi
shl rbp, 0x16
or rbp, r15
or rbp, r9
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0x30]
mov rdx, r11
mov qword [rax + r11 + 6], r14
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0x10]
movzx esi, byte [r10 + r12]
cmp rsi, 0xff
je 0x140005b3b
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 0xf]
movzx eax, byte [r10 + r12]
cmp rax, 0xff
je 0x140005b41
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0xe]
movzx r13d, byte [r10 + r12]
cmp r13, 0xff
je 0x140005b47
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0xd]
movzx r9d, byte [r10 + r12]
cmp r9, 0xff
je 0x140005b4d
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0xc]
movzx edi, byte [r10 + r12]
cmp rdi, 0xff
je 0x140005b53
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0xb]
movzx r15d, byte [r10 + r12]
cmp r15, 0xff
je 0x140005b59
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 0xa]
movzx ebp, byte [r10 + r12]
cmp rbp, 0xff
je 0x140005b5f
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 9]
movzx r14d, byte [r10 + r12]
cmp r14, 0xff
je 0x140005b65
shl rax, 0x34
shl rsi, 0x3a
or rsi, rax
shl r13, 0x2e
shl r9, 0x28
or r9, r13
or r9, rsi
shl rdi, 0x22
shl r15, 0x1c
or r15, rdi
shl rbp, 0x16
or rbp, r15
or rbp, r9
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0x30]
mov rdx, r11
mov qword [rax + r11 + 0xc], r14
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 8]
movzx esi, byte [r10 + r12]
cmp rsi, 0xff
je 0x140005b6b
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 - 7]
movzx eax, byte [r10 + r12]
cmp rax, 0xff
je 0x140005b71
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 6]
movzx r13d, byte [r10 + r12]
cmp r13, 0xff
je 0x140005b77
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 5]
movzx r9d, byte [r10 + r12]
cmp r9, 0xff
je 0x140005b7d
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 4]
movzx edi, byte [r10 + r12]
cmp rdi, 0xff
je 0x140005b83
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 3]
movzx r15d, byte [r10 + r12]
cmp r15, 0xff
je 0x140005b89
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 2]
movzx ebp, byte [r10 + r12]
cmp rbp, 0xff
je 0x140005b8f
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx + r8 - 1]
movzx r14d, byte [r10 + r12]
cmp r14, 0xff
je 0x140005b95
shl rax, 0x34
shl rsi, 0x3a
or rsi, rax
shl r13, 0x2e
shl r9, 0x28
or r9, r13
or r9, rsi
shl rdi, 0x22
shl r15, 0x1c
or r15, rdi
shl rbp, 0x16
or rbp, r15
or rbp, r9
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0x30]
mov rbp, r11
mov qword [rax + r11 + 0x12], r14
add rbp, 0x18
mov r15, qword [rsp + 0x48]
add r15, 0xfffffffffffffffc
add r8, 0x20
mov rdi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
jmp 0x1400050a8
xor ebp, ebp
cmp rcx, 8
jb 0x140005757
add rcx, 0xfffffffffffffff8
lea r14, [0x1400a68d0]
mov qword [rsp + 0x38], rcx
cmp r8, rcx
jae 0x140005757
cmp r8, 0xfffffffffffffff8
je 0x140005c34
lea r11, [r8 + 8]
cmp r11, rdi
ja 0x140005c34
cmp rbp, 0xfffffffffffffff7
ja 0x140005c34
lea rax, [rbp + 8]
cmp rax, r9
ja 0x140005c34
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8]
movzx esi, byte [r10 + r14]
cmp rsi, 0xff
je 0x140005a55
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 + 1]
movzx eax, byte [r10 + r14]
cmp rax, 0xff
je 0x140005a1b
mov rcx, qword [rsp + 0x28]
movzx r10d, byte [rcx + r8 + 2]
movzx r12d, byte [r10 + r14]
cmp r12, 0xff
je 0x140005a27
mov rcx, qword [rsp + 0x28]
movzx r10d, byte [rcx + r8 + 3]
movzx r9d, byte [r10 + r14]
cmp r9, 0xff
je 0x140005a33
mov rcx, qword [rsp + 0x28]
movzx r10d, byte [rcx + r8 + 4]
movzx edi, byte [r10 + r14]
cmp rdi, 0xff
je 0x140005a3f
mov rcx, r15
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 5]
movzx r15d, byte [r10 + r14]
cmp r15, 0xff
je 0x140005a45
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 6]
movzx r13d, byte [r10 + r14]
cmp r13, 0xff
je 0x140005a4b
mov rdx, rbp
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 7]
movzx ebp, byte [r10 + r14]
cmp rbp, 0xff
je 0x140005a51
mov rbx, r14
shl rax, 0x34
shl rsi, 0x3a
or rsi, rax
shl r12, 0x2e
shl r9, 0x28
or r9, r12
or r9, rsi
shl rdi, 0x22
shl r15, 0x1c
or r15, rdi
shl r13, 0x16
or r13, r15
or r13, r9
shl rbp, 0x10
or rbp, r13
bswap rbp
mov rax, qword [rsp + 0x30]
mov qword [rax + rdx], rbp
mov rbp, rdx
add rbp, 6
mov r15, rcx
dec r15
mov r8, r11
mov rdi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
jmp 0x1400055cc
mov rcx, rdi
sub rcx, r8
mov eax, 1
lea rdx, [0x1400a68d0]
mov qword [rsp + 0x48], r15
cmp rax, r15
jae 0x14000597b
cmp r8, rdi
ja 0x140005c34
cmp rbp, 0xfffffffffffffff9
ja 0x140005c34
lea r12, [rbp + 6]
cmp r12, r9
ja 0x140005c34
cmp rdi, r8
je 0x140005c34
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8]
movzx r13d, byte [r10 + rdx]
cmp r13, 0xff
je 0x140005a55
cmp rcx, 2
jb 0x140005c34
mov r14, rbp
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8 + 1]
movzx ebp, byte [r10 + rdx]
cmp rbp, 0xff
je 0x140005a04
cmp rcx, 2
jbe 0x140005c34
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8 + 2]
movzx esi, byte [r10 + rdx]
cmp rsi, 0xff
je 0x140005a09
cmp rcx, 3
jbe 0x140005c34
mov r9, qword [rsp + 0x28]
movzx r10d, byte [r9 + r8 + 3]
movzx r9d, byte [r10 + rdx]
cmp r9, 0xff
je 0x140005a0f
cmp rcx, 4
jbe 0x140005c34
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + r8 + 4]
movzx eax, byte [r10 + rdx]
cmp rax, 0xff
je 0x140005a15
cmp rcx, 5
jbe 0x140005c34
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 5]
movzx edi, byte [r10 + rdx]
cmp rdi, 0xff
je 0x140005a21
cmp rcx, 6
jbe 0x140005c34
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 6]
movzx r15d, byte [r10 + rdx]
cmp r15, 0xff
je 0x140005a2d
cmp rcx, 7
jbe 0x140005c34
mov r10, qword [rsp + 0x28]
movzx r10d, byte [r10 + r8 + 7]
mov rbx, rdx
movzx edx, byte [r10 + rdx]
cmp rdx, 0xff
je 0x140005a39
shl r13, 0x3a
shl rbp, 0x34
or rbp, r13
shl rsi, 0x2e
or rsi, rbp
shl r9, 0x28
or r9, rsi
shl rax, 0x22
or rax, r9
shl rdi, 0x1c
or rdi, rax
shl r15, 0x16
or r15, rdi
shl rdx, 0x10
or rdx, r15
bswap rdx
mov rax, qword [rsp + 0x30]
mov dword [rax + r14], edx
shr rdx, 0x20
mov word [rax + r14 + 4], dx
add r8, 8
add rcx, 0xfffffffffffffff8
mov rax, qword [rsp + 0x38]
inc rax
mov rbp, r12
mov rdi, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rdx, rbx
jmp 0x14000576e
mov rax, qword [rsp + 0x28]
movzx r10d, byte [rax + rdi]
cmp r10, 0x3d
mov rcx, qword [rsp + 0x20]
je 0x14000596f
lea rax, [0x1400a68d0]
cmp byte [r10 + rax], 0xff
je 0x140005974
jmp 0x140005ba3
xor edx, edx
jmp 0x140005ba3
cmp r8, rdi
ja 0x140005c34
mov rax, qword [rsp + 0x28]
lea r15, [rax + r8]
add rdi, rax
xor r10d, r10d
xor r14d, r14d
xor ebx, ebx
xor ecx, ecx
xor esi, esi
xor r12d, r12d
cmp r15, rdi
je 0x140005aac
lea rax, [rcx + 1]
movzx r9d, byte [r15]
inc r15
cmp r9, 0x3d
jne 0x1400059cf
test cl, 2
je 0x140005b06
test esi, esi
cmove r12, rcx
inc esi
mov rcx, rax
jmp 0x14000599f
test esi, esi
jg 0x140005c38
mov r11, rdx
movzx edx, byte [r9 + rdx]
cmp rdx, 0xff
je 0x140005c48
inc r14
imul ecx, r14d, 0x3a
shl rdx, cl
or rbx, rdx
mov r10d, r9d
mov rcx, rax
mov rdx, r11
jmp 0x14000599f
inc r8
jmp 0x140005a55
add r8, 2
jmp 0x140005a55
add r8, 3
jmp 0x140005a55
add r8, 4
jmp 0x140005a55
or r8, 1
jmp 0x140005a55
add r8, 5
jmp 0x140005a55
or r8, 2
jmp 0x140005a55
add r8, 6
jmp 0x140005a55
or r8, 3
jmp 0x140005a55
add r8, 7
jmp 0x140005a55
or r8, 4
jmp 0x140005a55
or r8, 5
jmp 0x140005a55
or r8, 6
jmp 0x140005a55
or r8, 7
xor edx, edx
mov rdi, r8
jmp 0x140005b9e
add r8, 0xffffffffffffffe0
mov rcx, qword [rsp + 0x38]
jmp 0x1400055b2
or rcx, 1
jmp 0x140005b99
or rcx, 2
jmp 0x140005b99
or rcx, 3
jmp 0x140005b99
or rcx, 4
jmp 0x140005b99
or rcx, 5
jmp 0x140005b99
or rcx, 6
jmp 0x140005b99
or rcx, 7
jmp 0x140005b99
cmp r14, 9
jae 0x140005c34
mov eax, 0x1dd
bt eax, r14d
jae 0x140005c34
lea rax, [0x1400a6e40]
mov edx, dword [rax + r14*4]
mov rax, rbx
mov ecx, edx
shl rax, cl
test rax, rax
mov rsi, qword [rsp + 0x40]
je 0x140005bd1
lea rdi, [r8 + r14]
dec rdi
mov dl, 2
jmp 0x140005b9e
or rcx, 8
jmp 0x140005b99
or rcx, 9
jmp 0x140005b99
test esi, esi
cmovg rcx, r12
add rcx, r8
mov r10b, 0x3d
jmp 0x140005b99
or rcx, 0xa
jmp 0x140005b99
or rcx, 0xb
jmp 0x140005b99
or rcx, 0xc
jmp 0x140005b99
or rcx, 0xd
jmp 0x140005b99
or rcx, 0xe
jmp 0x140005b99
or rcx, 0xf
jmp 0x140005b99
or rcx, 0x10
jmp 0x140005b99
or rcx, 0x11
jmp 0x140005b99
or rcx, 0x12
jmp 0x140005b99
or rcx, 0x13
jmp 0x140005b99
or rcx, 0x14
jmp 0x140005b99
or rcx, 0x15
jmp 0x140005b99
or rcx, 0x16
jmp 0x140005b99
or rcx, 0x17
jmp 0x140005b99
or rcx, 0x18
jmp 0x140005b99
or rcx, 0x19
jmp 0x140005b99
or rcx, 0x1a
jmp 0x140005b99
or rcx, 0x1b
jmp 0x140005b99
or rcx, 0x1c
jmp 0x140005b99
or rcx, 0x1d
jmp 0x140005b99
or rcx, 0x1e
jmp 0x140005b99
or rcx, 0x1f
xor edx, edx
mov rdi, rcx
mov rcx, qword [rsp + 0x20]
mov byte [rcx + 8], dl
mov byte [rcx + 9], r10b
mov qword [rcx + 0x10], rdi
and qword [rcx], 0
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140010c6f
xor eax, eax
mov r8d, 0x38
cmp eax, edx
jae 0x140005c03
cmp rbp, rsi
jae 0x140005c34
mov ecx, r8d
and cl, 0x38
mov r9, rbx
shr r9, cl
mov rcx, qword [rsp + 0x30]
mov byte [rcx + rbp], r9b
inc rbp
add eax, 8
add r8d, 0xfffffff8
jmp 0x140005bd9
cmp rsi, rbp
jb 0x140005c0d
mov qword [rsp + 0x68], rbp
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rcx], xmm0
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
add r12, r8
mov r10b, 0x3d
xor edx, edx
mov rdi, r12
jmp 0x140005b9e
add rcx, r8
xor edx, edx
mov r10d, r9d
jmp 0x140005b9b