Function at 0x180037910
Capabilities:
Encode data using xor
Hash data using crc32b

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x30
movsxd rdi, ecx
cmp edi, 7
ja case.default.0x18003794b
lea rcx, [0x180000000]
mov edx, dword [rcx + rdi*4 + 0x38164]
lea rsi, [0x180114f30]
add rdx, rcx
jmp rdx
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf30]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180037a6a
mov r10, rsi
mov r9d, 0x100
nop word [rax + rax]
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x7000000
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x7000000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x7000000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x7000000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x7000000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x7000000
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x7000000
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x7000000
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037980
mov dword [0x180115330], 1
lea rdx, [0x180115730]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180037a30
lea rcx, [0x18011cf30]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf38]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180037ba6
lea r10, [0x18011bf30]
mov r9d, 0x100
nop word [rax + rax]
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x1d000000
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x1d000000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x1d000000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x1d000000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x1d000000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x1d000000
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x1d000000
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x1d000000
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037ab0
mov dword [0x18011c330], 1
lea rdx, [0x18011c730]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x7000]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x7000]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x7000]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180037b60
lea rcx, [0x18011cf38]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf40]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180037ce6
lea r10, [0x180115f30]
mov r9d, 0x100
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x80050000
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x80050000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x80050000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x80050000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x80050000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x80050000
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x80050000
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x80050000
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037be3
mov dword [0x180116330], 1
lea rdx, [0x180116730]
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x1000]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x1000]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x1000]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180037ca0
lea rcx, [0x18011cf40]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf48]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180037e26
lea r10, [0x180116f30]
mov r9d, 0x100
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x10210000
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x10210000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x10210000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x10210000
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x10210000
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x10210000
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x10210000
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x10210000
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037d23
mov dword [0x180117330], 1
lea rdx, [0x180117730]
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x2000]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x2000]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x2000]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180037de0
lea rcx, [0x18011cf48]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf50]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180037f66
lea r10, [0x18011af30]
mov r9d, 0x100
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x864cfb00
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x864cfb00
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x864cfb00
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x864cfb00
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x864cfb00
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x864cfb00
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x864cfb00
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x864cfb00
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037e63
mov dword [0x18011b330], 1
lea rdx, [0x18011b730]
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x6000]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x6000]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x6000]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180037f20
lea rcx, [0x18011cf50]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf58]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x1800380a6
lea r10, [0x180117f30]
mov r9d, 0x100
mov eax, ebx
lea r10, [r10 + 4]
shl eax, 0x18
inc ebx
mov ecx, eax
add eax, eax
sar ecx, 0x1f
and ecx, 0x4c11db7
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x4c11db7
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x4c11db7
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x4c11db7
lea eax, [rcx + rcx]
xor edx, eax
mov ecx, edx
sar ecx, 0x1f
and ecx, 0x4c11db7
lea eax, [rdx + rdx]
xor ecx, eax
mov edx, ecx
sar edx, 0x1f
and edx, 0x4c11db7
lea eax, [rcx + rcx]
xor edx, eax
mov r8d, edx
sar r8d, 0x1f
and r8d, 0x4c11db7
lea eax, [rdx + rdx]
xor r8d, eax
mov ecx, r8d
sar ecx, 0x1f
and ecx, 0x4c11db7
lea eax, [r8 + r8]
xor ecx, eax
bswap ecx
mov dword [r10 - 4], ecx
cmp ebx, r9d
jb 0x180037fa3
mov dword [0x180118330], 1
lea rdx, [0x180118730]
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rdx - 0x800]
lea rdx, [rdx + 4]
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x3000]
mov dword [rdx - 0x404], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x3000]
mov dword [rdx - 4], ecx
movzx eax, cl
shr ecx, 8
xor ecx, dword [rsi + rax*4 + 0x3000]
mov dword [rdx + 0x3fc], ecx
sub r9, 1
jne 0x180038060
lea rcx, [0x18011cf58]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf60]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x1800380d4
call fcn.180037720
lea rcx, [0x18011cf60]
jmp 0x180038109
xor ebx, ebx
lea r8, [rbp + 0x10]
xor r9d, r9d
mov dword [rbp + 0x10], ebx
xor edx, edx
lea rcx, [0x18011cf68]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
cmp dword [rbp + 0x10], ebx
je 0x180038102
call fcn.180037600
lea rcx, [0x18011cf68]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitOnceComplete]
mov rbx, qword [rsp + 0x48]
mov rax, rdi
mov rdi, qword [rsp + 0x58]
shl rax, 0xc
add rax, rsi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rbp
ret
lea rax, str.C:_FFmpeg_n7.0_libavutil_crc.c
mov dword [rsp + 0x28], 0x182
lea r9, [0x1800d5560]
mov qword [rsp + 0x20], rax
lea r8, str.Assertion__s_failed_at__s:_d_n
xor edx, edx
xor ecx, ecx
call sym.avutil_59.dll_av_log
call fcn.1800ad990
int3