Function at 0x100d2e56
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x620
mov eax, dword [0x102d4a48]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor ecx, ecx
push edi
xor edx, edx
mov eax, ecx
push 3
pop esi
div esi
shl eax, 2
or eax, edx
mov word [ecx*2 + 0x1031cfe8], ax
inc ecx
cmp ecx, 0x40
jl 0x100d2e6d
push ebx
push 2
pop ecx
mov dword [ebp - 0x608], ecx
mov ebx, 0x1031d06c
mov dword [ebp - 0x614], 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.10230b30
mov ecx, eax
mov edx, 0x1000000
imul edx
shrd eax, edx, 0x17
mov edx, 0xcb2ff5
mov dword [ebx - 4], eax
mov eax, ecx
imul edx
shrd eax, edx, 0x17
mov dword [ebx], eax
mov eax, ecx
mov ecx, 0xa14518
lea ebx, [ebx + 0xc]
imul ecx
mov ecx, dword [ebp - 0x608]
shrd eax, edx, 0x17
inc ecx
sub dword [ebp - 0x614], 1
mov dword [ebx - 8], eax
mov dword [ebp - 0x608], ecx
jne 0x100d2ea2
push 0x1035c610
call fcn.1014f6f5
and dword [ebp - 0x61c], 0
mov ebx, 0x102dfccc
pop ecx
mov dword [ebp - 0x608], 0x1024b534
mov esi, 0x1024b274
mov dword [ebp - 0x60c], ebx
push 0x200
lea eax, [ebp - 0x204]
push 0
push eax
call fcn.1008c9e0
push 0x400
lea eax, [ebp - 0x604]
push 0
push eax
call fcn.1008c9e0
and dword [ebp - 0x614], 0
xor edi, edi
add esp, 0x18
cmp dword [esi - 8], edi
jle 0x100d2fff
mov eax, dword [esi]
mov ebx, dword [ebp - 0x614]
lea eax, [eax + ebx*2]
xor edx, edx
lea ecx, [edi + edi]
mov dword [ebp - 0x614], eax
test edi, edi
je 0x100d2fa0
test edx, edx
je 0x100d2fa0
xor eax, eax
inc eax
jmp 0x100d2fa2
xor eax, eax
or ecx, eax
mov eax, dword [esi - 4]
shl ecx, 4
or ecx, edx
mov al, byte [eax + ebx]
mov byte [ebp + ecx - 0x204], al
test edi, edi
je 0x100d2fc3
test edx, edx
je 0x100d2fc3
xor eax, eax
inc eax
jmp 0x100d2fc5
xor eax, eax
lea ecx, [edi + edi]
or ecx, eax
mov eax, dword [ebp - 0x614]
add dword [ebp - 0x614], 2
shl ecx, 4
or ecx, edx
inc ebx
mov ax, word [eax]
inc edx
mov word [ebp + ecx*2 - 0x604], ax
lea ecx, [edi + edi]
cmp edx, dword [esi - 8]
jl 0x100d2f93
mov eax, dword [esi]
inc edi
cmp edi, dword [esi - 8]
jl 0x100d2f85
mov ebx, dword [ebp - 0x60c]
mov edi, dword [ebp - 0x61c]
push 4
push 0
push 0
push 0
lea eax, [edi*4 + 0x102dfdb0]
mov dword [ebx - 8], eax
mov eax, dword [ebp - 0x608]
push 2
push 2
mov eax, dword [eax]
mov dword [ebx], eax
lea eax, [ebp - 0x604]
push eax
push 1
push 1
lea eax, [ebp - 0x204]
push eax
push 0x200
push 7
pop eax
push eax
lea eax, [ebx - 0xc]
push eax
call fcn.101378a6
mov eax, dword [ebp - 0x608]
add esi, 0xc
add ebx, 0x10
add esp, 0x34
mov dword [ebp - 0x60c], ebx
add edi, dword [eax]
add eax, 4
mov dword [ebp - 0x61c], edi
mov dword [ebp - 0x608], eax
cmp esi, 0x1024b328
jl 0x100d2f42
cmp edi, 0xea2
jne 0x100d33bd
xor ebx, ebx
xor edi, edi
xor esi, esi
push 4
push 0
push 0
push 0
xor ecx, ecx
lea eax, [ebx*4 + 0x102e3858]
inc ecx
mov dword [esi + 0x102e383c], eax
mov eax, dword [edi*4 + 0x1024b570]
test edi, edi
push ecx
push ecx
mov dword [esi + 0x102e3844], eax
lea eax, [esi + 0x1024b360]
push eax
push ecx
push ecx
lea eax, [esi + 0x1024b380]
push eax
push 0x10
push 4
pop eax
push 7
pop ecx
cmove eax, ecx
push eax
lea eax, [esi + 0x102e3838]
push eax
call fcn.101378a6
add ebx, dword [edi*4 + 0x1024b570]
lea esi, [esi + 0x10]
add esp, 0x34
inc edi
cmp edi, 2
jl 0x100d308d
cmp ebx, 0x90
je 0x100d310d
push 0x14b
push str.C:UsersluksyDesktop_ffmpeglibavcodecmpegaudiodec_template.c
push str.offset___sizeof_huff_quad_vlc_tables____sizeof__huff_quad_vlc_tables__0___
jmp 0x100d33cc
mov edx, 0x102e3ac4
mov ecx, 0x1024b3a0
push 0x16
xor esi, esi
lea edi, [edx - 0x2c]
pop ebx
movzx eax, byte [ecx]
mov word [edi], si
add esi, eax
inc ecx
lea edi, [edi + 2]
sub ebx, 1
jne 0x100d311f
mov word [edx], si
add edx, 0x2e
cmp ecx, 0x1024b466
jl 0x100d3117
call fcn.100d58e1
xor edi, edi
mov eax, dword [edi + 0x10267200]
test eax, eax
jns 0x100d31aa
xor ecx, ecx
xor ebx, ebx
inc ecx
sub ecx, eax
xor eax, eax
inc eax
shl eax, cl
test eax, eax
jle 0x100d31aa
mov eax, dword [edi + 0x1024b598]
mov dword [ebp - 0x60c], eax
mov ecx, dword [edi + 0x102671b8]
mov eax, ebx
cdq
idiv ecx
mov esi, edx
cdq
idiv ecx
mov ecx, dword [ebp - 0x60c]
shl eax, 4
add eax, edx
shl eax, 4
add eax, esi
inc ebx
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x60c], ecx
xor eax, eax
xor ecx, ecx
inc eax
inc ecx
sub ecx, dword [edi + 0x10267200]
shl eax, cl
cmp ebx, eax
jl 0x100d316b
add edi, 4
cmp edi, 0x10
jl 0x100d3145
xor esi, esi
cmp esi, 6
je 0x100d321d
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
push ecx
push ecx
mulsd xmm0, qword [0x1024b868]
divsd xmm0, qword [0x1024b870]
movsd qword [esp], xmm0
call fcn.10232690
fstp dword [ebp - 0x60c]
fld dword [ebp - 0x60c]
fstp qword [ebp - 0x610]
movsd xmm1, qword [ebp - 0x610]
movaps xmm0, xmm1
addsd xmm0, qword [0x102d0c08]
pop ecx
pop ecx
divsd xmm1, xmm0
mulsd xmm1, qword [0x1024b878]
addsd xmm1, qword [0x10244180]
cvttsd2si edx, xmm1
jmp 0x100d3222
mov edx, 0x800000
mov ecx, esi
mov eax, 0x1031ce40
shl ecx, 2
sub eax, ecx
inc esi
push 7
mov dword [ecx + 0x1031cde8], edx
mov dword [eax], edx
pop eax
cmp esi, eax
jl 0x100d31b4
mov eax, 0x1031ce04
and dword [eax + 0x40], 0
and dword [eax], 0
add eax, 4
cmp eax, 0x1031ce28
jl 0x100d3247
xor esi, esi
lea eax, [esi + 1]
mov edi, esi
and edi, 1
mov dword [ebp - 0x608], eax
mov ecx, eax
xor ebx, ebx
sar ecx, 1
mov eax, edi
xor eax, 1
mov dword [ebp - 0x61c], ecx
mov dword [ebp - 0x60c], eax
mov eax, ebx
not eax
imul eax, ecx
push ecx
push ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x1024b858]
movsd qword [esp], xmm0
call fcn.102329cf
fmul qword [0x1024b878]
mov eax, dword [ebp - 0x60c]
pop ecx
pop ecx
fadd qword [0x10244180]
lea eax, [eax + ebx*2]
shl eax, 4
add eax, esi
fstp qword [ebp - 0x618]
cvttsd2si ecx, qword [ebp - 0x618]
mov dword [eax*4 + 0x1031ce68], ecx
lea eax, [edi + ebx*2]
mov ecx, dword [ebp - 0x61c]
shl eax, 4
add eax, esi
inc ebx
mov dword [eax*4 + 0x1031ce68], 0x800000
cmp ebx, 2
jl 0x100d327f
mov esi, dword [ebp - 0x608]
cmp esi, 0x10
jl 0x100d325a
mov esi, 0x1031cf6c
mov edi, 0x1024b50c
pop ebx
movss xmm1, dword [edi]
cvtps2pd xmm1, xmm1
push ecx
push ecx
movaps xmm0, xmm1
movsd qword [ebp - 0x620], xmm1
mulsd xmm0, xmm1
addsd xmm0, qword [0x102d0c08]
movsd qword [esp], xmm0
call fcn.10232580
fld1
add edi, 4
fdivrp st(1)
pop ecx
pop ecx
fstp qword [ebp - 0x610]
movsd xmm1, qword [ebp - 0x610]
movaps xmm0, xmm1
mulsd xmm1, qword [ebp - 0x620]
mulsd xmm0, qword [0x1024b858]
mulsd xmm1, qword [0x1024b858]
mulsd xmm0, qword [0x1024b890]
mulsd xmm1, qword [0x1024b890]
addsd xmm0, qword [0x10244180]
addsd xmm1, qword [0x10244180]
cvttsd2si edx, xmm0
cvttsd2si ecx, xmm1
mov dword [esi - 4], edx
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, 0x1024b52c
jl 0x100d330c
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1008a9cb
leave
ret
push 0x140
push str.C:UsersluksyDesktop_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.101ceb2e
add esp, 0x18
call fcn.1009dc33
int3