Function at 0x100afc51
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x624
mov eax, dword [0x1018dd18]
xor eax, esp
mov dword [esp + 0x620], eax
push ebx
push esi
push edi
xor ecx, ecx
mov eax, ecx
cdq
push 3
pop esi
idiv esi
shl eax, 2
or eax, edx
mov word [ecx*2 + 0x102039e0], ax
inc ecx
cmp ecx, 0x40
jl 0x100afc70
push 2
pop ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0x10203a64
mov dword [esp + 0x18], 0xf
xor eax, eax
xor edi, edi
inc eax
bts edi, ecx
shl eax, cl
xor esi, esi
dec eax
cmp ecx, 0x20
cdq
cmovae esi, edi
xor edi, esi
cmp ecx, 0x40
push edx
cmovae esi, edi
shld esi, edi, 0x17
push eax
push esi
shl edi, 0x17
push edi
call fcn.10117580
cdq
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x10]
mov esi, ebx
mov ecx, edi
shld ecx, esi, 0x18
push 0
push 0xcb2ff5
shl esi, 0x18
shrd esi, ecx, 0x17
push edi
sar ecx, 0x17
push ebx
mov dword [eax - 4], esi
call fcn.10116f10
mov esi, dword [esp + 0x10]
push 0
push 0xa14518
shrd eax, edx, 0x17
push edi
sar edx, 0x17
push ebx
mov dword [esi], eax
call fcn.10116f10
mov ecx, dword [esp + 0x1c]
shrd eax, edx, 0x17
sar edx, 0x17
inc ecx
mov dword [esi + 4], eax
add esi, 0xc
dec dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], esi
jne 0x100afca2
push 0x10203b20
call fcn.100b2e1f
and dword [esp + 0x1c], 0
mov ebx, 0x101c6744
pop ecx
mov dword [esp + 0x1c], 0x101415a4
mov esi, 0x101412e4
mov dword [esp + 0x14], ebx
push 0x1ff
lea eax, [esp + 0x2d]
mov byte [esp + 0x2c], 0
push 0
push eax
call fcn.101138b0
xor eax, eax
push 0x3fe
push eax
mov word [esp + 0x23c], ax
lea eax, [esp + 0x23e]
push eax
call fcn.101138b0
and dword [esp + 0x28], 0
xor edi, edi
add esp, 0x18
cmp dword [esi - 8], edi
jle 0x100afe16
mov eax, dword [esi]
mov ebx, dword [esp + 0x10]
lea eax, [eax + ebx*2]
xor edx, edx
lea ecx, [edi + edi]
mov dword [esp + 0x10], eax
test edi, edi
je 0x100afdc0
test edx, edx
je 0x100afdc0
xor eax, eax
inc eax
jmp 0x100afdc2
xor eax, eax
or ecx, eax
mov eax, dword [esi - 4]
shl ecx, 4
or ecx, edx
mov al, byte [eax + ebx]
mov byte [esp + ecx + 0x28], al
test edi, edi
je 0x100afde0
test edx, edx
je 0x100afde0
xor eax, eax
inc eax
jmp 0x100afde2
xor eax, eax
lea ecx, [edi + edi]
or ecx, eax
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 2
shl ecx, 4
or ecx, edx
inc ebx
mov ax, word [eax]
inc edx
mov word [esp + ecx*2 + 0x228], ax
lea ecx, [edi + edi]
cmp edx, dword [esi - 8]
jl 0x100afdb3
mov eax, dword [esi]
inc edi
cmp edi, dword [esi - 8]
jl 0x100afda7
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
push 4
push 0
push 0
push 0
lea eax, [edi*4 + 0x101c6828]
mov dword [ebx - 8], eax
mov eax, dword [esp + 0x2c]
push 2
push 2
mov eax, dword [eax]
mov dword [ebx], eax
lea eax, [esp + 0x240]
push eax
push 1
push 1
lea eax, [esp + 0x4c]
push eax
push 0x200
push 7
pop eax
push eax
lea eax, [ebx - 0xc]
push eax
call fcn.100c0ad0
mov eax, dword [esp + 0x50]
add esi, 0xc
add ebx, 0x10
add esp, 0x34
mov dword [esp + 0x14], ebx
add edi, dword [eax]
add eax, 4
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
cmp esi, 0x10141398
jl 0x100afd5f
cmp edi, 0xea2
jne 0x100b019f
xor ebx, ebx
xor edi, edi
xor esi, esi
push 4
push 0
push 0
push 0
xor ecx, ecx
lea eax, [ebx*4 + 0x101ca2d0]
inc ecx
mov dword [esi + 0x101ca2b4], eax
mov eax, dword [edi*4 + 0x101415e0]
test edi, edi
push ecx
push ecx
mov dword [esi + 0x101ca2bc], eax
lea eax, [esi + 0x101413d0]
push eax
push ecx
push ecx
lea eax, [esi + 0x101413f0]
push eax
push 0x10
push 4
pop eax
push 7
pop ecx
cmove eax, ecx
push eax
lea eax, [esi + 0x101ca2b0]
push eax
call fcn.100c0ad0
add ebx, dword [edi*4 + 0x101415e0]
lea esi, [esi + 0x10]
add esp, 0x34
inc edi
cmp edi, 2
jl 0x100afe97
cmp ebx, 0x90
je 0x100aff17
push 0x147
push str.b:_browsers_src_third_party_ffmpeglibavcodecmpegaudiodec_template.c
push str.offset___sizeof_huff_quad_vlc_tables____sizeof__huff_quad_vlc_tables__0___
jmp 0x100b01ae
mov ecx, 0x101ca53c
mov edx, 0x10141410
xor esi, esi
lea ebx, [ecx - 0x2c]
xor edi, edi
movzx eax, byte [edx + edi]
mov word [ebx], si
add esi, eax
inc edi
lea ebx, [ebx + 2]
cmp edi, 0x16
jl 0x100aff28
mov word [ecx], si
add edx, 0x16
add ecx, 0x2e
cmp edx, 0x101414d6
jl 0x100aff21
call fcn.100b266f
xor edi, edi
mov eax, dword [edi + 0x1014d2b0]
test eax, eax
jns 0x100affb1
xor ecx, ecx
xor ebx, ebx
inc ecx
sub ecx, eax
xor eax, eax
inc eax
shl eax, cl
test eax, eax
jle 0x100affb1
mov eax, dword [edi + 0x101415e8]
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x1014d268]
mov eax, ebx
cdq
idiv ecx
mov esi, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x14]
shl eax, 4
add eax, edx
shl eax, 4
add eax, esi
inc ebx
mov word [ecx], ax
add ecx, 2
mov dword [esp + 0x14], ecx
xor eax, eax
xor ecx, ecx
inc eax
inc ecx
sub ecx, dword [edi + 0x1014d2b0]
shl eax, cl
cmp ebx, eax
jl 0x100aff76
add edi, 4
cmp edi, 0x10
jl 0x100aff52
xor esi, esi
cmp esi, 6
je 0x100b000e
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x10139c88]
divsd xmm0, qword [0x10141880]
call fcn.10117660
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movapd xmm0, xmm1
addsd xmm0, qword [0x101310c8]
divsd xmm1, xmm0
mulsd xmm1, qword [0x10141890]
addsd xmm1, qword [0x10131958]
cvttsd2si edx, xmm1
jmp 0x100b0013
mov edx, 0x800000
mov ecx, esi
mov eax, 0x10203838
shl ecx, 2
sub eax, ecx
inc esi
push 7
mov dword [ecx + 0x102037e0], edx
mov dword [eax], edx
pop eax
cmp esi, eax
jl 0x100affbb
mov eax, 0x102037fc
and dword [eax + 0x40], 0
and dword [eax], 0
add eax, 4
cmp eax, 0x10203820
jl 0x100b0034
xor esi, esi
and dword [esp + 0x18], 0
mov ebx, esi
and ebx, 1
mov eax, ebx
xor eax, 1
mov dword [esp + 0x1c], eax
lea eax, [esi + 1]
mov edi, eax
mov dword [esp + 0x10], eax
sar edi, 1
neg edi
mov eax, edi
mov dword [esp + 0x14], edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
push ecx
mulsd xmm0, qword [0x101393e0]
movsd qword [esp], xmm0
call fcn.101173d7
fmul qword [0x10141890]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add eax, edx
pop ecx
fadd qword [0x10131958]
shl eax, 4
pop ecx
add eax, esi
fstp qword [esp + 0x20]
cvttsd2si ecx, qword [esp + 0x20]
mov dword [eax*4 + 0x10203860], ecx
lea eax, [edx + ebx]
shl eax, 4
add edx, 2
add eax, esi
mov dword [esp + 0x18], edx
mov dword [eax*4 + 0x10203860], 0x800000
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x14], eax
cmp edx, 4
jl 0x100b006d
mov esi, dword [esp + 0x10]
cmp esi, 0x10
jl 0x100b0047
mov esi, 0x10203964
mov edi, 0x1014157c
movss xmm0, dword [edi]
mulss xmm0, xmm0
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x101310c8]
call fcn.101157d0
movsd xmm1, qword [0x101310c8]
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm0
mulss xmm0, dword [0x10131938]
mulss xmm1, dword [edi]
add edi, 4
mulss xmm0, dword [0x101418a8]
mulss xmm1, dword [0x10131938]
cvtps2pd xmm0, xmm0
mulss xmm1, dword [0x101418a8]
addsd xmm0, qword [0x10131958]
cvttsd2si edx, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
mov dword [esi - 4], edx
addsd xmm0, qword [0x10131958]
cvttsd2si ecx, xmm0
mov dword [esi], ecx
lea eax, [ecx + edx]
sub ecx, edx
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
add esi, 0x10
cmp edi, 0x1014159c
jl 0x100b00f7
mov ecx, dword [esp + 0x62c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.101141d4
mov esp, ebp
pop ebp
ret
push 0x13c
push str.b:_browsers_src_third_party_ffmpeglibavcodecmpegaudiodec_template.c
push str.offset___sizeof_huff_vlc_tables____sizeof__huff_vlc_tables__0___
push str.Assertion__s_failed_at__s:_d_n
push 0
push 0
call fcn.1010c4f6
add esp, 0x18
call fcn.101145c7
int3