Function at 0x50fd80
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0xb0]
cmp r12, qword [r14 + 0x10]
jbe 0x5104f1
push rbp
mov rbp, rsp
sub rsp, 0x128
mov r8, qword [rax + 0x38]
mov rdx, qword [rax + 0x40]
cmp r8, 0x14
jl 0x51009c
mov r9, qword [rax + 0x30]
mov r10d, dword [r9 + 4]
bswap r10d
nop
nop
nop dword [rax]
cmp r10d, 0x2112a442
jne 0x50ffa9
movzx r10d, word [r9 + 2]
rol r10w, 8
movzx ecx, r10w
lea r11, [rcx + 0x14]
nop
cmp r8, r11
jl 0x50fea5
movzx r8d, r10w
lea r10, [rax + 8]
lea r12, [r9 + 8]
movzx r13d, word [r9]
rol r13w, 8
mov r15d, r13d
shr r13w, 4
and r13d, 1
mov ebx, r15d
shr r15w, 7
and r15d, 2
add r13d, r15d
mov r15d, ebx
and ebx, 0xf
mov esi, r15d
shr r15w, 1
and r15d, 0x70
shr si, 2
and esi, 0xf80
add r15d, ebx
add r15d, esi
nop
mov byte [rax + 2], r13b
mov word [rax], r15w
mov dword [rax + 4], r8d
cmp r12, r10
je 0x50fe5c
mov r8, qword [r9 + 8]
mov r10d, dword [r9 + 0x10]
mov qword [rax + 8], r8
mov dword [rax + 0x10], r10d
mov qword [rax + 0x20], 0
cmp rdx, r11
jb 0x5104e8
cmp r11, 0x14
jb 0x5104db
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x48], rcx
lea r8, [rdx - 0x14]
mov r10, r8
neg r8
sar r8, 0x3f
and r8d, 0x14
add r8, r9
mov rdx, rcx
xor ebx, ebx
nop
jmp 0x5100c7
mov qword [rsp + 0x80], r11
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, r8
call sym.runtime.convT64
lea rcx, [0x00531e60]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x80]
call sym.runtime.convT64
lea rcx, [0x00531e60]
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], rax
lea rax, [0x0057020c]
mov ebx, 0x38
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
nop
call sym.fmt.Sprintf
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0xb8], rax
nop
lea rax, [0x00554e40]
call sym.runtime.newobject
mov qword [rax + 8], 9
lea rcx, [0x00564c13]
mov qword [rax], rcx
mov qword [rax + 0x18], 7
lea rcx, [0x005646db]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x28], rcx
cmp dword [0x006dd720], 0
jne 0x50ff82
mov rcx, qword [rsp + 0xb8]
nop
jmp 0x50ff92
call sym.runtime.gcWriteBarrier1
mov rcx, qword [rsp + 0xb8]
mov qword [r11], rcx
mov qword [rax + 0x20], rcx
mov rbx, rax
lea rax, [0x005ae520]
add rsp, 0x128
pop rbp
ret
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov eax, r10d
nop
call sym.runtime.convT32
lea rcx, [0x00531fe0]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
lea rcx, [0x00531e60]
mov qword [rsp + 0xe8], rcx
lea rcx, [0x005ad7d8]
mov qword [rsp + 0xf0], rcx
lea rax, [0x0056e0ca]
mov ebx, 0x29
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call sym.fmt.Sprintf
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xc0], rax
lea rax, [0x00554e40]
call sym.runtime.newobject
mov qword [rax + 8], 7
lea rcx, [0x005646db]
mov qword [rax], rcx
mov qword [rax + 0x18], 6
lea rcx, [0x0056452a]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0x28], rcx
cmp dword [0x006dd720], 0
jne 0x510075
mov rcx, qword [rsp + 0xc0]
jmp 0x510085
call sym.runtime.gcWriteBarrier1
mov rcx, qword [rsp + 0xc0]
mov qword [r11], rcx
mov qword [rax + 0x20], rcx
mov rbx, rax
lea rax, [0x005ae520]
add rsp, 0x128
pop rbp
ret
mov rax, qword [0x00680ef0]
mov rbx, qword [0x00680ef8]
add rsp, 0x128
pop rbp
ret
mov qword [r12 + rdx + 8], r8
add rcx, 0xfffffffffffffffc
mov rdx, qword [rsp + 0x48]
mov r8, r10
mov r10, r15
cmp rbx, rdx
jge 0x5104b8
cmp rcx, 4
jl 0x5103cd
movzx r9d, word [r8]
rol r9w, 8
movzx r11d, word [r8 + 2]
rol r11w, 8
movzx r12d, r11w
mov r13, r12
and r12, 0xfffffffffffffffc
nop
cmp r9w, 0x8020
mov r15d, 0x20
cmove r9w, r15w
cmp r13, r12
jle 0x510113
add r12, 4
mov word [rsp + 0x44], r9w
lea rsi, [r10 - 4]
mov rdi, rsi
neg rsi
sar rsi, 0x3f
and esi, 4
lea r15, [rcx - 4]
add r8, rsi
cmp r12, r15
jg 0x5102a5
nop word [rax + rax]
cmp r13, rdi
ja 0x5104d0
lea rbx, [r12 + rbx]
lea rbx, [rbx + 4]
cmp r12, r15
ja 0x5104c5
sub r10, r12
add r10, 0xfffffffffffffffc
mov r15, r10
neg r10
sar r10, 0x3f
and r10, r12
mov rsi, qword [rax + 0x28]
mov rdx, qword [rax + 0x20]
inc rdx
sub rcx, r12
add r10, r8
mov r12, qword [rax + 0x18]
cmp rsi, rdx
jae 0x51025d
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0x98], r13
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0xc8], r8
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x88], r15
mov qword [rsp + 0xd0], r10
mov word [rsp + 0x46], r11w
mov rax, r12
mov rbx, rdx
mov rcx, rsi
mov edi, 1
lea rsi, [0x005536a0]
nop dword [rax]
call sym.runtime.growslice
mov rdx, qword [rsp + 0x138]
mov qword [rdx + 0x28], rcx
cmp dword [0x006dd720], 0
je 0x51020a
call sym.runtime.gcWriteBarrier2
mov qword [r11], rax
mov r8, qword [rdx + 0x18]
mov qword [r11 + 8], r8
mov qword [rdx + 0x18], rax
mov rcx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x90]
mov r8, qword [rsp + 0xc8]
movzx r9d, word [rsp + 0x44]
mov r10, qword [rsp + 0xd0]
movzx r11d, word [rsp + 0x46]
mov r13, qword [rsp + 0x98]
mov r15, qword [rsp + 0x88]
mov r12, rax
mov rdx, rbx
mov rax, qword [rsp + 0x138]
mov rbx, qword [rsp + 0x50]
mov qword [rax + 0x20], rdx
dec rdx
shl rdx, 5
mov word [r12 + rdx], r9w
mov word [r12 + rdx + 2], r11w
mov qword [r12 + rdx + 0x10], r13
mov qword [r12 + rdx + 0x18], rdi
cmp dword [0x006dd720], 0
je 0x5100b3
call sym.runtime.gcWriteBarrier2
mov qword [r11], r8
mov r9, qword [r12 + rdx + 8]
mov qword [r11 + 8], r9
nop dword [rax + rax]
jmp 0x5100b3
mov qword [rsp + 0x58], r12
movups xmmword [rsp + 0xf8], xmm15
movups xmmword [rsp + 0x108], xmm15
movups xmmword [rsp + 0x118], xmm15
mov rax, r15
call sym.runtime.convT64
lea rcx, [0x00531e60]
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x58]
call sym.runtime.convT64
lea rcx, [0x00531e60]
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rax
movzx eax, word [rsp + 0x44]
call sym.runtime.convT16
lea rcx, [0x00542aa0]
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], rax
lea rax, [0x00570579]
mov ebx, 0x3d
lea rcx, [rsp + 0xf8]
mov edi, 3
mov rsi, rdi
call sym.fmt.Sprintf
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0xa8], rax
nop
lea rax, [0x00554e40]
nop dword [rax]
call sym.runtime.newobject
mov qword [rax + 8], 9
lea rcx, [0x00564c13]
mov qword [rax], rcx
mov qword [rax + 0x18], 5
lea rcx, [0x00564385]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x28], rcx
cmp dword [0x006dd720], 0
jne 0x5103a6
mov rcx, qword [rsp + 0xa8]
jmp 0x5103b6
call sym.runtime.gcWriteBarrier1
mov rcx, qword [rsp + 0xa8]
mov qword [r11], rcx
mov qword [rax + 0x20], rcx
mov rbx, rax
lea rax, [0x005ae520]
add rsp, 0x128
pop rbp
ret
movups xmmword [rsp + 0xd8], xmm15
movups xmmword [rsp + 0xe8], xmm15
mov rax, rcx
call sym.runtime.convT64
lea rcx, [0x00531e60]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rcx
lea rcx, [0x005ac6c0]
mov qword [rsp + 0xf0], rcx
lea rax, [0x00570089]
mov ebx, 0x37
lea rcx, [rsp + 0xd8]
mov edi, 2
mov rsi, rdi
call sym.fmt.Sprintf
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xb0], rax
nop
lea rax, [0x00554e40]
call sym.runtime.newobject
mov qword [rax + 8], 9
lea rcx, [0x00564c13]
mov qword [rax], rcx
mov qword [rax + 0x18], 6
lea rcx, [0x00564530]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rax + 0x28], rcx
cmp dword [0x006dd720], 0
jne 0x510491
mov rcx, qword [rsp + 0xb0]
jmp 0x5104a1
call sym.runtime.gcWriteBarrier1
mov rcx, qword [rsp + 0xb0]
mov qword [r11], rcx
mov qword [rax + 0x20], rcx
mov rbx, rax
lea rax, [0x005ae520]
add rsp, 0x128
pop rbp
ret
xor eax, eax
xor ebx, ebx
add rsp, 0x128
pop rbp
ret
mov rax, r12
mov rcx, r15
call sym.runtime.panicSliceB
mov rcx, r13
mov rdx, rdi
call sym.runtime.panicSliceAcap
mov eax, 0x14
mov rcx, r11
call sym.runtime.panicSliceB
mov rcx, r11
call sym.runtime.panicSliceAcap
nop
mov qword [rsp + 8], rax
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
jmp sym.github.com_pion_stun_v2._Message_.Decode