Function at 0x402f86
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, 0x38
mov qword [rsp + 8], rdx
mov eax, r8d
and eax, 7
cmp rax, 5
ja case.default.0x402fb5
lea r10, [0x006b7058]
movsxd rax, dword [r10 + rax*4]
add rax, r10
jmp rax
sub r8, 1
jb 0x402fde
mov rax, qword [rsp + 8]
movzx eax, byte [rax + r8]
cmp rax, 0x3d
je 0x402fde
lea rdx, [0x006bbc87]
cmp byte [rax + rdx], 0xff
je 0x403808
mov byte [rcx], 1
jmp 0x403a9c
mov eax, 8
jmp case.default.0x402fb5
mov eax, 0xa
jmp case.default.0x402fb5
mov eax, 0xb
jmp case.default.0x402fb5
mov eax, 0xc
mov qword [rsp], rcx
xor edx, edx
mov rbx, r8
sub rbx, rax
cmovb rbx, rdx
cmp rbx, 0x20
mov qword [rsp + 0x20], r8
jb 0x4034b9
mov qword [rsp + 0x10], rbx
lea r14, [rbx - 0x20]
mov edx, 0x20
xor ebp, ebp
lea r15, [0x006bbc87]
mov r10, qword [rsp + 8]
mov qword [rsp + 0x30], r14
lea rcx, [rdx - 0x20]
cmp rcx, r14
ja 0x403910
test rdx, rdx
je 0x403af5
cmp rdx, r8
ja 0x403af5
lea rax, [rbp + 0x1a]
cmp rax, qword [rsp + 0xa8]
ja 0x403af5
movzx r12d, byte [r10 + rdx - 0x20]
movzx r11d, byte [r12 + r15]
cmp r11, 0xff
je 0x40391e
movzx r12d, byte [r10 + rdx - 0x1f]
movzx eax, byte [r12 + r15]
cmp rax, 0xff
je 0x403927
movzx r12d, byte [r10 + rdx - 0x1e]
movzx r13d, byte [r12 + r15]
cmp r13, 0xff
je 0x40392d
movzx r12d, byte [r10 + rdx - 0x1d]
movzx esi, byte [r12 + r15]
cmp rsi, 0xff
je 0x403933
movzx r12d, byte [r10 + rdx - 0x1c]
movzx edi, byte [r12 + r15]
cmp rdi, 0xff
je 0x403939
movzx r12d, byte [r10 + rdx - 0x1b]
movzx r8d, byte [r12 + r15]
cmp r8, 0xff
je 0x40393f
mov rbx, rbp
mov qword [rsp + 0x18], r9
movzx r12d, byte [r10 + rdx - 0x1a]
movzx ebp, byte [r12 + r15]
cmp rbp, 0xff
je 0x403945
movzx r12d, byte [r10 + rdx - 0x19]
movzx r14d, byte [r12 + r15]
cmp r14, 0xff
je 0x40394b
mov qword [rsp + 0x28], rcx
shl rax, 0x34
shl r11, 0x3a
or r11, rax
shl r13, 0x2e
shl rsi, 0x28
or rsi, r13
or rsi, r11
shl rdi, 0x22
shl r8, 0x1c
or r8, rdi
shl rbp, 0x16
or rbp, r8
or rbp, rsi
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0xa0]
mov rcx, rbx
mov qword [rax + rbx], r14
movzx r12d, byte [r10 + rdx - 0x18]
movzx r11d, byte [r12 + r15]
cmp r11, 0xff
je 0x4039ad
movzx r12d, byte [r10 + rdx - 0x17]
movzx r9d, byte [r12 + r15]
cmp r9, 0xff
je 0x4039bb
movzx r12d, byte [r10 + rdx - 0x16]
movzx esi, byte [r12 + r15]
cmp rsi, 0xff
je 0x4039e1
movzx r12d, byte [r10 + rdx - 0x15]
movzx eax, byte [r12 + r15]
cmp rax, 0xff
je 0x4039e8
movzx r12d, byte [r10 + rdx - 0x14]
movzx r8d, byte [r12 + r15]
cmp r8, 0xff
je 0x4039ef
movzx r12d, byte [r10 + rdx - 0x13]
movzx r13d, byte [r12 + r15]
cmp r13, 0xff
je 0x4039f6
movzx r12d, byte [r10 + rdx - 0x12]
movzx ebp, byte [r12 + r15]
cmp rbp, 0xff
je 0x4039fd
movzx r12d, byte [r10 + rdx - 0x11]
movzx r14d, byte [r12 + r15]
cmp r14, 0xff
je 0x403a04
shl r9, 0x34
shl r11, 0x3a
or r11, r9
shl rsi, 0x2e
shl rax, 0x28
or rax, rsi
or rax, r11
shl r8, 0x22
shl r13, 0x1c
or r13, r8
shl rbp, 0x16
or rbp, r13
or rbp, rax
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0xa0]
mov rcx, rbx
mov qword [rax + rbx + 6], r14
movzx r12d, byte [r10 + rdx - 0x10]
movzx r11d, byte [r12 + r15]
cmp r11, 0xff
je 0x403a0b
movzx r12d, byte [r10 + rdx - 0xf]
movzx r9d, byte [r12 + r15]
cmp r9, 0xff
je 0x403a16
movzx r12d, byte [r10 + rdx - 0xe]
movzx esi, byte [r12 + r15]
cmp rsi, 0xff
je 0x403a1d
movzx r12d, byte [r10 + rdx - 0xd]
movzx eax, byte [r12 + r15]
cmp rax, 0xff
je 0x403a24
movzx r12d, byte [r10 + rdx - 0xc]
movzx r8d, byte [r12 + r15]
cmp r8, 0xff
je 0x403a2b
movzx r12d, byte [r10 + rdx - 0xb]
movzx r13d, byte [r12 + r15]
cmp r13, 0xff
je 0x403a32
movzx r12d, byte [r10 + rdx - 0xa]
movzx ebp, byte [r12 + r15]
cmp rbp, 0xff
je 0x403a39
movzx r12d, byte [r10 + rdx - 9]
movzx r14d, byte [r12 + r15]
cmp r14, 0xff
je 0x403a40
shl r9, 0x34
shl r11, 0x3a
or r11, r9
shl rsi, 0x2e
shl rax, 0x28
or rax, rsi
or rax, r11
shl r8, 0x22
shl r13, 0x1c
or r13, r8
shl rbp, 0x16
or rbp, r13
or rbp, rax
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0xa0]
mov rcx, rbx
mov qword [rax + rbx + 0xc], r14
movzx r12d, byte [r10 + rdx - 8]
movzx r11d, byte [r12 + r15]
cmp r11, 0xff
je 0x403a4f
movzx r12d, byte [r10 + rdx - 7]
movzx r9d, byte [r12 + r15]
cmp r9, 0xff
je 0x403a56
movzx r12d, byte [r10 + rdx - 6]
movzx esi, byte [r12 + r15]
cmp rsi, 0xff
je 0x403a5d
movzx r12d, byte [r10 + rdx - 5]
movzx eax, byte [r12 + r15]
cmp rax, 0xff
je 0x403a64
movzx r12d, byte [r10 + rdx - 4]
movzx r8d, byte [r12 + r15]
cmp r8, 0xff
je 0x403a6b
movzx r12d, byte [r10 + rdx - 3]
movzx r13d, byte [r12 + r15]
cmp r13, 0xff
je 0x403a72
movzx r12d, byte [r10 + rdx - 2]
movzx ebp, byte [r12 + r15]
cmp rbp, 0xff
je 0x403a79
movzx r12d, byte [r10 + rdx - 1]
movzx r14d, byte [r12 + r15]
cmp r14, 0xff
je 0x403a80
shl r9, 0x34
shl r11, 0x3a
or r11, r9
shl rsi, 0x2e
shl rax, 0x28
or rax, rsi
or rax, r11
shl r8, 0x22
shl r13, 0x1c
or r13, r8
shl rbp, 0x16
or rbp, r13
or rbp, rax
shl r14, 0x10
or r14, rbp
bswap r14
mov rax, qword [rsp + 0xa0]
mov rbp, rbx
mov qword [rax + rbx + 0x12], r14
add rbp, 0x18
mov r9, qword [rsp + 0x18]
add r9, 0xfffffffffffffffc
add rdx, 0x20
mov r8, qword [rsp + 0x20]
mov r14, qword [rsp + 0x30]
jmp 0x403040
xor ebp, ebp
mov r10, qword [rsp + 8]
cmp rbx, 8
jb 0x403648
add rbx, 0xfffffffffffffff8
lea rcx, [0x006bbc87]
mov qword [rsp + 0x10], rbx
cmp rdx, rbx
jae 0x403648
cmp rdx, 0xfffffffffffffff8
je 0x403af5
lea r14, [rdx + 8]
cmp r14, r8
ja 0x403af5
cmp rbp, 0xfffffffffffffff7
ja 0x403af5
lea rax, [rbp + 8]
cmp rax, qword [rsp + 0xa8]
ja 0x403af5
movzx r15d, byte [r10 + rdx]
movzx r11d, byte [r15 + rcx]
cmp r11, 0xff
je 0x4038fc
movzx r15d, byte [r10 + rdx + 1]
movzx eax, byte [r15 + rcx]
cmp rax, 0xff
je 0x4038b7
movzx r15d, byte [r10 + rdx + 2]
movzx r12d, byte [r15 + rcx]
cmp r12, 0xff
je 0x4038c3
movzx r15d, byte [r10 + rdx + 3]
movzx esi, byte [r15 + rcx]
cmp rsi, 0xff
je 0x4038cf
movzx r15d, byte [r10 + rdx + 4]
movzx edi, byte [r15 + rcx]
cmp rdi, 0xff
je 0x4038e6
movzx r15d, byte [r10 + rdx + 5]
movzx r8d, byte [r15 + rcx]
cmp r8, 0xff
je 0x4038ec
movzx r15d, byte [r10 + rdx + 6]
movzx r13d, byte [r15 + rcx]
cmp r13, 0xff
je 0x4038f2
mov rbx, r14
mov r14, rcx
mov rcx, rbp
movzx r15d, byte [r10 + rdx + 7]
movzx ebp, byte [r15 + r14]
cmp rbp, 0xff
je 0x4038f8
mov r10, r14
shl rax, 0x34
shl r11, 0x3a
or r11, rax
shl r12, 0x2e
shl rsi, 0x28
or rsi, r12
or rsi, r11
shl rdi, 0x22
shl r8, 0x1c
or r8, rdi
shl r13, 0x16
or r13, r8
or r13, rsi
shl rbp, 0x10
or rbp, r13
bswap rbp
mov rax, qword [rsp + 0xa0]
mov qword [rax + rcx], rbp
mov rbp, rcx
add rbp, 6
dec r9
mov rdx, rbx
mov r8, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x10]
mov rcx, r14
mov r10, qword [rsp + 8]
jmp 0x4034da
mov rcx, r8
sub rcx, rdx
mov edi, 1
mov qword [rsp + 0x18], r9
cmp rdi, r9
jae 0x403817
cmp rdx, r8
ja 0x403af5
cmp rbp, 0xfffffffffffffff9
ja 0x403af5
lea r15, [rbp + 6]
cmp r15, qword [rsp + 0xa8]
ja 0x403af5
cmp r8, rdx
je 0x403af5
movzx r12d, byte [r10 + rdx]
lea r8, [0x006bbc87]
movzx r13d, byte [r12 + r8]
cmp r13, 0xff
je 0x4038d9
cmp rcx, 2
jb 0x403af5
mov r14, rbp
movzx r12d, byte [r10 + rdx + 1]
movzx ebp, byte [r12 + r8]
cmp rbp, 0xff
je 0x4038a0
cmp rcx, 2
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 2]
movzx r11d, byte [r12 + r8]
cmp r11, 0xff
je 0x4038a5
cmp rcx, 3
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 3]
movzx esi, byte [r12 + r8]
cmp rsi, 0xff
je 0x4038ab
cmp rcx, 4
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 4]
movzx eax, byte [r12 + r8]
cmp rax, 0xff
je 0x4038b1
cmp rcx, 5
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 5]
movzx ebx, byte [r12 + r8]
cmp rbx, 0xff
je 0x4038bd
cmp rcx, 6
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 6]
movzx r9d, byte [r12 + r8]
cmp r9, 0xff
je 0x4038c9
cmp rcx, 7
jbe 0x403af5
movzx r12d, byte [r10 + rdx + 7]
movzx r8d, byte [r12 + r8]
cmp r8, 0xff
je 0x4038d5
shl r13, 0x3a
shl rbp, 0x34
or rbp, r13
shl r11, 0x2e
or r11, rbp
shl rsi, 0x28
or rsi, r11
shl rax, 0x22
or rax, rsi
shl rbx, 0x1c
or rbx, rax
shl r9, 0x16
or r9, rbx
shl r8, 0x10
or r8, r9
bswap r8
mov rax, qword [rsp + 0xa0]
mov dword [rax + r14], r8d
shr r8, 0x20
mov word [rax + r14 + 4], r8w
add rdx, 8
add rcx, 0xfffffffffffffff8
inc rdi
mov rbp, r15
mov r8, qword [rsp + 0x20]
mov r9, qword [rsp + 0x18]
jmp 0x403658
mov byte [rcx], 0
mov byte [rcx + 1], al
mov qword [rcx + 8], r8
jmp 0x403a9c
cmp rdx, r8
ja 0x403af5
lea r15, [r10 + rdx]
add r8, r10
xor r12d, r12d
xor r14d, r14d
xor ebx, ebx
xor eax, eax
xor r11d, r11d
xor r10d, r10d
cmp r15, r8
je 0x403963
lea rsi, [rax + 1]
movzx r13d, byte [r15]
inc r15
cmp r13, 0x3d
jne 0x403868
test al, 2
je 0x4039c5
test r11d, r11d
cmove r10, rax
inc r11d
mov rax, rsi
jmp 0x403837
test r11d, r11d
jg 0x403af9
lea rcx, [0x006bbc87]
movzx r9d, byte [r13 + rcx]
cmp r9, 0xff
je 0x403b0b
inc r14
imul ecx, r14d, 0x3a
shl r9, cl
or rbx, r9
mov r12d, r13d
mov rax, rsi
jmp 0x403837
inc rdx
jmp 0x4038d9
add rdx, 2
jmp 0x4038d9
add rdx, 3
jmp 0x4038d9
add rdx, 4
jmp 0x4038d9
or rdx, 1
jmp 0x4038fc
add rdx, 5
jmp 0x4038d9
or rdx, 2
jmp 0x4038fc
add rdx, 6
jmp 0x4038d9
or rdx, 3
jmp 0x4038fc
add rdx, 7
mov rax, qword [rsp]
mov byte [rax], 0
mov byte [rax + 1], r12b
jmp 0x403907
or rdx, 4
jmp 0x4038fc
or rdx, 5
jmp 0x4038fc
or rdx, 6
jmp 0x4038fc
or rdx, 7
mov rax, qword [rsp]
mov byte [rax], 0
mov byte [rax + 1], r15b
mov qword [rax + 8], rdx
jmp 0x403a9c
add rdx, 0xffffffffffffffe0
mov rbx, qword [rsp + 0x10]
jmp 0x4034c0
add rdx, 0xffffffffffffffe0
mov rcx, rdx
jmp 0x40394f
or rcx, 1
jmp 0x40394f
or rcx, 2
jmp 0x40394f
or rcx, 3
jmp 0x40394f
or rcx, 4
jmp 0x40394f
or rcx, 5
jmp 0x40394f
or rcx, 6
jmp 0x40394f
or rcx, 7
mov rax, qword [rsp]
mov byte [rax], 0
mov byte [rax + 1], r12b
mov qword [rax + 8], rcx
jmp 0x403a9c
cmp r14, 9
jae 0x403af5
mov eax, 0x1dd
bt eax, r14d
jae 0x403af5
lea rax, [0x006bc844]
mov r10d, dword [rax + r14*4]
mov rax, rbx
mov ecx, r10d
shl rax, cl
test rax, rax
je 0x403aad
lea rax, [rdx + r14]
dec rax
mov rcx, qword [rsp]
mov byte [rcx], 2
mov byte [rcx + 1], r12b
jmp 0x4039d8
add rdx, 0xffffffffffffffe0
mov eax, 8
jmp 0x403a49
mov eax, 9
jmp 0x403a45
test r11d, r11d
cmovg rax, r10
add rax, rdx
mov rcx, qword [rsp]
mov word [rcx], 0x3d00
mov qword [rcx + 8], rax
jmp 0x403a9c
mov eax, 0xa
jmp 0x403a45
mov eax, 0xb
jmp 0x403a45
mov eax, 0xc
jmp 0x403a45
mov eax, 0xd
jmp 0x403a45
mov eax, 0xe
jmp 0x403a45
mov eax, 0xf
jmp 0x403a45
add rdx, 0xffffffffffffffe0
mov eax, 0x10
jmp 0x403a49
mov eax, 0x11
jmp 0x403a45
mov eax, 0x12
jmp 0x403a45
mov eax, 0x13
jmp 0x403a45
mov eax, 0x14
jmp 0x403a45
mov eax, 0x15
jmp 0x403a45
mov eax, 0x16
jmp 0x403a45
mov eax, 0x17
add rdx, 0xffffffffffffffe0
mov rcx, qword [rsp]
jmp 0x403a8e
mov eax, 0x18
jmp 0x403a85
mov eax, 0x19
jmp 0x403a85
mov eax, 0x1a
jmp 0x403a85
mov eax, 0x1b
jmp 0x403a85
mov eax, 0x1c
jmp 0x403a85
mov eax, 0x1d
jmp 0x403a85
mov eax, 0x1e
jmp 0x403a85
mov eax, 0x1f
mov rcx, qword [rsp]
mov rdx, qword [rsp + 0x28]
or rdx, rax
mov byte [rcx], 0
mov byte [rcx + 1], r12b
mov qword [rcx + 8], rdx
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
mov r8d, 0x38
cmp eax, r10d
jae 0x403ae8
cmp rbp, qword [rsp + 0xa8]
jae 0x403af5
mov ecx, r8d
and cl, 0x38
mov r9, rbx
shr r9, cl
mov rcx, qword [rsp + 0xa0]
mov byte [rcx + rbp], r9b
inc rbp
add eax, 8
add r8d, 0xfffffff8
jmp 0x403ab5
mov rax, qword [rsp]
mov qword [rax + 8], rbp
mov byte [rax], 3
jmp 0x403a9c
ud2
add r10, rdx
mov rax, qword [rsp]
mov word [rax], 0x3d00
mov qword [rax + 8], r10
jmp 0x403a9c
add rax, rdx
mov rcx, qword [rsp]
mov byte [rcx], 0
mov byte [rcx + 1], r13b
jmp 0x4039d8