Function at 0x140029f40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
cmp byte [rcx + 0x5c], 0
mov rbx, rcx
mov rdi, rdx
mov rsi, r9
je 0x14002a720
mov r9d, dword [rcx + 0x710]
test r9d, r9d
jns 0x140029fb0
movsxd r8, r8d
mov qword [rcx + 0x40], rdx
mov dword [rcx + 0x9c], 0
add r8, rdx
mov qword [rcx + 0x50], r8
call sym.is_whole_packet_present
mov r14d, eax
test eax, eax
jne 0x14002a741
mov rax, qword [rsp + 0xd8]
mov dword [rax], 0
jmp 0x14002a72d
mov rax, qword [rsp + 0xd8]
mov dword [rax], 0
movsxd rbp, dword [rcx + 0x710]
test ebp, ebp
jle 0x14002a009
mov dword [rcx + 0x720], 0
cmp ebp, 1
je 0x14002a009
mov dword [rcx + 0x734], 0
cmp ebp, 2
je 0x14002a009
mov dword [rcx + 0x748], 0
cmp ebp, 3
je 0x14002a009
mov dword [rcx + 0x75c], 0
cmp ebp, 4
je 0x14002aaaf
xor r14d, r14d
cmp r8d, 3
jle 0x14002a72d
lea r14d, [r8 - 3]
lea r11d, [r8 + 0x17]
pxor xmm2, xmm2
mov r9, rdi
mov r8d, 0x1a
lea rsi, [0x14043f0a0]
pxor xmm1, xmm1
jmp 0x14002a050
add r9, 1
mov r8d, r10d
cmp r11d, r10d
je 0x14002a9c9
cmp byte [r9], 0x4f
lea eax, [r8 - 0x1a]
lea r10d, [r8 + 1]
jne 0x14002a040
mov ecx, dword [0x14018c036]
cmp dword [r9], ecx
jne 0x14002a040
cmp r14d, r8d
jle 0x14002a9c6
movzx edx, byte [r9 + 0x1a]
lea ecx, [rdx + r10]
cmp r14d, ecx
jle 0x14002a9c6
lea r13d, [rdx + 0x1b]
test edx, edx
je 0x14002a610
lea eax, [rdx - 1]
cmp eax, 0xe
jbe 0x14002ab06
movdqu xmm3, xmmword [r9 + 0x1b]
mov eax, edx
shr eax, 4
movdqa xmm0, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm0, xmm2
movdqa xmm4, xmm0
punpckhwd xmm0, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 1
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x2b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 2
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x3b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 3
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x4b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 4
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x5b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 5
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x6b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 6
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x7b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 7
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x8b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 8
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0x9b]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 9
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0xab]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xa
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0xbb]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xb
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0xcb]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xc
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0xdb]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xd
je 0x14002a498
movdqu xmm3, xmmword [r9 + 0xeb]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
cmp eax, 0xf
jne 0x14002a498
movdqu xmm3, xmmword [r9 + 0xfb]
movdqa xmm5, xmm3
punpckhbw xmm3, xmm2
punpcklbw xmm5, xmm2
movdqa xmm4, xmm5
punpckhwd xmm5, xmm1
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
movdqa xmm4, xmm3
punpckhwd xmm3, xmm1
paddd xmm0, xmm5
punpcklwd xmm4, xmm1
paddd xmm0, xmm4
paddd xmm0, xmm3
nop dword [rax]
movdqa xmm3, xmm0
psrldq xmm3, 8
paddd xmm0, xmm3
movdqa xmm3, xmm0
psrldq xmm3, 4
paddd xmm0, xmm3
movd eax, xmm0
add r13d, eax
mov eax, edx
and eax, 0xfffffff0
test edx, 0xffffff0f
je 0x14002a610
lea ecx, [rax + r10]
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 1]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 2]
cmp ecx, edx
jge 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 3]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 4]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 5]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 6]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 7]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 8]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 9]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 0xa]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 0xb]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 0xc]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
lea ecx, [rax + 0xd]
cmp edx, ecx
jle 0x14002a610
add ecx, r10d
add eax, 0xe
movsxd rcx, ecx
movzx ecx, byte [rdi + rcx]
add r13d, ecx
cmp edx, eax
jle 0x14002a610
add eax, r10d
cdqe
movzx eax, byte [rdi + rax]
add r13d, eax
nop
mov rcx, r9
xor edx, edx
lea r12, [r9 + 0x16]
nop dword [rax]
mov eax, edx
add rcx, 1
shl edx, 8
shr eax, 0x18
xor al, byte [rcx - 1]
movzx eax, al
xor edx, dword [rsi + rax*4]
cmp r12, rcx
jne 0x14002a620
mov ecx, edx
mov eax, edx
sub r13d, 0x1a
shr ecx, 0x18
shl eax, 8
xor eax, dword [rsi + rcx*4]
lea rcx, [rbp + rbp*4]
mov edx, eax
shl eax, 8
lea rcx, [rbx + rcx*4]
shr edx, 0x18
xor eax, dword [rsi + rdx*4]
mov edx, eax
shl eax, 8
shr edx, 0x18
xor eax, dword [rsi + rdx*4]
mov edx, eax
shl eax, 8
shr edx, 0x18
xor eax, dword [rsi + rdx*4]
lea edx, [rbp + 1]
mov dword [rbx + 0x710], edx
mov dword [rcx + 0x718], r13d
mov dword [rcx + 0x71c], eax
movzx eax, byte [r9 + 0x17]
movzx r12d, byte [r9 + 0x16]
shl eax, 8
add eax, r12d
movzx r12d, byte [r9 + 0x18]
shl r12d, 0x10
add eax, r12d
movzx r12d, byte [r9 + 0x19]
shl r12d, 0x18
add eax, r12d
mov dword [rcx + 0x714], eax
movzx ecx, byte [r9 + 0x1a]
mov eax, 0xffffffff
add ecx, r10d
movsxd rcx, ecx
cmp byte [rdi + rcx - 1], 0xff
je 0x14002a6f3
movzx eax, byte [r9 + 7]
movzx ecx, byte [r9 + 6]
shl eax, 8
add eax, ecx
movzx ecx, byte [r9 + 8]
shl ecx, 0x10
add eax, ecx
movzx ecx, byte [r9 + 9]
shl ecx, 0x18
add eax, ecx
lea rcx, [rbp + rbp*4]
lea rcx, [rbx + rcx*4]
mov dword [rcx + 0x724], eax
mov dword [rcx + 0x720], r8d
cmp edx, 4
je 0x14002aaac
movsxd rbp, edx
jmp 0x14002a040
mov dword [rcx + 0x9c], 2
xor r14d, r14d
mov eax, r14d
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x54]
lea rbp, [rsp + 0x50]
mov rcx, rbx
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x5c]
lea r9, [rsp + 0x4c]
mov rdx, rbp
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x58]
call sym.vorbis_decode_initial
test eax, eax
je 0x14002a90d
mov ecx, dword [rsp + 0x5c]
mov r12d, dword [rsp + 0x4c]
mov qword [rsp + 0x30], rbp
lea rdx, [rsp + 0x48]
movsxd rax, dword [rsp + 0x54]
mov r9d, dword [rsp + 0x50]
mov dword [rsp + 0x28], ecx
mov rcx, rbx
mov dword [rsp + 0x20], r12d
lea rax, [rax + rax*2]
lea r8, [rbx + rax*2 + 0x1f4]
call sym.vorbis_decode_packet_rest.constprop.0
test eax, eax
je 0x14002a90d
mov ebp, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov r9d, r12d
mov rcx, rbx
mov r8d, ebp
call sym.vorbis_finish_frame
mov r8d, dword [rbx + 4]
test r8d, r8d
jle 0x14002a8dd
movsxd rcx, ebp
shl rcx, 2
cmp r8d, 1
je 0x14002aaff
movdqu xmm1, xmmword [rbx + 0x378]
movq xmm0, rcx
mov edx, r8d
punpcklqdq xmm0, xmm0
shr edx, 1
paddq xmm1, xmm0
movups xmmword [rbx + 0x3f8], xmm1
cmp edx, 1
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x388]
paddq xmm1, xmm0
movups xmmword [rbx + 0x408], xmm1
cmp edx, 2
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x398]
paddq xmm1, xmm0
movups xmmword [rbx + 0x418], xmm1
cmp edx, 3
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x3a8]
paddq xmm1, xmm0
movups xmmword [rbx + 0x428], xmm1
cmp edx, 4
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x3b8]
paddq xmm1, xmm0
movups xmmword [rbx + 0x438], xmm1
cmp edx, 5
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x3c8]
paddq xmm1, xmm0
movups xmmword [rbx + 0x448], xmm1
cmp edx, 6
je 0x14002a8be
movdqu xmm1, xmmword [rbx + 0x3d8]
paddq xmm1, xmm0
movups xmmword [rbx + 0x458], xmm1
cmp edx, 7
je 0x14002a8be
movdqu xmm2, xmmword [rbx + 0x3e8]
paddq xmm0, xmm2
movups xmmword [rbx + 0x468], xmm0
mov edx, r8d
and edx, 0xfffffffe
test r8b, 1
je 0x14002a8dd
movsxd rdx, edx
add rcx, qword [rbx + rdx*8 + 0x378]
mov qword [rbx + rdx*8 + 0x3f8], rcx
test rsi, rsi
je 0x14002a8e5
mov dword [rsi], r8d
mov rsi, qword [rsp + 0xd8]
lea rdx, [rbx + 0x3f8]
mov dword [rsi], eax
mov rax, qword [rsp + 0xd0]
mov qword [rax], rdx
mov r14, qword [rbx + 0x40]
sub r14d, edi
jmp 0x14002a72d
mov eax, dword [rbx + 0x9c]
cmp eax, 0x23
je 0x14002ab0d
cmp eax, 0x20
jne 0x14002a972
mov edx, dword [rbx + 0x4f8]
test edx, edx
jne 0x14002a972
mov dword [rbx + 0x9c], 0
jmp 0x14002a941
mov eax, dword [rbx + 0x98]
test eax, eax
jne 0x14002a958
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
cmp eax, 0xffffffff
jne 0x14002a937
mov rax, qword [rsp + 0xd8]
mov dword [rax], 0
mov r14, qword [rbx + 0x40]
sub r14d, edi
jmp 0x14002a72d
mov rax, qword [rsp + 0xd8]
mov byte [rbx + 0x6e5], 0
mov r14d, 1
mov dword [rbx + 0x4f8], 0
mov dword [rbx + 0x584], 0
mov qword [rbx + 0x708], 0
mov dword [rbx + 0x710], 0
mov qword [rbx + 0x764], 0
mov dword [rax], 0
jmp 0x14002a72d
mov r14d, eax
test ebp, ebp
jle 0x14002a72d
xor r12d, r12d
lea r15, [rdi + 1]
lea r9, [0x14043f0a0]
nop
movsxd rsi, r12d
mov r11d, r14d
lea rax, [rsi + rsi*4]
lea rax, [rbx + rax*4]
mov r13d, dword [rax + 0x720]
mov r10d, dword [rax + 0x718]
mov edx, dword [rax + 0x71c]
sub r11d, r13d
cmp r11d, r10d
cmovg r11d, r10d
test r11d, r11d
jle 0x14002aa43
movsxd r8, r13d
lea eax, [r11 - 1]
lea rcx, [rdi + r8]
add r8, r15
add r8, rax
nop word [rax + rax]
mov eax, edx
add rcx, 1
shl edx, 8
shr eax, 0x18
xor al, byte [rcx - 1]
movzx eax, al
xor edx, dword [r9 + rax*4]
cmp rcx, r8
jne 0x14002aa28
lea rax, [rsi + rsi*4]
sub r10d, r11d
lea rax, [rbx + rax*4]
mov dword [rax + 0x718], r10d
mov dword [rax + 0x71c], edx
jne 0x14002aaa0
cmp dword [rax + 0x714], edx
je 0x14002aabc
sub ebp, 1
movsxd rdx, ebp
mov dword [rbx + 0x710], ebp
lea rdx, [rdx + rdx*4]
lea rdx, [rbx + rdx*4 + 0x710]
movdqu xmm2, xmmword [rdx + 4]
movups xmmword [rax + 0x714], xmm2
mov edx, dword [rdx + 0x14]
mov dword [rax + 0x724], edx
cmp r12d, ebp
jl 0x14002a9e0
jmp 0x14002a72d
mov ebp, dword [rbx + 0x710]
add r12d, 1
jmp 0x14002aa92
mov r8d, r14d
mov r14d, r8d
mov ebp, 4
jmp 0x14002a9d1
mov dword [rbx + 0x710], 0xffffffff
lea r14d, [r13 + r11]
mov dword [rbx + 0x4f8], 0
mov dword [rbx + 0x6e8], 0xffffffff
mov eax, dword [rax + 0x724]
cmp eax, 0xffffffff
mov dword [rbx + 0x580], eax
setne al
movzx eax, al
mov dword [rbx + 0x584], eax
jmp 0x14002a72d
xor edx, edx
jmp 0x14002a8ca
xor eax, eax
jmp 0x14002a4ca
mov dword [rbx + 0x9c], 0
jmp 0x14002ab27
mov ecx, dword [rbx + 0x98]
test ecx, ecx
jne 0x14002a958
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
cmp eax, 0xffffffff
jne 0x14002ab19
jmp 0x14002a958