Function at 0x29e85b318f0
Capabilities:
Encode data using base64

Disassembly:
push rsi
push r12
push r13
sub rsp, 0x30
mov r10, qword [rcx]
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x20], r15
mov r15d, dword [rsp + 0x70]
mov r11, r8
movzx r8d, byte [r10 + 1]
mov edi, r15d
xor esi, esi
shr edi, 0xb
add r10, 2
mov ebp, r9d
mov r13, rdx
mov r12, rcx
and edi, 1
je 0x29e85b31a1e
cmp r8d, 0xc0
jb 0x29e85b31a1e
test r8b, 0x20
jne 0x29e85b31964
movzx eax, byte [r10]
and r8d, 0x1f
and eax, 0x3f
shl r8d, 6
or r8d, eax
inc r10
jmp 0x29e85b31a1e
test r8b, 0x10
jne 0x29e85b31997
movzx ecx, byte [r10]
movzx eax, byte [r10 + 1]
and r8d, 0xf
and eax, 0x3f
and ecx, 0x3f
shl ecx, 6
or ecx, eax
mov eax, r8d
shl eax, 0xc
mov r8d, ecx
or r8d, eax
add r10, 2
jmp 0x29e85b31a1e
movzx eax, byte [r10]
movzx ecx, byte [r10 + 1]
and eax, 0x3f
and ecx, 0x3f
shl eax, 6
or ecx, eax
movzx eax, byte [r10 + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
test r8b, 8
jne 0x29e85b319d4
and r8d, 7
mov eax, r8d
mov r8d, ecx
shl eax, 0x12
or r8d, eax
add r10, 3
jmp 0x29e85b31a1e
movzx eax, byte [r10 + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
test r8b, 4
jne 0x29e85b319fd
and r8d, 3
mov eax, r8d
mov r8d, ecx
shl eax, 0x18
or r8d, eax
add r10, 4
jmp 0x29e85b31a1e
movzx eax, byte [r10 + 4]
and r8d, 1
shl ecx, 6
and eax, 0x3f
or ecx, eax
mov eax, r8d
shl eax, 0x1e
mov r8d, ecx
or r8d, eax
add r10, 5
dec r10
test r8d, r8d
jne 0x29e85b31a34
mov r9d, 1
mov dword [r11], r9d
jmp 0x29e85b320ed
lea ecx, [r8 - 0x30]
cmp ecx, 0x4a
ja 0x29e85b320ed
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x28], r14
lea r14, [0x29e85ad0000]
movsx edx, word [r14 + rcx*2 + 0x180cb0]
test edx, edx
je 0x29e85b31a70
jle 0x29e85b31a69
mov r8d, edx
jmp 0x29e85b320e3
mov esi, edx
jmp 0x29e85b31cd1
cmp ecx, 0x48
ja case.0x29e85b31a8d.9
movzx eax, byte [r14 + rcx + 0x6214c]
mov ecx, dword [r14 + rax*4 + 0x62124]
add rcx, r14
jmp rcx
bt r15d, 0x19
jae case.0x29e85b31a8d.2
movzx eax, byte [r10 + 1]
test byte [rax + r14 + 0x181c60], 8
je 0x29e85b320e3
movzx ecx, byte [r10 + 2]
test byte [rcx + r14 + 0x181c60], 8
je 0x29e85b320e3
movzx edx, byte [r10 + 3]
test byte [rdx + r14 + 0x181c60], 8
je 0x29e85b320e3
movzx ebp, byte [r10 + 4]
lea r9, [0x29e85ad0000]
test byte [r9 + rbp + 0x181c60], 8
je 0x29e85b320e3
mov r8d, eax
cmp eax, 0x61
jb 0x29e85b31afd
add r8d, 0xffffffe0
cmp r8d, 0x41
mov r9d, 0x37
mov ebx, 0x30
mov eax, r9d
cmovb eax, ebx
sub r8d, eax
cmp ecx, 0x61
jb 0x29e85b31b1d
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, r9d
cmovb eax, ebx
shl r8d, 4
sub r8d, eax
add r8d, ecx
mov ecx, edx
cmp edx, 0x61
jb 0x29e85b31b3a
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, r9d
cmovb eax, ebx
shl r8d, 4
sub r8d, eax
mov eax, ebp
add r8d, ecx
cmp ebp, 0x61
jb 0x29e85b31b57
add eax, 0xffffffe0
cmp eax, 0x41
mov edx, 0xff
mov ebp, 0x10ffff
cmovb r9d, ebx
shl r8d, 4
add r10, 4
sub r8d, r9d
add r8d, eax
test edi, edi
cmovne edx, ebp
cmp r8d, edx
jbe 0x29e85b31feb
mov dword [r11], 0x4c
jmp 0x29e85b320e3
bt r15d, 0x19
jb 0x29e85b320e3
mov dword [r11], 0x25
jmp 0x29e85b320e3
cmp dword [rsp + 0x78], esi
jne 0x29e85b320e3
movzx eax, byte [r10 + 1]
cmp al, 0x3c
je 0x29e85b31d04
cmp al, 0x27
je 0x29e85b31d04
mov r9d, 1
cmp al, 0x7b
jne 0x29e85b31c12
movzx eax, byte [r10 + 2]
lea rcx, [r10 + 2]
test al, al
je 0x29e85b31bf5
nop dword [rax]
cmp al, 0x2d
je 0x29e85b31bea
sub al, 0x30
cmp al, 9
ja 0x29e85b31bfd
movzx eax, byte [rcx + 1]
inc rcx
test al, al
jne 0x29e85b31be0
mov ebx, r9d
inc r10
jmp 0x29e85b31c14
movzx eax, byte [rcx]
test al, al
je 0x29e85b31bf5
cmp al, 0x7d
je 0x29e85b31bf5
mov esi, 0x1c
jmp 0x29e85b320e3
mov ebx, esi
cmp byte [r10 + 1], 0x2d
jne 0x29e85b31c20
inc r10
jmp 0x29e85b31c23
mov r9d, esi
movzx ecx, byte [r10 + 1]
lea rdx, [r10 + 1]
mov eax, esi
cmp cl, 0x30
jb 0x29e85b31c59
cmp cl, 0x39
ja 0x29e85b31c59
cmp eax, 0xccccccb
jg 0x29e85b31c72
lea ecx, [rax + rax*4]
movzx eax, byte [rdx]
mov r10, rdx
inc rdx
lea eax, [rax + rcx*2]
movzx ecx, byte [rdx]
add eax, 0xffffffd0
cmp cl, 0x30
jae 0x29e85b31c33
test ebx, ebx
je 0x29e85b31ca5
inc r10
cmp byte [r10], 0x7d
je 0x29e85b31ca5
mov dword [r11], 0x39
jmp 0x29e85b320e3
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x29e85b31df5
cmp al, 0x39
ja 0x29e85b31df5
movzx eax, byte [rcx + 1]
mov r10, rcx
inc rcx
cmp al, 0x30
jae 0x29e85b31c83
mov dword [r11], 0x3d
jmp 0x29e85b320e3
test eax, eax
jne 0x29e85b31cb5
mov dword [r11], 0x3a
jmp 0x29e85b320e3
test r9d, r9d
je 0x29e85b31ccf
cmp eax, ebp
jle 0x29e85b31cca
mov dword [r11], 0xf
jmp 0x29e85b320e3
sub ebp, eax
lea eax, [rbp + 1]
mov esi, eax
neg esi
cmp esi, 0xc
jne 0x29e85b320e3
cmp byte [r10 + 1], 0x7b
jne 0x29e85b320e3
lea rcx, [r10 + 2]
call fcn.29e85b38c30
test eax, eax
jne 0x29e85b320e3
mov dword [r11], 0x25
jmp 0x29e85b320e3
mov esi, 0x1b
jmp 0x29e85b320e3
cmp dword [rsp + 0x78], esi
jne 0x29e85b31d70
movzx ecx, byte [r10 + 1]
lea r9, [r10 + 1]
mov rbx, r10
lea eax, [r8 - 0x30]
cmp cl, 0x30
jb 0x29e85b31d5c
nop dword [rax]
cmp cl, 0x39
ja 0x29e85b31d5c
cmp eax, 0xccccccb
jg 0x29e85b31dd6
lea ecx, [rax + rax*4]
movzx eax, byte [r9]
mov r10, r9
inc r9
lea eax, [rax + rcx*2]
movzx ecx, byte [r9]
add eax, 0xffffffd0
cmp cl, 0x30
jae 0x29e85b31d30
cmp eax, 8
jl 0x29e85b31ccf
cmp eax, ebp
jle 0x29e85b31ccf
mov r10, rbx
movzx r8d, byte [r10]
cmp r8d, 0x38
jae 0x29e85b320e3
add r8d, 0xffffffd0
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
inc edx
sub al, 0x30
cmp al, 7
ja 0x29e85b31db4
movzx eax, byte [rcx]
add r8d, 0xfffffffa
mov r10, rcx
lea r8d, [rax + r8*8]
cmp edx, 2
jl 0x29e85b31d90
test edi, edi
jne 0x29e85b320e3
mov edx, 0xff
cmp r8d, edx
jbe 0x29e85b320e3
mov dword [r11], 0x33
jmp 0x29e85b320e3
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
cmp al, 0x30
jb 0x29e85b31df5
cmp al, 0x39
ja 0x29e85b31df5
movzx eax, byte [rcx + 1]
mov r10, rcx
inc rcx
cmp al, 0x30
jae 0x29e85b31de3
mov dword [r11], 0x3d
jmp 0x29e85b320e3
cmp byte [r10 + 1], 0x7b
je 0x29e85b31e14
mov dword [r11], 0x51
jmp 0x29e85b320e3
cmp byte [r10 + 2], 0x7d
lea rax, [r10 + 2]
jne 0x29e85b31e2b
mov dword [r11], 0x56
jmp 0x29e85b320e3
mov r10, rax
movzx eax, byte [rax]
mov r8d, esi
cmp al, 0x30
jb 0x29e85b31e72
mov edx, 0xff
mov ebp, 0x10ffff
cmp al, 0x37
ja 0x29e85b31e72
inc r10
movzx ecx, al
test r8d, r8d
jne 0x29e85b31e56
cmp ecx, 0x30
je 0x29e85b31e6a
add r8d, 0xfffffffa
test edi, edi
mov eax, edx
lea r8d, [rcx + r8*8]
cmovne eax, ebp
cmp r8d, eax
ja 0x29e85b31e9e
movzx eax, byte [r10]
cmp al, 0x30
jae 0x29e85b31e42
cmp byte [r10], 0x7d
jne 0x29e85b31ed0
test edi, edi
je 0x29e85b320e3
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x29e85b320e3
mov dword [r11], 0x49
jmp 0x29e85b320e3
movzx eax, byte [r10]
cmp al, 0x30
jb 0x29e85b32033
nop word [rax + rax]
cmp al, 0x37
ja 0x29e85b32033
movzx eax, byte [r10 + 1]
inc r10
cmp al, 0x30
jae 0x29e85b31eb0
mov dword [r11], 0x22
jmp 0x29e85b320e3
mov dword [r11], 0x50
jmp 0x29e85b320e3
bt r15d, 0x19
jae 0x29e85b31f53
movzx eax, byte [r10 + 1]
test byte [rax + r14 + 0x181c60], 8
je 0x29e85b320e3
movzx ecx, byte [r10 + 2]
test byte [rcx + r14 + 0x181c60], 8
je 0x29e85b320e3
mov r8d, eax
cmp eax, 0x61
jb 0x29e85b31f17
add r8d, 0xffffffe0
cmp r8d, 0x41
mov r9d, 0x37
mov ebx, 0x30
mov eax, r9d
cmovb eax, ebx
sub r8d, eax
mov eax, ecx
cmp ecx, 0x61
jb 0x29e85b31f39
add eax, 0xffffffe0
cmp eax, 0x41
cmovb r9d, ebx
shl r8d, 4
sub r8d, r9d
add r8d, eax
add r10, 2
jmp 0x29e85b320e3
cmp byte [r10 + 1], 0x7b
jne 0x29e85b3204b
movzx ecx, byte [r10 + 2]
add r10, 2
cmp cl, 0x7d
jne 0x29e85b31f78
mov dword [r11], 0x56
jmp 0x29e85b320e3
movzx eax, cl
mov r8d, esi
test byte [rax + r14 + 0x181c60], 8
je 0x29e85b31fe5
mov ebx, 0x30
mov edx, 0xff
mov ebp, 0x10ffff
lea r9d, [rbx + 7]
nop dword [rax]
inc r10
movzx ecx, cl
test r8d, r8d
jne 0x29e85b31faf
cmp ecx, ebx
je 0x29e85b31fd6
cmp ecx, 0x61
jb 0x29e85b31fb7
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, r9d
cmovb eax, ebx
shl r8d, 4
sub r8d, eax
mov eax, edx
add r8d, ecx
test edi, edi
cmovne eax, ebp
cmp r8d, eax
ja 0x29e85b32011
movzx ecx, byte [r10]
test byte [rcx + r14 + 0x181c60], 8
jne 0x29e85b31fa0
cmp byte [r10], 0x7d
jne 0x29e85b3203f
test edi, edi
je 0x29e85b320e3
lea eax, [r8 - 0xd800]
cmp eax, 0x7ff
ja 0x29e85b320e3
mov dword [r11], 0x49
jmp 0x29e85b320e3
movzx eax, byte [r10]
test byte [rax + r14 + 0x181c60], 8
je 0x29e85b32033
movzx eax, byte [r10 + 1]
inc r10
test byte [rax + r14 + 0x181c60], 8
jne 0x29e85b32020
mov dword [r11], 0x22
jmp 0x29e85b320e3
mov dword [r11], 0x4f
jmp 0x29e85b320e3
mov ebx, 0x30
mov r8d, esi
lea r9d, [rbx + 7]
nop word [rax + rax]
movzx eax, byte [r10 + 1]
lea rcx, [r10 + 1]
inc edx
test byte [rax + r14 + 0x181c60], 8
je 0x29e85b320e3
mov r10, rcx
movzx ecx, byte [rcx]
cmp ecx, 0x61
jb 0x29e85b32084
add ecx, 0xffffffe0
cmp ecx, 0x41
mov eax, r9d
cmovb eax, ebx
shl r8d, 4
sub r8d, eax
add r8d, ecx
cmp edx, 2
jl 0x29e85b32060
jmp 0x29e85b320e3
movzx r8d, byte [r10 + 1]
inc r10
test r8d, r8d
jne 0x29e85b320b4
mov dword [r11], 2
jmp 0x29e85b320e3
cmp r8d, 0x7f
jbe 0x29e85b320c3
mov dword [r11], 0x44
jmp 0x29e85b320e3
lea eax, [r8 - 0x61]
cmp eax, 0x19
ja 0x29e85b320d0
add r8d, 0xffffffe0
xor r8d, 0x40
jmp 0x29e85b320e3
test r15b, 0x40
je 0x29e85b320e3
mov dword [r11], 3
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
bt r15d, 0x1d
mov r15, qword [rsp + 0x20]
jae 0x29e85b3210e
lea ecx, [rsi - 6]
cmp ecx, 5
ja 0x29e85b3210e
add esi, 0x17
mov qword [r12], r10
mov eax, esi
mov dword [r13], r8d
add rsp, 0x30
pop r13
pop r12
pop rsi
ret