Function at 0x100069a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push edi
mov ebx, dword [ebp + 0x130]
mov eax, dword [ebx + 0x7cbc]
test eax, eax
je 0x100069ce
mov ecx, dword [ebp + 0x118]
shl ecx, 4
add ecx, eax
mov ecx, dword [ecx*4 + 0x100307bc]
jmp 0x100069d1
mov ecx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x118]
push esi
inc eax
mov esi, dword [ebx + 0xce8c]
imul eax, ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
shl eax, 6
cdq
idiv dword [ebp + 0xc]
mov edx, dword [ebx + 0xcebc]
mov edi, eax
add edi, edx
shl edi, 3
cmp esi, 8
mov dword [esp + 0x1c], edi
jl 0x10006a5a
push 8
push 0x4c
push ebx
call fcn.100067c0
sub esi, 8
add esp, 0xc
cmp esi, 8
jl 0x10006a5a
push 8
push 0x41
push ebx
call fcn.100067c0
sub esi, 8
add esp, 0xc
cmp esi, 8
jl 0x10006a5a
push 8
push 0x4d
push ebx
call fcn.100067c0
sub esi, 8
add esp, 0xc
cmp esi, 8
jl 0x10006a5a
push 8
push 0x45
push ebx
call fcn.100067c0
add esp, 0xc
sub esi, 8
cmp esi, 0x20
jl 0x10006ac3
call fcn.10004e60
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x10], edx
test ecx, ecx
mov dword [esp + 0x14], 0
jle 0x10006abf
jmp 0x10006a88
mov edx, dword [esp + 0x10]
cmp esi, 8
jl 0x10006abf
mov eax, dword [esp + 0x14]
push 8
sub esi, 8
movsx ecx, byte [eax + edx]
push ecx
push ebx
call fcn.100067c0
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
add esp, 0xc
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x14], edx
cmp edx, ecx
jl 0x10006a84
mov edi, dword [esp + 0x1c]
cmp esi, 1
jl 0x10006af5
mov edx, dword [ebx + 0x1308c]
push 1
push edx
push ebx
call fcn.100067c0
mov edx, dword [ebp + 0x60]
mov ecx, dword [ebx + 0x1308c]
add esp, 0xc
xor eax, eax
test edx, edx
sete al
xor ecx, eax
dec esi
mov dword [ebx + 0x1308c], ecx
jne 0x10006ac8
push edi
push ebp
call fcn.10006ee0
mov edi, dword [ebx + 0xdc00]
push ebp
shl edi, 3
call fcn.100080a0
mov esi, dword [ebp + 0x130]
add edi, eax
mov eax, dword [ebx + 0xce90]
add esp, 0xc
cmp eax, 8
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
jl 0x10006d03
mov ebp, 8
mov eax, dword [esi + 0x7d10]
test eax, eax
jne 0x10006b89
mov edi, dword [esi + 0x7d0c]
mov dword [esi + 0x7d10], 8
inc edi
mov dword [esi + 0x7d0c], edi
mov eax, dword [esi + 0x13088]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x7d08]
shl ecx, 4
mov edx, dword [ecx + esi + 0x10084]
cmp edx, eax
jne 0x10006b79
push esi
call fcn.100060d0
add esp, 4
mov eax, dword [esi + 0x7d0c]
mov ecx, dword [esi + 0x7d00]
mov byte [eax + ecx], 0
mov edi, dword [esi + 0x7d10]
cmp ebp, edi
jge 0x10006b95
mov edi, ebp
mov edx, dword [esi + 0x7d10]
mov eax, dword [esi + 0x7d00]
sub edx, edi
sub ebp, edi
mov dword [esi + 0x7d10], edx
mov edx, dword [esi + 0x7d0c]
add eax, edx
mov edx, 0x4c
mov ecx, ebp
sar edx, cl
mov ecx, dword [esi + 0x7d10]
shl dl, cl
mov cl, byte [eax]
or cl, dl
mov byte [eax], cl
mov ecx, dword [esi + 0x7d08]
add ecx, edi
test ebp, ebp
mov dword [esi + 0x7d08], ecx
jg 0x10006b32
mov eax, dword [esp + 0x10]
sub eax, 8
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x10006cfb
mov ebp, 8
mov eax, dword [esi + 0x7d10]
test eax, eax
jne 0x10006c50
mov edx, dword [esi + 0x7d0c]
mov dword [esi + 0x7d10], 8
inc edx
mov dword [esi + 0x7d0c], edx
mov eax, dword [esi + 0x13088]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [eax + esi + 0x10084]
mov eax, dword [esi + 0x7d08]
cmp ecx, eax
jne 0x10006c40
push esi
call fcn.100060d0
add esp, 4
mov edx, dword [esi + 0x7d0c]
mov eax, dword [esi + 0x7d00]
mov byte [edx + eax], 0
mov edi, dword [esi + 0x7d10]
cmp ebp, edi
jge 0x10006c5c
mov edi, ebp
mov edx, dword [esi + 0x7d10]
mov ecx, dword [esi + 0x7d0c]
sub edx, edi
sub ebp, edi
mov dword [esi + 0x7d10], edx
mov edx, dword [esi + 0x7d00]
lea eax, [ecx + edx]
mov edx, 0x41
mov ecx, ebp
sar edx, cl
mov ecx, dword [esi + 0x7d10]
shl dl, cl
mov cl, byte [eax]
or cl, dl
mov byte [eax], cl
mov ecx, dword [esi + 0x7d08]
add ecx, edi
test ebp, ebp
mov dword [esi + 0x7d08], ecx
jg 0x10006bf9
mov eax, dword [esp + 0x10]
sub eax, 8
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x10006ced
push 8
push 0x4d
push esi
call fcn.100067c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, 8
cmp eax, 8
mov dword [esp + 0x10], eax
jl 0x10006ced
push 8
push 0x45
push esi
call fcn.100067c0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, 8
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
jmp 0x10006d03
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
cmp eax, 0x20
jl 0x10006d7c
call fcn.10004e60
mov edx, eax
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x18], edx
test ecx, ecx
mov dword [esp + 0x28], 0
jle 0x10006d74
jmp 0x10006d31
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, 8
cmp ecx, eax
jl 0x10006d74
mov edi, ecx
push eax
sub edi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], edi
movsx ecx, byte [eax + edx]
push ecx
push esi
call fcn.100067c0
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
add esp, 0xc
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x28], edx
cmp edx, ecx
jl 0x10006d2d
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp eax, 1
jl 0x10006dba
mov dword [esp + 0x28], eax
mov edx, dword [esi + 0x1308c]
push 1
push edx
push esi
call fcn.100067c0
mov edx, dword [ebp + 0x60]
mov ecx, dword [esi + 0x1308c]
add esp, 0xc
xor eax, eax
test edx, edx
sete al
xor ecx, eax
mov eax, dword [esp + 0x28]
dec eax
mov dword [esi + 0x1308c], ecx
mov dword [esp + 0x28], eax
jne 0x10006d85
mov esi, dword [ebx + 0xce90]
mov ecx, dword [ebx + 0xce84]
add edi, esi
mov esi, dword [esp + 0x1c]
mov eax, esi
sub eax, edi
cdq
and edx, 7
add eax, edx
sar eax, 3
add ecx, eax
mov dword [ebx + 0xce84], ecx
lea ecx, [esp + 0x20]
push ecx
push ebp
call fcn.100061f0
mov ecx, dword [ebx + 0x13090]
add esp, 8
cmp eax, ecx
je 0x10006e07
push str.Internal_buffer_inconsistency._flushbits____ResvSize
push ebx
call fcn.10005f30
add esp, 8
mov edx, dword [ebx + 0xce84]
mov ebp, dword [ebx + 0x13090]
shl edx, 3
cmp edx, ebp
je 0x10006e97
mov eax, dword [ebx + 0xdc00]
mov ecx, dword [ebx + 0xce90]
push esi
mov esi, edi
shl eax, 3
and esi, 0x80000007
jns 0x10006e39
dec esi
or esi, 0xfffffff8
inc esi
push esi
push edi
sub edi, ecx
sub edi, eax
push edi
push eax
mov eax, dword [ebx + 0xce8c]
push eax
push ecx
push ebp
push edx
push str.bit_reservoir_error:__nl3_side__main_data_begin:__i__nResvoir_size:______________i__nresv_drain__post___________i__nresv_drain__pre____________i__nheader_and_sideinfo:_______i__ndata_bits:_________________i__ntotal_bits:________________i__remainder:__i___nbitsperframe:______________i__n
push ebx
call fcn.10005f30
push str.This_is_a_fatal_error.__It_has_several_possible_causes:
push ebx
call fcn.10005f30
push str.90___LAME_compiled_with_buggy_version_of_gcc_using_advanced_optimizations
push ebx
call fcn.10005f30
push str._9___Your_system_is_overclocked
push ebx
call fcn.10005f30
add esp, 0x44
push str._1___bug_in_LAME_encoding_library
push ebx
call fcn.10005f30
mov ecx, dword [ebx + 0xce84]
add esp, 8
shl ecx, 3
mov dword [ebx + 0x13090], ecx
mov eax, dword [ebx + 0x7d08]
pop esi
cmp eax, 0x3b9aca00
jle 0x10006ecc
lea eax, [ebx + 0x10084]
mov ecx, 0x100
mov edx, dword [ebx + 0x7d08]
mov edi, dword [eax]
sub edi, edx
mov dword [eax], edi
add eax, 0x30
dec ecx
jne 0x10006eb0
mov dword [ebx + 0x7d08], 0
pop edi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret