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

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
mov ecx, 0x17a
push ebx
lea ebx, [ebp - 0x600]
sub esp, 0xa3c
mov edi, ebx
mov edx, dword [ebp + 0x18]
rep stosd dword es:[edi], eax
test edx, edx
je 0x70232e7a
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x5ac], edx
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x5ac]
and eax, 0xfffffff8
mov dword [ebp - 0x5ac], eax
mov dword [ebp - 0x5a4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x74], 0xffffffff
mov dword [ebp - 0x5e0], eax
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x5d8], eax
mov eax, ebx
mov byte [ebp - 0x5d0], 1
mov byte [ebp - 0x9f], 1
call sym._start_page
test eax, eax
je 0x70234d1f
mov al, byte [ebp - 0xa1]
test al, 2
jne 0x70232ec9
mov dword [ebp - 0x59c], 0x22
jmp 0x70234d1f
test al, 5
jne 0x70232eba
cmp dword [ebp - 0x1a4], 1
jne 0x70232eba
mov al, byte [ebp - 0x1a0]
cmp al, 0x1e
je 0x70232f5d
cmp al, 0x40
jne 0x70232eba
mov ecx, 6
lea edx, [ebp - 0x9ee]
mov eax, ebx
call sym._getn
test eax, eax
je 0x70232eba
cmp byte [ebp - 0x9ee], 0x66
jne 0x70232eba
cmp byte [ebp - 0x9ed], 0x69
jne 0x70232eba
cmp byte [ebp - 0x9ec], 0x73
jne 0x70232eba
cmp byte [ebp - 0x9eb], 0x68
jne 0x70232eba
cmp byte [ebp - 0x9ea], 0x65
jne 0x70232eba
cmp byte [ebp - 0x9e9], 0x61
jne 0x70232eba
mov eax, ebx
call sym._get8
cmp al, 0x64
jne 0x70232eba
mov eax, ebx
call sym._get8
test al, al
jne 0x70232eba
mov dword [ebp - 0x59c], 0x26
jmp 0x70234d1f
mov eax, ebx
call sym._get8
dec al
jne 0x70232eba
lea edx, [ebp - 0x9ee]
mov ecx, 6
mov eax, ebx
call sym._getn
test eax, eax
jne 0x70232f91
mov dword [ebp - 0x59c], 0xa
jmp 0x70234d1f
mov dword [esp + 8], 6
mov dword [esp + 4], str.vorbis
mov dword [esp], edx
call sym._memcmp
mov esi, eax
test eax, eax
jne 0x70232eba
mov eax, ebx
call sym._get32
test eax, eax
jne 0x70232eba
mov eax, ebx
call sym._get8
movzx eax, al
mov dword [ebp - 0x5fc], eax
test eax, eax
je 0x70232eba
cmp eax, 0x10
jle 0x70232fee
mov dword [ebp - 0x59c], 5
jmp 0x70234d1f
lea eax, [ebp - 0x600]
call sym._get32
mov dword [ebp - 0x600], eax
test eax, eax
je 0x70232eba
lea eax, [ebp - 0x600]
call sym._get32
lea eax, [ebp - 0x600]
call sym._get32
lea eax, [ebp - 0x600]
call sym._get32
lea eax, [ebp - 0x600]
call sym._get8
mov edx, 1
mov cl, al
mov edi, eax
shr al, 4
and ecx, 0xf
and edi, 0xf
mov byte [ebp - 0xa00], al
movzx ebx, al
mov eax, edx
shl eax, cl
mov cl, byte [ebp - 0xa00]
mov dword [ebp - 0x590], eax
shl edx, cl
lea eax, [edi - 6]
mov dword [ebp - 0x58c], edx
cmp eax, 7
ja 0x702345fe
lea eax, [ebx - 6]
cmp eax, 7
ja 0x702345fe
cmp edi, ebx
jg 0x702345fe
lea eax, [ebp - 0x600]
call sym._get8
test al, 1
je 0x70232eba
lea eax, [ebp - 0x600]
call sym._start_page
test eax, eax
je 0x70234d1f
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x70234d1f
lea eax, [ebp - 0x600]
call sym._next_segment
test eax, eax
je 0x70234d1f
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 3
jne 0x702345fe
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + esi - 0x9ee], al
inc esi
cmp esi, 6
jne 0x702330e6
mov dword [esp + 8], 6
mov dword [esp + 4], str.vorbis
mov dword [esp], edx
call sym._memcmp
test eax, eax
jne 0x702345fe
lea eax, [ebp - 0x600]
xor esi, esi
call sym._get32_packet
mov ebx, eax
lea edx, [eax + 1]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebp - 0x5ec], eax
test eax, eax
je 0x702346ab
cmp ebx, esi
jle 0x7023316a
lea eax, [ebp - 0x600]
call sym._get8_packet
mov edx, dword [ebp - 0x5ec]
mov byte [edx + esi], al
inc esi
jmp 0x7023314f
mov eax, dword [ebp - 0x5ec]
mov byte [eax + ebx], 0
lea eax, [ebp - 0x600]
call sym._get32_packet
mov dword [ebp - 0x5e4], 0
mov dword [ebp - 0x5e8], eax
test eax, eax
jg 0x702331b2
lea eax, [ebp - 0x600]
call sym._get8_packet
and eax, 1
mov dword [ebp - 0xa28], eax
je 0x702345fe
jmp 0x70233263
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
xor ebx, ebx
mov dword [ebp - 0x5e4], eax
test eax, eax
je 0x702346ab
cmp ebx, dword [ebp - 0x5e8]
jge 0x70233193
lea eax, [ebp - 0x600]
lea edi, [ebx*4]
call sym._get32_packet
mov esi, eax
mov eax, dword [ebp - 0x5e4]
add eax, edi
mov dword [ebp - 0xa00], eax
lea edx, [esi + 1]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov ecx, dword [ebp - 0xa00]
mov dword [ecx], eax
mov eax, dword [ebp - 0x5e4]
cmp dword [eax + ebx*4], 0
je 0x702346ab
xor edx, edx
cmp esi, edx
jle 0x70233250
lea eax, [ebp - 0x600]
mov dword [ebp - 0xa00], edx
call sym._get8_packet
mov ecx, dword [ebp - 0x5e4]
mov edx, dword [ebp - 0xa00]
mov ecx, dword [ecx + edi]
mov byte [ecx + edx], al
inc edx
jmp 0x70233226
mov eax, dword [ebp - 0x5e4]
inc ebx
mov eax, dword [eax + edi]
mov byte [eax + esi], 0
jmp 0x702331d4
movzx eax, byte [ebp - 0xa0]
add eax, dword [ebp - 0x5e0]
cmp eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5e0], eax
jb 0x70233288
mov dword [ebp - 0x5a0], 1
mov byte [ebp - 0xa0], 0
lea eax, [ebp - 0x600]
call sym._next_segment
mov ebx, eax
mov eax, dword [ebp - 0x5e0]
add eax, ebx
cmp eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5e0], eax
jb 0x702332bc
mov dword [ebp - 0x5a0], 1
mov byte [ebp - 0xa0], 0
test ebx, ebx
jne 0x7023328f
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x70234d1f
lea eax, [ebp - 0x600]
call sym._is_whole_packet_present
test eax, eax
jne 0x702332fb
cmp dword [ebp - 0x59c], 0x15
jne 0x70234d1f
jmp 0x702345fe
xor edx, edx
mov eax, edx
mov dword [ebp - 0xa20], 8
shl eax, 0x18
lea ecx, [eax + eax]
sar eax, 0x1f
and eax, 0x4c11db7
xor eax, ecx
dec dword [ebp - 0xa20]
jne 0x7023330c
mov dword [edx*4 + 0x702a9f60], eax
inc edx
cmp edx, 0x100
jne 0x702332fd
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 5
jne 0x702345fe
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + ebx - 0x9ee], al
inc ebx
cmp ebx, 6
jne 0x70233345
mov dword [esp + 8], 6
mov dword [esp + 4], str.vorbis
mov dword [esp], edx
call sym._memcmp
mov dword [ebp - 0xa14], eax
test eax, eax
jne 0x702345fe
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
imul edx, eax, 0x830
mov dword [ebp - 0x588], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov edx, eax
mov dword [ebp - 0x584], eax
test eax, eax
je 0x702346ab
imul ecx, dword [ebp - 0x588], 0x830
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0xa18], 0
mov eax, dword [ebp - 0xa18]
cmp eax, dword [ebp - 0x588]
jge 0x702340ad
imul ebx, dword [ebp - 0xa18], 0x830
mov edx, 8
lea eax, [ebp - 0x600]
add ebx, dword [ebp - 0x584]
call sym._get_bits_1
cmp al, 0x42
jne 0x702345fe
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x43
jne 0x702345fe
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x56
jne 0x702345fe
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov esi, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov ecx, esi
movzx esi, cl
shl eax, 8
mov edx, 8
add eax, esi
mov dword [ebx], eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov edi, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov esi, eax
lea eax, [ebp - 0x600]
shl esi, 8
call sym._get_bits_1
mov ecx, edi
mov edx, 1
shl eax, 0x10
movzx edi, cl
add eax, edi
movzx esi, si
add eax, esi
mov dword [ebx + 4], eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov dword [ebp - 0xa08], eax
xor eax, eax
cmp dword [ebp - 0xa08], 0
jne 0x702334ed
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp dword [ebx], 0
mov byte [ebx + 0x17], al
mov edx, dword [ebx + 4]
jne 0x70233500
test edx, edx
jne 0x702345fe
test al, al
lea eax, [ebp - 0x600]
je 0x70233517
call sym._setup_temp_malloc
mov dword [ebp - 0xa00], eax
jmp 0x70233525
call sym._setup_malloc
mov dword [ebp - 0xa00], eax
mov dword [ebx + 8], eax
cmp dword [ebp - 0xa00], 0
je 0x702346ab
xor esi, esi
cmp dword [ebp - 0xa08], 0
je 0x702335e6
mov edx, 5
lea eax, [ebp - 0x600]
call sym._get_bits_1
xor edi, edi
inc eax
mov dword [ebp - 0xa08], eax
mov eax, dword [ebx + 4]
cmp eax, edi
jle 0x702335ad
sub eax, edi
call sym._ilog
mov edx, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp dword [ebp - 0xa08], 0x1f
mov ecx, eax
jg 0x702345fe
lea esi, [edi + eax]
cmp esi, dword [ebx + 4]
jg 0x702345fe
mov eax, dword [ebp - 0xa00]
lea edx, [eax + edi]
mov al, byte [ebp - 0xa08]
mov edi, edx
inc dword [ebp - 0xa08]
rep stosb byte es:[edi], al
mov edi, esi
jmp 0x7023355a
mov dword [ebp - 0xa08], 0
jmp 0x70233610
test al, al
jne 0x702335f0
mov edx, 5
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edi, dword [ebp - 0xa00]
inc eax
inc dword [ebp - 0xa08]
mov byte [edi + esi], al
cmp al, 0x20
je 0x702345fe
inc esi
cmp esi, dword [ebx + 4]
mov al, byte [ebx + 0x17]
jl 0x702335b9
jmp 0x70233610
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x702335bd
mov eax, dword [ebp - 0xa00]
mov byte [eax + esi], 0xff
jmp 0x702335e5
cmp byte [ebx + 0x17], 0
je 0x7023367b
mov eax, dword [ebx + 4]
mov edx, eax
sar edx, 2
cmp edx, dword [ebp - 0xa08]
jg 0x7023367b
cmp eax, dword [ebp - 0x5f0]
jle 0x70233634
mov dword [ebp - 0x5f0], eax
mov edx, dword [ebx + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 8], eax
test eax, eax
je 0x702346ab
mov ecx, dword [ebx + 4]
mov edi, eax
mov esi, dword [ebp - 0xa00]
lea eax, [ebp - 0x600]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0xa00]
mov ecx, dword [ebx + 4]
call sym._setup_temp_free
mov eax, dword [ebx + 8]
mov dword [ebp - 0xa00], eax
mov byte [ebx + 0x17], 0
mov cl, byte [ebx + 0x17]
test cl, cl
jne 0x702336b6
mov esi, dword [ebx + 4]
mov dword [ebp - 0xa08], 0
xor eax, eax
cmp eax, esi
jge 0x702336b6
mov edi, dword [ebp - 0xa00]
mov dl, byte [edi + eax]
mov edi, edx
mov byte [ebp - 0xa10], dl
lea edx, [edi - 0xb]
cmp dl, 0xf4
adc dword [ebp - 0xa08], 0
inc eax
jmp 0x70233691
mov eax, dword [ebp - 0xa08]
test cl, cl
mov dword [ebx + 0x82c], eax
jne 0x702336f5
mov eax, dword [ebx + 4]
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x20], eax
test eax, eax
je 0x702346ab
mov dword [ebp - 0xa10], 0
jmp 0x70233787
cmp dword [ebp - 0xa08], 0
mov dword [ebp - 0xa10], 0
je 0x7023376d
mov edx, dword [ebp - 0xa08]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 8], eax
test eax, eax
je 0x702346ab
mov eax, dword [ebx + 0x82c]
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_temp_malloc
mov dword [ebx + 0x20], eax
test eax, eax
je 0x702346ab
mov eax, dword [ebx + 0x82c]
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_temp_malloc
mov dword [ebp - 0xa10], eax
test eax, eax
je 0x702346ab
mov edx, dword [ebx + 0x82c]
mov eax, dword [ebx + 4]
lea eax, [eax + edx*8]
cmp eax, dword [ebp - 0x5f0]
jbe 0x70233787
mov dword [ebp - 0x5f0], eax
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x9e8]
mov dword [ebp - 0xa1c], eax
mov ecx, 0x20
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
cmp dword [ebp - 0xa1c], eax
jle 0x702337b8
mov edi, dword [ebp - 0xa00]
cmp byte [edi + eax], 0xff
jne 0x702337ef
inc eax
jmp 0x702337a1
jne 0x702337ef
cmp dword [ebx + 0x82c], 0
jne 0x702337d6
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x70233998
jmp 0x702339fb
mov dword [esp + 8], 0x44f
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.c__sorted_entries__0
jmp 0x7023381b
mov edi, dword [ebp - 0xa00]
add edi, eax
mov dword [ebp - 0xa08], edi
mov dl, byte [edi]
cmp dl, 0x1f
jbe 0x70233820
mov dword [esp + 8], 0x450
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.len_k____32
call sym.__assert
cmp byte [ebx + 0x17], 0
mov ecx, dword [ebx + 0x20]
jne 0x70233832
mov dword [ecx + eax*4], 0
jmp 0x70233845
mov dword [ecx], 0
mov edi, dword [ebp - 0xa10]
mov ecx, dword [ebx + 8]
mov byte [ecx], dl
mov dword [edi], eax
mov edx, dword [ebp - 0xa28]
mov edi, 1
mov esi, dword [ebp - 0xa08]
movzx ecx, byte [esi]
cmp edx, ecx
jg 0x70233872
mov ecx, 0x20
mov esi, edi
sub ecx, edx
shl esi, cl
mov dword [ebp + edx*4 - 0x9e8], esi
inc edx
jmp 0x70233850
lea esi, [eax + 1]
mov ecx, dword [ebp - 0xa28]
cmp dword [ebp - 0xa1c], esi
jle 0x702337c3
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + esi]
mov byte [ebp - 0xa24], al
cmp eax, 0xff
je 0x702338e2
cmp eax, 0x1f
jle 0x702338d7
mov dword [esp + 8], 0x45e
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.z___32
jmp 0x7023381b
lea eax, [eax - 1]
mov edx, dword [ebp + eax*4 - 0x9e4]
mov dword [ebp - 0xa08], edx
test edx, edx
jne 0x70234d96
mov edi, eax
test eax, eax
jne 0x702338bf
jmp 0x70234e39
mov dword [ebp - 0xa2c], ecx
inc esi
mov ecx, dword [ebp - 0xa2c]
jmp 0x7023387b
mov edi, dword [ebp - 0xa00]
cmp byte [ebx + 0x17], 0
mov dl, byte [edi + ecx]
jne 0x70233a66
sub edx, 0xb
cmp dl, 0xf3
jbe 0x70233a86
inc ecx
cmp ecx, dword [ebx + 4]
jl 0x702338f1
cmp eax, dword [ebx + 0x82c]
jne 0x70233aa6
mov dword [esp + 0xc], sym._uint32_compare
mov dword [esp + 8], 4
mov eax, dword [ebx + 0x82c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x824]
mov dword [esp], eax
call sym._qsort
mov edx, dword [ebx + 0x82c]
mov eax, dword [ebx + 0x824]
mov dword [eax + edx*4], 0xffffffff
cmp byte [ebx + 0x17], 0
je 0x70233ae7
mov eax, dword [ebx + 0x82c]
mov dword [ebp - 0xa30], eax
mov dword [ebp - 0xa08], 0
mov al, byte [ebx + 0x17]
mov edi, dword [ebp - 0xa30]
cmp dword [ebp - 0xa08], edi
mov byte [ebp - 0xa24], al
jl 0x70233aef
cmp byte [ebx + 0x17], 0
je 0x70233c04
mov eax, dword [ebx + 0x82c]
mov edx, dword [ebp - 0xa10]
lea ecx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_temp_free
mov eax, dword [ebx + 0x82c]
mov edx, dword [ebx + 0x20]
lea ecx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_temp_free
mov ecx, dword [ebx + 4]
mov edx, dword [ebp - 0xa00]
lea eax, [ebp - 0x600]
call sym._setup_temp_free
mov dword [ebx + 0x20], 0
jmp 0x70233c04
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x824], eax
test eax, eax
je 0x702346ab
mov eax, dword [ebx + 0x82c]
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
test eax, eax
jne 0x70233a46
mov dword [ebx + 0x828], 0
jmp 0x702346ab
lea edx, [eax + 4]
xor ecx, ecx
mov dword [ebx + 0x828], edx
mov dword [eax], 0xffffffff
cmp byte [ebx + 0x17], 0
jne 0x70233ac2
xor eax, eax
xor ecx, ecx
jmp 0x70233911
inc dl
jne 0x70233a86
mov dword [esp + 8], 0x49c
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.len___NO_CODE
jmp 0x7023381b
mov edx, dword [ebx + 0x824]
lea esi, [eax + 1]
lea edi, [edx + eax*4]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + ecx*4]
call sym._bit_reverse
mov dword [edi], eax
mov eax, esi
jmp 0x70233910
mov dword [esp + 8], 0x4b0
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.k__c__sorted_entries
jmp 0x7023381b
cmp ecx, dword [ebx + 0x82c]
mov eax, dword [ebx + 0x824]
jge 0x70233922
lea esi, [eax + ecx*4]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + ecx*4]
call sym._bit_reverse
mov dword [esi], eax
inc ecx
jmp 0x70233ac2
mov eax, dword [ebx + 4]
jmp 0x7023396d
cmp byte [ebp - 0xa24], 0
je 0x70233b0f
mov edi, dword [ebp - 0xa08]
mov eax, dword [ebp - 0xa10]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0xa00]
jmp 0x70233b1b
mov eax, dword [ebp - 0xa00]
mov edi, dword [ebp - 0xa08]
movzx eax, byte [eax + edi]
cmp byte [ebp - 0xa24], 0
mov byte [ebp - 0xa2c], al
je 0x70233b3a
cmp eax, 0xff
jne 0x70233b52
jmp 0x70233a6a
cmp eax, 0xff
je 0x70233bf9
cmp byte [ebp - 0xa2c], 0xa
jbe 0x70233bf9
mov edi, dword [ebp - 0xa08]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edi*4]
call sym._bit_reverse
mov edx, dword [ebx + 0x82c]
mov edi, eax
xor eax, eax
mov esi, dword [ebx + 0x824]
cmp edx, 1
jle 0x70233b9b
mov ecx, edx
sar ecx, 1
mov dword [ebp - 0xa1c], ecx
add ecx, eax
cmp edi, dword [esi + ecx*4]
jb 0x70233b93
sub edx, dword [ebp - 0xa1c]
mov eax, ecx
jmp 0x70233b6d
mov edx, dword [ebp - 0xa1c]
jmp 0x70233b73
cmp edi, dword [esi + eax*4]
lea edx, [eax*4]
je 0x70233bc3
mov dword [esp + 8], 0x4ce
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.c__sorted_codewords_x___code
jmp 0x7023381b
add edx, dword [ebx + 0x828]
cmp byte [ebp - 0xa24], 0
je 0x70233bf1
mov edi, dword [ebp - 0xa10]
mov esi, dword [ebp - 0xa08]
mov cl, byte [ebp - 0xa2c]
mov esi, dword [edi + esi*4]
mov dword [edx], esi
mov edx, dword [ebx + 8]
mov byte [edx + eax], cl
jmp 0x70233bf9
mov eax, dword [ebp - 0xa08]
mov dword [edx], eax
inc dword [ebp - 0xa08]
jmp 0x7023397d
xor eax, eax
mov word [ebx + eax*2 + 0x24], 0xffff
inc eax
cmp eax, 0x400
jne 0x70233c06
mov dl, byte [ebx + 0x17]
test dl, dl
je 0x70233c24
mov edi, dword [ebx + 0x82c]
jmp 0x70233c27
mov edi, dword [ebx + 4]
mov dword [ebp - 0xa00], edi
cmp edi, 0x7fff
jle 0x70233c3f
mov dword [ebp - 0xa00], 0x7fff
xor esi, esi
cmp dword [ebp - 0xa00], esi
jle 0x70233ca2
mov eax, dword [ebx + 8]
add eax, esi
mov dword [ebp - 0xa08], eax
cmp byte [eax], 0xa
jbe 0x70233c5c
inc esi
jmp 0x70233c41
test dl, dl
je 0x70233c7c
mov eax, dword [ebx + 0x824]
mov byte [ebp - 0xa10], dl
mov eax, dword [eax + esi*4]
call sym._bit_reverse
mov dl, byte [ebp - 0xa10]
jmp 0x70233c82
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
cmp eax, 0x3ff
ja 0x70233c59
mov edi, dword [ebp - 0xa08]
mov word [ebx + eax*2 + 0x24], si
movzx ecx, byte [edi]
mov edi, 1
shl edi, cl
add eax, edi
jmp 0x70233c82
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + 0x15], al
cmp al, 2
ja 0x702345fe
test al, al
je 0x702340a2
mov edx, 0x20
lea eax, [ebp - 0x600]
call sym._get_bits_1
call sym._float32_unpack
mov edx, 0x20
lea eax, [ebp - 0x600]
fstp dword [ebx + 0xc]
call sym._get_bits_1
call sym._float32_unpack
mov edx, 4
lea eax, [ebp - 0x600]
fstp dword [ebx + 0x10]
call sym._get_bits_1
mov edx, 1
inc eax
mov byte [ebx + 0x14], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov esi, dword [ebx + 4]
cmp byte [ebx + 0x15], 1
mov byte [ebx + 0x16], al
jne 0x70233e9b
mov dword [ebp - 0xa08], esi
mov eax, dword [ebx]
fild dword [ebp - 0xa08]
mov dword [ebp - 0xa00], eax
fstp qword [esp]
call sym._log
fstp dword [ebp - 0xa08]
fld dword [ebp - 0xa08]
fidiv dword [ebp - 0xa00]
fstp qword [esp]
call sym._exp
fstp qword [esp]
call sym._floor
fnstcw word [ebp - 0x9fa]
mov ax, word [ebp - 0x9fa]
or ah, 0xc
mov word [ebp - 0x9fc], ax
fldcw word [ebp - 0x9fc]
fistp dword [ebp - 0xa08]
fldcw word [ebp - 0x9fa]
fild dword [ebp - 0xa00]
mov edi, dword [ebp - 0xa08]
fst qword [esp + 8]
mov dword [ebp - 0xa00], edi
fstp qword [ebp - 0xa08]
fld1
fiadd dword [ebp - 0xa00]
fstp qword [esp]
call sym._pow
fstp qword [esp]
call sym._floor
fnstcw word [ebp - 0x9fa]
mov ax, word [ebp - 0x9fa]
or ah, 0xc
mov word [ebp - 0x9fc], ax
fldcw word [ebp - 0x9fc]
fistp dword [ebp - 0xa00]
fldcw word [ebp - 0x9fa]
mov eax, dword [ebp - 0xa00]
fld1
cmp esi, eax
fld qword [ebp - 0xa08]
jl 0x70233e00
inc edi
mov dword [ebp - 0xa00], edi
fild dword [ebp - 0xa00]
fxch st(1)
fst qword [esp + 8]
fstp qword [ebp - 0xa10]
fadd st(1), st(0)
fstp dword [ebp - 0xa08]
fstp qword [esp]
call sym._pow
mov dword [ebp - 0xa00], esi
fild dword [ebp - 0xa00]
fcompp
fnstsw ax
sahf
jae 0x702345fe
fld qword [ebp - 0xa10]
fstp qword [esp + 8]
fld dword [ebp - 0xa08]
fstp qword [esp]
call sym._pow
fstp qword [esp]
call sym._floor
fnstcw word [ebp - 0x9fa]
mov ax, word [ebp - 0x9fa]
or ah, 0xc
mov word [ebp - 0x9fc], ax
fldcw word [ebp - 0x9fc]
fistp dword [ebp - 0xa00]
fldcw word [ebp - 0x9fa]
mov eax, dword [ebp - 0xa00]
cmp esi, eax
jl 0x702345fe
mov dword [ebx + 0x18], edi
jmp 0x70233ea1
imul esi, dword [ebx]
mov dword [ebx + 0x18], esi
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x702345fe
add edx, edx
lea eax, [ebp - 0x600]
call sym._setup_temp_malloc
mov edi, eax
test eax, eax
je 0x702346ab
xor esi, esi
mov edx, dword [ebx + 0x18]
cmp esi, edx
jge 0x70233eec
movzx edx, byte [ebx + 0x14]
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp eax, 0xffffffff
jne 0x70233ee5
mov ecx, dword [ebx + 0x18]
jmp 0x70233f57
mov word [edi + esi*2], ax
inc esi
jmp 0x70233ec5
cmp byte [ebx + 0x15], 1
jne 0x7023402c
movzx eax, byte [ebx + 0x17]
mov dword [ebp - 0xa10], eax
test eax, eax
je 0x70233f14
mov edx, dword [ebx + 0x82c]
test edx, edx
je 0x70234090
jmp 0x70233f17
mov edx, dword [ebx + 4]
imul edx, dword [ebx]
shl edx, 2
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x1c], eax
cmp dword [ebx + 0x1c], 0
je 0x70234041
cmp dword [ebp - 0xa10], 0
je 0x70233f46
mov eax, dword [ebx + 0x82c]
jmp 0x70233f49
mov eax, dword [ebx + 4]
mov dword [ebp - 0xa24], eax
xor esi, esi
fldz
jmp 0x70233fa8
fstp st(0)
add ecx, ecx
mov edx, edi
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x702345fe
cmp dword [ebp - 0xa10], 0
mov dword [ebp - 0xa1c], esi
je 0x70233f89
mov eax, dword [ebx + 0x828]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0xa1c], eax
mov dword [ebp - 0xa00], 0
mov dword [ebp - 0xa08], 1
mov ecx, dword [ebx]
cmp ecx, dword [ebp - 0xa00]
jg 0x70233fb4
inc esi
cmp esi, dword [ebp - 0xa24]
jl 0x70233f6b
fstp st(0)
jmp 0x70234026
xor edx, edx
mov eax, dword [ebp - 0xa1c]
div dword [ebp - 0xa08]
xor edx, edx
div dword [ebx + 0x18]
imul ecx, esi
movzx eax, word [edi + edx*2]
mov dword [ebp - 0xa2c], eax
add ecx, dword [ebp - 0xa00]
fild dword [ebp - 0xa2c]
fmul dword [ebx + 0x10]
mov eax, dword [ebx + 0x1c]
fadd dword [ebx + 0xc]
fadd st(1)
fst dword [eax + ecx*4]
cmp byte [ebx + 0x16], 0
je 0x70233ff8
fstp st(1)
jmp 0x70233ffa
fstp st(0)
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebx]
jge 0x70233f9d
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp - 0xa08]
mul ecx
jo 0x70233f55
mov dword [ebp - 0xa08], eax
jmp 0x70233f9d
mov byte [ebx + 0x15], 2
jmp 0x70234090
shl edx, 2
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x1c], eax
test eax, eax
jne 0x70234058
mov ecx, dword [ebx + 0x18]
mov edx, edi
add ecx, ecx
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x702346ab
xor edx, edx
fldz
cmp edx, dword [ebx + 0x18]
jge 0x7023408e
movzx eax, word [edi + edx*2]
mov dword [ebp - 0xa00], eax
mov eax, dword [ebx + 0x1c]
fild dword [ebp - 0xa00]
fmul dword [ebx + 0x10]
fadd dword [ebx + 0xc]
fadd st(1)
fst dword [eax + edx*4]
cmp byte [ebx + 0x16], 0
je 0x70234089
fstp st(1)
jmp 0x7023408b
fstp st(0)
inc edx
jmp 0x7023405c
fstp st(0)
mov ecx, dword [ebx + 0x18]
mov edx, edi
add ecx, ecx
lea eax, [ebp - 0x600]
call sym._setup_temp_free
inc dword [ebp - 0xa18]
jmp 0x702333db
mov edx, 6
lea eax, [ebp - 0x600]
call sym._get_bits_1
xor ebx, ebx
lea esi, [eax + 1]
mov eax, esi
movzx eax, al
cmp ebx, eax
jge 0x702340e6
mov edx, 0x10
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x702345fe
inc ebx
jmp 0x702340c2
mov edx, 6
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
imul edx, eax, 0x63c
mov dword [ebp - 0x580], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebp - 0x4fc], eax
test eax, eax
je 0x702346ab
mov dword [ebp - 0xa08], 0
mov dword [ebp - 0xa00], 0
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x580]
jge 0x70234509
mov edx, 0x10
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edi, dword [ebp - 0xa00]
cmp ax, 1
mov word [ebp + edi*2 - 0x57c], ax
ja 0x702345fe
imul ebx, edi, 0x63c
add ebx, dword [ebp - 0x4fc]
test ax, ax
jne 0x70234230
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 0x10
mov byte [ebx], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 0x10
mov word [ebx + 2], ax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 6
mov word [ebx + 4], ax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov byte [ebx + 6], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 4
mov byte [ebx + 7], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
mov byte [ebx + 8], al
movzx eax, byte [ebx + 8]
cmp dword [ebp - 0xa14], eax
jge 0x70234221
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edi, dword [ebp - 0xa14]
inc dword [ebp - 0xa14]
mov byte [ebx + edi + 9], al
jmp 0x702341f3
mov dword [ebp - 0x59c], 4
jmp 0x70234d1f
mov edx, 5
lea eax, [ebp - 0x600]
call sym._get_bits_1
xor esi, esi
mov byte [ebx], al
mov dword [ebp - 0xa10], 0xffffffff
movzx eax, byte [ebx]
cmp esi, eax
jge 0x7023427d
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + esi + 1], al
movzx eax, al
cmp dword [ebp - 0xa10], eax
jge 0x7023427a
mov dword [ebp - 0xa10], eax
inc esi
jmp 0x7023424e
xor esi, esi
cmp dword [ebp - 0xa10], esi
jl 0x7023432d
mov edx, 3
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 2
inc eax
mov byte [ebx + esi + 0x21], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + esi + 0x31], al
test al, al
jne 0x702342c9
mov eax, esi
xor edi, edi
shl eax, 4
add eax, ebx
mov dword [ebp - 0xa18], eax
jmp 0x70234317
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + esi + 0x41], al
movzx eax, al
cmp eax, dword [ebp - 0x588]
jl 0x702342b8
jmp 0x702345fe
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov ecx, dword [ebp - 0xa18]
dec eax
mov word [ecx + edi*2 + 0x52], ax
cwde
cmp eax, dword [ebp - 0x588]
jge 0x702345fe
inc edi
movzx ecx, byte [ebx + esi + 0x31]
mov eax, 1
shl eax, cl
cmp edi, eax
jl 0x702342ed
inc esi
jmp 0x7023427f
mov edx, 2
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 4
inc eax
xor esi, esi
mov byte [ebx + 0x634], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov word [ebx + 0x152], 0
mov ecx, eax
mov byte [ebx + 0x635], al
mov eax, 1
mov dword [ebx + 0x638], 2
shl eax, cl
mov word [ebx + 0x154], ax
movzx eax, byte [ebx]
cmp esi, eax
jge 0x702343d1
movzx ecx, byte [ebx + esi + 1]
xor edi, edi
movzx eax, byte [ebx + ecx + 0x21]
cmp edi, eax
jge 0x702343ce
movzx edx, byte [ebx + 0x635]
lea eax, [ebp - 0x600]
mov dword [ebp - 0xa10], ecx
call sym._get_bits_1
inc edi
mov edx, eax
mov eax, dword [ebx + 0x638]
mov ecx, dword [ebp - 0xa10]
mov word [ebx + eax*2 + 0x152], dx
inc eax
mov dword [ebx + 0x638], eax
jmp 0x7023438d
inc esi
jmp 0x7023437f
mov edx, dword [ebx + 0x638]
xor eax, eax
cmp eax, edx
lea esi, [ebp - 0x9e8]
jge 0x702343fa
mov cx, word [ebx + eax*2 + 0x152]
mov word [esi + eax*4], cx
mov word [ebp + eax*4 - 0x9e6], ax
inc eax
jmp 0x702343d9
mov dword [esp + 4], edx
mov dword [esp + 0xc], sym._point_compare
mov dword [esp + 8], 4
mov dword [esp], esi
call sym._qsort
mov edi, dword [ebx + 0x638]
xor edx, edx
lea ecx, [edi - 1]
mov eax, esi
cmp edx, ecx
jge 0x70234436
mov esi, dword [eax + edx*4]
inc edx
cmp si, word [eax + edx*4]
jne 0x70234423
jmp 0x702345fe
xor eax, eax
cmp edi, eax
jle 0x7023444e
mov dx, word [ebp + eax*4 - 0x9e6]
mov byte [ebx + eax + 0x346], dl
inc eax
jmp 0x70234438
mov eax, 2
cmp edi, eax
jle 0x702344f0
mov dword [ebp - 0xa24], 0
mov dword [ebp - 0xa1c], 0
xor edx, edx
mov dword [ebp - 0xa18], 0x10000
mov dword [ebp - 0xa10], 0xffffffff
movzx ecx, word [ebx + edx*2 + 0x152]
cmp ecx, dword [ebp - 0xa10]
mov esi, ecx
jle 0x702344ad
cmp cx, word [ebx + eax*2 + 0x152]
jae 0x702344ad
mov dword [ebp - 0xa1c], edx
mov dword [ebp - 0xa10], ecx
cmp ecx, dword [ebp - 0xa18]
jge 0x702344cb
cmp si, word [ebx + eax*2 + 0x152]
jbe 0x702344cb
mov dword [ebp - 0xa24], edx
mov dword [ebp - 0xa18], ecx
inc edx
cmp eax, edx
jne 0x70234485
mov cl, byte [ebp - 0xa1c]
mov byte [ebx + eax*2 + 0x440], cl
mov cl, byte [ebp - 0xa24]
mov byte [ebx + eax*2 + 0x441], cl
inc eax
jmp 0x70234453
cmp dword [ebp - 0xa08], edi
jge 0x702344fe
mov dword [ebp - 0xa08], edi
inc dword [ebp - 0xa00]
jmp 0x70234130
mov edx, 6
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
imul edx, eax, 0x18
mov dword [ebp - 0x4f8], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov edx, eax
mov dword [ebp - 0x474], eax
test eax, eax
je 0x702346ab
imul ecx, dword [ebp - 0x4f8], 0x18
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0xa00], 0
jmp 0x702345c2
movzx eax, byte [esi + 0xd]
imul eax, eax, 0x830
add eax, dword [ebp - 0x584]
mov edx, dword [eax + 4]
lea eax, [ebp - 0x600]
shl edx, 2
call sym._setup_malloc
mov edx, eax
mov dword [esi + 0x10], eax
test eax, eax
je 0x702346ab
movzx eax, byte [esi + 0xd]
imul eax, eax, 0x830
add eax, dword [ebp - 0x584]
mov edi, edx
mov ecx, dword [eax + 4]
xor eax, eax
shl ecx, 2
rep stosb byte es:[edi], al
xor edi, edi
movzx eax, byte [esi + 0xd]
imul eax, eax, 0x830
add eax, dword [ebp - 0x584]
cmp edi, dword [eax + 4]
jl 0x7023481a
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x4f8]
jge 0x7023460d
mov edx, 0x10
lea eax, [ebp - 0x600]
mov esi, dword [ebp - 0x474]
call sym._get_bits_1
cmp ax, 2
mov edi, dword [ebp - 0xa00]
mov word [ebp + edi*2 - 0x4f4], ax
jbe 0x702346ba
mov dword [ebp - 0x59c], 0x14
jmp 0x70234d1f
mov edx, 6
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
imul edx, eax, 0x28
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov edx, eax
mov dword [ebp - 0x46c], eax
test eax, eax
je 0x702346ab
imul ecx, dword [ebp - 0x470], 0x28
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0xa00], 0
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x470]
jge 0x70234a6b
mov edx, 0x10
lea eax, [ebp - 0x600]
mov ebx, dword [ebp - 0x46c]
call sym._get_bits_1
test eax, eax
jne 0x702345fe
imul eax, dword [ebp - 0xa00], 0x28
imul edx, dword [ebp - 0x5fc], 3
add ebx, eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 4], eax
test eax, eax
jne 0x702348a5
mov dword [ebp - 0x59c], 3
jmp 0x70234d1f
imul eax, dword [ebp - 0xa00], 0x18
mov edx, 0x18
add esi, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 0x18
mov dword [esi], eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp eax, dword [esi]
mov dword [esi + 4], eax
jb 0x702345fe
mov edx, 0x18
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 6
inc eax
mov dword [esi + 8], eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
inc eax
mov byte [esi + 0xc], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [esi + 0xd], al
movzx eax, al
cmp eax, dword [ebp - 0x588]
jge 0x702345fe
xor ebx, ebx
movzx edx, byte [esi + 0xc]
cmp ebx, edx
jge 0x7023478b
mov edx, 3
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 1
mov edi, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, eax
xor eax, eax
test edx, edx
je 0x7023477e
mov edx, 5
lea eax, [ebp - 0x600]
call sym._get_bits_1
lea eax, [edi + eax*8]
mov byte [ebp + ebx - 0x9e8], al
inc ebx
jmp 0x7023473c
shl edx, 4
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [esi + 0x14], eax
test eax, eax
je 0x702346ab
xor edi, edi
movzx eax, byte [esi + 0xc]
cmp edi, eax
jge 0x70234557
mov ecx, edi
xor ebx, ebx
shl ecx, 4
movzx eax, byte [ebp + edi - 0x9e8]
bt eax, ebx
jae 0x70234805
mov edx, 8
lea eax, [ebp - 0x600]
mov dword [ebp - 0xa10], ecx
call sym._get_bits_1
lea ecx, [ebx + ebx]
mov edx, dword [esi + 0x14]
add edx, ecx
mov ecx, dword [ebp - 0xa10]
mov word [edx + ecx], ax
lea eax, [ebx + ebx]
add eax, dword [esi + 0x14]
movsx eax, word [eax + ecx]
cmp eax, dword [ebp - 0x588]
jl 0x70234811
jmp 0x702345fe
lea eax, [ebx + ebx]
add eax, dword [esi + 0x14]
mov word [eax + ecx], 0xffff
inc ebx
cmp ebx, 8
jne 0x702347b9
inc edi
jmp 0x702347a6
mov ebx, dword [eax]
lea eax, [edi*4]
mov dword [ebp - 0xa18], eax
add eax, dword [esi + 0x10]
mov edx, ebx
mov dword [ebp - 0xa10], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov ecx, dword [ebp - 0xa10]
mov dword [ecx], eax
mov eax, dword [esi + 0x10]
cmp dword [eax + edi*4], 0
je 0x702346ab
lea ecx, [ebx - 1]
mov dword [ebp - 0xa10], edi
test ecx, ecx
js 0x7023489f
mov eax, dword [esi + 0x10]
mov ebx, dword [ebp - 0xa18]
mov ebx, dword [eax + ebx]
movzx eax, byte [esi + 0xc]
mov edx, eax
mov eax, dword [ebp - 0xa10]
mov dword [ebp - 0xa1c], edx
cdq
idiv dword [ebp - 0xa1c]
mov byte [ebx + ecx], dl
mov eax, dword [ebp - 0xa10]
movzx ebx, byte [esi + 0xc]
cdq
idiv ebx
mov dword [ebp - 0xa10], eax
dec ecx
jmp 0x7023485d
inc edi
jmp 0x702345a3
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x702348cf
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
mov byte [ebx + 8], al
jmp 0x702348d3
mov byte [ebx + 8], 1
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x7023498a
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
mov word [ebx], ax
movzx eax, ax
cmp eax, dword [ebp - 0x5fc]
jg 0x702345fe
xor esi, esi
movzx eax, word [ebx]
cmp esi, eax
jge 0x7023498f
mov eax, dword [ebp - 0x5fc]
lea edi, [esi + esi*2]
dec eax
call sym._ilog
mov edx, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, dword [ebx + 4]
mov byte [edx + edi], al
mov eax, dword [ebp - 0x5fc]
dec eax
call sym._ilog
mov edx, eax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, dword [ebx + 4]
mov byte [edx + edi + 1], al
mov eax, dword [ebx + 4]
mov ecx, dword [ebp - 0x5fc]
add eax, edi
movzx edi, byte [eax]
mov edx, edi
cmp edi, ecx
jge 0x702345fe
movzx edi, byte [eax + 1]
mov eax, edi
cmp ecx, edi
jle 0x702345fe
cmp dl, al
je 0x702345fe
inc esi
jmp 0x70234910
mov word [ebx], 0
mov edx, 2
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x702345fe
xor esi, esi
cmp byte [ebx + 8], 1
jbe 0x702349ea
cmp esi, dword [ebp - 0x5fc]
jge 0x702349e6
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, dword [ebx + 4]
mov ecx, eax
lea eax, [esi + esi*2]
mov byte [edx + eax + 2], cl
mov edx, dword [ebx + 4]
mov cl, byte [ebx + 8]
cmp byte [edx + eax + 2], cl
jae 0x702345fe
inc esi
jmp 0x702349af
xor esi, esi
jmp 0x70234a58
cmp eax, dword [ebp - 0x5fc]
jge 0x702349e6
lea edx, [eax + eax*2]
inc eax
add edx, dword [ebx + 4]
mov byte [edx + 2], 0
jmp 0x702349ea
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov byte [ebx + esi + 9], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
movzx edx, byte [ebx + esi + 9]
mov byte [ebx + esi + 0x18], al
cmp edx, dword [ebp - 0x580]
jge 0x702345fe
movzx eax, al
cmp eax, dword [ebp - 0x4f8]
jge 0x702345fe
inc esi
movzx eax, byte [ebx + 8]
cmp esi, eax
jl 0x702349ff
inc dword [ebp - 0xa00]
jmp 0x70234655
mov edx, 6
lea eax, [ebp - 0x600]
call sym._get_bits_1
lea ebx, [ebp - 0x600]
inc eax
xor esi, esi
mov dword [ebp - 0x468], eax
cmp esi, dword [ebp - 0x468]
jge 0x70234b24
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 0x10
mov byte [ebx + 0x19c], al
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 0x10
mov word [ebx + 0x19e], ax
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov edx, 8
mov word [ebx + 0x1a0], ax
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp word [ebx + 0x19e], 0
mov byte [ebx + 0x19d], al
jne 0x702345fe
cmp word [ebx + 0x1a0], 0
jne 0x702345fe
movzx eax, al
add ebx, 6
cmp eax, dword [ebp - 0x470]
jge 0x702345fe
inc esi
jmp 0x70234a8a
lea eax, [ebp - 0x600]
call sym._get8_packet_raw
inc eax
jne 0x70234b24
mov esi, dword [ebp - 0xa08]
mov dword [ebp - 0x220], 0
add esi, esi
xor ebx, ebx
cmp ebx, dword [ebp - 0x5fc]
jge 0x70234be5
mov eax, dword [ebp - 0x58c]
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebp + ebx*4 - 0x2e0], eax
mov eax, dword [ebp - 0x58c]
lea edx, [eax*4]
lea eax, [ebp - 0x600]
shr edx, 1
call sym._setup_malloc
mov edx, esi
mov dword [ebp + ebx*4 - 0x260], eax
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov edx, dword [ebp + ebx*4 - 0x2e0]
mov dword [ebp + ebx*4 - 0x21c], eax
test edx, edx
je 0x702346ab
cmp dword [ebp + ebx*4 - 0x260], 0
je 0x702346ab
test eax, eax
sete al
je 0x702346ab
mov edi, dword [ebp - 0x58c]
inc ebx
lea ecx, [edi*4]
mov edi, edx
rep stosb byte es:[edi], al
jmp 0x70234b46
xor edx, edx
mov ecx, dword [ebp - 0x590]
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x70234d1f
mov ecx, dword [ebp - 0x58c]
mov edx, 1
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x70234d1f
mov eax, dword [ebp - 0x590]
mov ecx, dword [ebp - 0x58c]
mov dword [ebp - 0x598], eax
mov eax, dword [ebp - 0x4f8]
mov dword [ebp - 0xa00], eax
mov eax, ecx
mov ebx, 2
mov dword [ebp - 0x594], ecx
cdq
idiv ebx
mov esi, eax
mov ebx, dword [ebp - 0x474]
xor edi, edi
cmp edi, dword [ebp - 0xa00]
jge 0x70234c8a
mov eax, dword [ebx + 4]
cmp eax, esi
jbe 0x70234c67
mov eax, esi
mov edx, dword [ebx]
cmp edx, esi
jbe 0x70234c6f
mov edx, esi
sub eax, edx
xor edx, edx
div dword [ebx + 8]
cmp dword [ebp - 0xa14], eax
jge 0x70234c84
mov dword [ebp - 0xa14], eax
inc edi
add ebx, 0x18
jmp 0x70234c56
shl ecx, 2
mov eax, dword [ebp - 0xa14]
shr ecx, 1
inc eax
imul eax, dword [ebp - 0x5fc]
shl eax, 2
cmp ecx, eax
ja 0x70234cac
mov dword [ebp - 0x5f4], eax
jmp 0x70234cb2
mov dword [ebp - 0x5f4], ecx
cmp dword [ebp - 0x5b0], 0
je 0x70234d00
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5ac]
je 0x70234ce5
mov dword [esp + 8], 0x1064
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.f__temp_offset__f__alloc.alloc_buffer_length_in_bytes
jmp 0x7023381b
mov ecx, dword [ebp - 0x5f4]
mov edx, dword [ebp - 0x5a8]
lea edx, [ecx + edx + 0x5e8]
cmp edx, eax
ja 0x702346ab
cmp dword [ebp - 0x9c], 0xffffffff
lea esi, [ebp - 0x600]
jne 0x70234d4a
mov dword [esp], esi
call sym._stb_vorbis_get_file_offset
mov dword [ebp - 0xa20], eax
jmp 0x70234d4a
cmp dword [ebp - 0x5a0], 0
mov eax, 1
jne 0x70234d33
mov eax, dword [ebp - 0x59c]
mov edi, dword [ebp + 0x14]
xor ebx, ebx
mov dword [edi], eax
lea eax, [ebp - 0x600]
call sym._vorbis_deinit
jmp 0x70234e50
mov eax, dword [ebp - 0xa20]
mov edx, 0x5e8
mov dword [ebp - 0x5cc], eax
mov eax, esi
call sym._setup_malloc
mov ebx, eax
test eax, eax
je 0x70234d8a
mov ecx, 0x17a
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x20]
mov edx, dword [ebp + 0x10]
sub eax, dword [ebp + 8]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
jmp 0x70234e50
mov eax, esi
call sym._vorbis_deinit
jmp 0x70234e50
lea eax, [ecx + 1]
mov dword [ebp + edi*4 - 0x9e8], 0
mov dword [ebp - 0xa2c], eax
mov eax, dword [ebp - 0xa08]
call sym._bit_reverse
mov edx, dword [ebx + 0x20]
cmp byte [ebx + 0x17], 0
jne 0x70234dc3
mov dword [edx + esi*4], eax
jmp 0x70234ddb
mov dword [edx + ecx*4], eax
mov dl, byte [ebp - 0xa24]
mov eax, dword [ebx + 8]
mov byte [eax + ecx], dl
mov eax, dword [ebp - 0xa10]
mov dword [eax + ecx*4], esi
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + esi]
cmp edi, eax
je 0x702338e8
cmp eax, edi
jle 0x702338e8
cmp dword [ebp + eax*4 - 0x9e8], 0
je 0x70234e1b
mov dword [esp + 8], 0x46d
mov dword [esp + 4], 0x702bb448
mov dword [esp], str.available_y___0
jmp 0x7023381b
mov ecx, 0x20
mov edx, 1
sub ecx, eax
shl edx, cl
add edx, dword [ebp - 0xa08]
mov dword [ebp + eax*4 - 0x9e8], edx
dec eax
jmp 0x70234ded
cmp byte [ebx + 0x17], 0
je 0x702345fe
xor ecx, ecx
mov edx, dword [ebp - 0xa10]
jmp 0x70233f5b
add esp, 0xa3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret