Function at 0x62a9dd48
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 0x62a9dd92
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 0x62a9fc37
mov al, byte [ebp - 0xa1]
test al, 2
jne 0x62a9dde1
mov dword [ebp - 0x59c], 0x22
jmp 0x62a9fc37
test al, 5
jne 0x62a9ddd2
cmp dword [ebp - 0x1a4], 1
jne 0x62a9ddd2
mov al, byte [ebp - 0x1a0]
cmp al, 0x1e
je 0x62a9de75
cmp al, 0x40
jne 0x62a9ddd2
mov ecx, 6
lea edx, [ebp - 0x9ee]
mov eax, ebx
call sym._getn
test eax, eax
je 0x62a9ddd2
cmp byte [ebp - 0x9ee], 0x66
jne 0x62a9ddd2
cmp byte [ebp - 0x9ed], 0x69
jne 0x62a9ddd2
cmp byte [ebp - 0x9ec], 0x73
jne 0x62a9ddd2
cmp byte [ebp - 0x9eb], 0x68
jne 0x62a9ddd2
cmp byte [ebp - 0x9ea], 0x65
jne 0x62a9ddd2
cmp byte [ebp - 0x9e9], 0x61
jne 0x62a9ddd2
mov eax, ebx
call sym._get8
cmp al, 0x64
jne 0x62a9ddd2
mov eax, ebx
call sym._get8
test al, al
jne 0x62a9ddd2
mov dword [ebp - 0x59c], 0x26
jmp 0x62a9fc37
mov eax, ebx
call sym._get8
dec al
jne 0x62a9ddd2
lea edx, [ebp - 0x9ee]
mov ecx, 6
mov eax, ebx
call sym._getn
test eax, eax
jne 0x62a9dea9
mov dword [ebp - 0x59c], 0xa
jmp 0x62a9fc37
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b14284
mov dword [esp], edx
call sym._memcmp
mov esi, eax
test eax, eax
jne 0x62a9ddd2
mov eax, ebx
call sym._get32
test eax, eax
jne 0x62a9ddd2
mov eax, ebx
call sym._get8
movzx eax, al
mov dword [ebp - 0x5fc], eax
test eax, eax
je 0x62a9ddd2
cmp eax, 0x10
jle 0x62a9df06
mov dword [ebp - 0x59c], 5
jmp 0x62a9fc37
lea eax, [ebp - 0x600]
call sym._get32
mov dword [ebp - 0x600], eax
test eax, eax
je 0x62a9ddd2
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 0x62a9f516
lea eax, [ebx - 6]
cmp eax, 7
ja 0x62a9f516
cmp edi, ebx
jg 0x62a9f516
lea eax, [ebp - 0x600]
call sym._get8
test al, 1
je 0x62a9ddd2
lea eax, [ebp - 0x600]
call sym._start_page
test eax, eax
je 0x62a9fc37
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x62a9fc37
lea eax, [ebp - 0x600]
call sym._next_segment
test eax, eax
je 0x62a9fc37
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 3
jne 0x62a9f516
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + esi - 0x9ee], al
inc esi
cmp esi, 6
jne 0x62a9dffe
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b14284
mov dword [esp], edx
call sym._memcmp
test eax, eax
jne 0x62a9f516
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 0x62a9f5c3
cmp ebx, esi
jle 0x62a9e082
lea eax, [ebp - 0x600]
call sym._get8_packet
mov edx, dword [ebp - 0x5ec]
mov byte [edx + esi], al
inc esi
jmp 0x62a9e067
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 0x62a9e0ca
lea eax, [ebp - 0x600]
call sym._get8_packet
and eax, 1
mov dword [ebp - 0xa28], eax
je 0x62a9f516
jmp 0x62a9e17b
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
xor ebx, ebx
mov dword [ebp - 0x5e4], eax
test eax, eax
je 0x62a9f5c3
cmp ebx, dword [ebp - 0x5e8]
jge 0x62a9e0ab
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 0x62a9f5c3
xor edx, edx
cmp esi, edx
jle 0x62a9e168
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 0x62a9e13e
mov eax, dword [ebp - 0x5e4]
inc ebx
mov eax, dword [eax + edi]
mov byte [eax + esi], 0
jmp 0x62a9e0ec
movzx eax, byte [ebp - 0xa0]
add eax, dword [ebp - 0x5e0]
cmp eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5e0], eax
jb 0x62a9e1a0
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 0x62a9e1d4
mov dword [ebp - 0x5a0], 1
mov byte [ebp - 0xa0], 0
test ebx, ebx
jne 0x62a9e1a7
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x62a9fc37
lea eax, [ebp - 0x600]
call sym._is_whole_packet_present
test eax, eax
jne 0x62a9e213
cmp dword [ebp - 0x59c], 0x15
jne 0x62a9fc37
jmp 0x62a9f516
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 0x62a9e224
mov dword [edx*4 + 0x62b13de0], eax
inc edx
cmp edx, 0x100
jne 0x62a9e215
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 5
jne 0x62a9f516
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + ebx - 0x9ee], al
inc ebx
cmp ebx, 6
jne 0x62a9e25d
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b14284
mov dword [esp], edx
call sym._memcmp
mov dword [ebp - 0xa14], eax
test eax, eax
jne 0x62a9f516
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 0x62a9f5c3
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 0x62a9efc5
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 0x62a9f516
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x43
jne 0x62a9f516
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x56
jne 0x62a9f516
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 0x62a9e405
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 0x62a9e418
test edx, edx
jne 0x62a9f516
test al, al
lea eax, [ebp - 0x600]
je 0x62a9e42f
call sym._setup_temp_malloc
mov dword [ebp - 0xa00], eax
jmp 0x62a9e43d
call sym._setup_malloc
mov dword [ebp - 0xa00], eax
mov dword [ebx + 8], eax
cmp dword [ebp - 0xa00], 0
je 0x62a9f5c3
xor esi, esi
cmp dword [ebp - 0xa08], 0
je 0x62a9e4fe
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 0x62a9e4c5
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 0x62a9f516
lea esi, [edi + eax]
cmp esi, dword [ebx + 4]
jg 0x62a9f516
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 0x62a9e472
mov dword [ebp - 0xa08], 0
jmp 0x62a9e528
test al, al
jne 0x62a9e508
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 0x62a9f516
inc esi
cmp esi, dword [ebx + 4]
mov al, byte [ebx + 0x17]
jl 0x62a9e4d1
jmp 0x62a9e528
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62a9e4d5
mov eax, dword [ebp - 0xa00]
mov byte [eax + esi], 0xff
jmp 0x62a9e4fd
cmp byte [ebx + 0x17], 0
je 0x62a9e593
mov eax, dword [ebx + 4]
mov edx, eax
sar edx, 2
cmp edx, dword [ebp - 0xa08]
jg 0x62a9e593
cmp eax, dword [ebp - 0x5f0]
jle 0x62a9e54c
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 0x62a9f5c3
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 0x62a9e5ce
mov esi, dword [ebx + 4]
mov dword [ebp - 0xa08], 0
xor eax, eax
cmp eax, esi
jge 0x62a9e5ce
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 0x62a9e5a9
mov eax, dword [ebp - 0xa08]
test cl, cl
mov dword [ebx + 0x82c], eax
jne 0x62a9e60d
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 0x62a9f5c3
mov dword [ebp - 0xa10], 0
jmp 0x62a9e69f
cmp dword [ebp - 0xa08], 0
mov dword [ebp - 0xa10], 0
je 0x62a9e685
mov edx, dword [ebp - 0xa08]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 8], eax
test eax, eax
je 0x62a9f5c3
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 0x62a9f5c3
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 0x62a9f5c3
mov edx, dword [ebx + 0x82c]
mov eax, dword [ebx + 4]
lea eax, [eax + edx*8]
cmp eax, dword [ebp - 0x5f0]
jbe 0x62a9e69f
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 0x62a9e6d0
mov edi, dword [ebp - 0xa00]
cmp byte [edi + eax], 0xff
jne 0x62a9e707
inc eax
jmp 0x62a9e6b9
jne 0x62a9e707
cmp dword [ebx + 0x82c], 0
jne 0x62a9e6ee
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x62a9e8b0
jmp 0x62a9e913
mov dword [esp + 8], 0x44f
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.c__sorted_entries__0
jmp 0x62a9e733
mov edi, dword [ebp - 0xa00]
add edi, eax
mov dword [ebp - 0xa08], edi
mov dl, byte [edi]
cmp dl, 0x1f
jbe 0x62a9e738
mov dword [esp + 8], 0x450
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.len_k____32
call sym.__assert
cmp byte [ebx + 0x17], 0
mov ecx, dword [ebx + 0x20]
jne 0x62a9e74a
mov dword [ecx + eax*4], 0
jmp 0x62a9e75d
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 0x62a9e78a
mov ecx, 0x20
mov esi, edi
sub ecx, edx
shl esi, cl
mov dword [ebp + edx*4 - 0x9e8], esi
inc edx
jmp 0x62a9e768
lea esi, [eax + 1]
mov ecx, dword [ebp - 0xa28]
cmp dword [ebp - 0xa1c], esi
jle 0x62a9e6db
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + esi]
mov byte [ebp - 0xa24], al
cmp eax, 0xff
je 0x62a9e7fa
cmp eax, 0x1f
jle 0x62a9e7ef
mov dword [esp + 8], 0x45e
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.z___32
jmp 0x62a9e733
lea eax, [eax - 1]
mov edx, dword [ebp + eax*4 - 0x9e4]
mov dword [ebp - 0xa08], edx
test edx, edx
jne 0x62a9fcae
mov edi, eax
test eax, eax
jne 0x62a9e7d7
jmp 0x62a9fd51
mov dword [ebp - 0xa2c], ecx
inc esi
mov ecx, dword [ebp - 0xa2c]
jmp 0x62a9e793
mov edi, dword [ebp - 0xa00]
cmp byte [ebx + 0x17], 0
mov dl, byte [edi + ecx]
jne 0x62a9e97e
sub edx, 0xb
cmp dl, 0xf3
jbe 0x62a9e99e
inc ecx
cmp ecx, dword [ebx + 4]
jl 0x62a9e809
cmp eax, dword [ebx + 0x82c]
jne 0x62a9e9be
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 0x62a9e9ff
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 0x62a9ea07
cmp byte [ebx + 0x17], 0
je 0x62a9eb1c
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 0x62a9eb1c
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x824], eax
test eax, eax
je 0x62a9f5c3
mov eax, dword [ebx + 0x82c]
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
test eax, eax
jne 0x62a9e95e
mov dword [ebx + 0x828], 0
jmp 0x62a9f5c3
lea edx, [eax + 4]
xor ecx, ecx
mov dword [ebx + 0x828], edx
mov dword [eax], 0xffffffff
cmp byte [ebx + 0x17], 0
jne 0x62a9e9da
xor eax, eax
xor ecx, ecx
jmp 0x62a9e829
inc dl
jne 0x62a9e99e
mov dword [esp + 8], 0x49c
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.len___NO_CODE
jmp 0x62a9e733
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 0x62a9e828
mov dword [esp + 8], 0x4b0
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.k__c__sorted_entries
jmp 0x62a9e733
cmp ecx, dword [ebx + 0x82c]
mov eax, dword [ebx + 0x824]
jge 0x62a9e83a
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 0x62a9e9da
mov eax, dword [ebx + 4]
jmp 0x62a9e885
cmp byte [ebp - 0xa24], 0
je 0x62a9ea27
mov edi, dword [ebp - 0xa08]
mov eax, dword [ebp - 0xa10]
mov eax, dword [eax + edi*4]
mov edi, dword [ebp - 0xa00]
jmp 0x62a9ea33
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 0x62a9ea52
cmp eax, 0xff
jne 0x62a9ea6a
jmp 0x62a9e982
cmp eax, 0xff
je 0x62a9eb11
cmp byte [ebp - 0xa2c], 0xa
jbe 0x62a9eb11
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 0x62a9eab3
mov ecx, edx
sar ecx, 1
mov dword [ebp - 0xa1c], ecx
add ecx, eax
cmp edi, dword [esi + ecx*4]
jb 0x62a9eaab
sub edx, dword [ebp - 0xa1c]
mov eax, ecx
jmp 0x62a9ea85
mov edx, dword [ebp - 0xa1c]
jmp 0x62a9ea8b
cmp edi, dword [esi + eax*4]
lea edx, [eax*4]
je 0x62a9eadb
mov dword [esp + 8], 0x4ce
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.c__sorted_codewords_x___code
jmp 0x62a9e733
add edx, dword [ebx + 0x828]
cmp byte [ebp - 0xa24], 0
je 0x62a9eb09
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 0x62a9eb11
mov eax, dword [ebp - 0xa08]
mov dword [edx], eax
inc dword [ebp - 0xa08]
jmp 0x62a9e895
xor eax, eax
mov word [ebx + eax*2 + 0x24], 0xffff
inc eax
cmp eax, 0x400
jne 0x62a9eb1e
mov dl, byte [ebx + 0x17]
test dl, dl
je 0x62a9eb3c
mov edi, dword [ebx + 0x82c]
jmp 0x62a9eb3f
mov edi, dword [ebx + 4]
mov dword [ebp - 0xa00], edi
cmp edi, 0x7fff
jle 0x62a9eb57
mov dword [ebp - 0xa00], 0x7fff
xor esi, esi
cmp dword [ebp - 0xa00], esi
jle 0x62a9ebba
mov eax, dword [ebx + 8]
add eax, esi
mov dword [ebp - 0xa08], eax
cmp byte [eax], 0xa
jbe 0x62a9eb74
inc esi
jmp 0x62a9eb59
test dl, dl
je 0x62a9eb94
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 0x62a9eb9a
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
cmp eax, 0x3ff
ja 0x62a9eb71
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 0x62a9eb9a
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + 0x15], al
cmp al, 2
ja 0x62a9f516
test al, al
je 0x62a9efba
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 0x62a9edb3
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 0x62a9ed18
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 0x62a9f516
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 0x62a9f516
mov dword [ebx + 0x18], edi
jmp 0x62a9edb9
imul esi, dword [ebx]
mov dword [ebx + 0x18], esi
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x62a9f516
add edx, edx
lea eax, [ebp - 0x600]
call sym._setup_temp_malloc
mov edi, eax
test eax, eax
je 0x62a9f5c3
xor esi, esi
mov edx, dword [ebx + 0x18]
cmp esi, edx
jge 0x62a9ee04
movzx edx, byte [ebx + 0x14]
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp eax, 0xffffffff
jne 0x62a9edfd
mov ecx, dword [ebx + 0x18]
jmp 0x62a9ee6f
mov word [edi + esi*2], ax
inc esi
jmp 0x62a9eddd
cmp byte [ebx + 0x15], 1
jne 0x62a9ef44
movzx eax, byte [ebx + 0x17]
mov dword [ebp - 0xa10], eax
test eax, eax
je 0x62a9ee2c
mov edx, dword [ebx + 0x82c]
test edx, edx
je 0x62a9efa8
jmp 0x62a9ee2f
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 0x62a9ef59
cmp dword [ebp - 0xa10], 0
je 0x62a9ee5e
mov eax, dword [ebx + 0x82c]
jmp 0x62a9ee61
mov eax, dword [ebx + 4]
mov dword [ebp - 0xa24], eax
xor esi, esi
fldz
jmp 0x62a9eec0
fstp st(0)
add ecx, ecx
mov edx, edi
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x62a9f516
cmp dword [ebp - 0xa10], 0
mov dword [ebp - 0xa1c], esi
je 0x62a9eea1
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 0x62a9eecc
inc esi
cmp esi, dword [ebp - 0xa24]
jl 0x62a9ee83
fstp st(0)
jmp 0x62a9ef3e
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 0x62a9ef10
fstp st(1)
jmp 0x62a9ef12
fstp st(0)
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebx]
jge 0x62a9eeb5
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp - 0xa08]
mul ecx
jo 0x62a9ee6d
mov dword [ebp - 0xa08], eax
jmp 0x62a9eeb5
mov byte [ebx + 0x15], 2
jmp 0x62a9efa8
shl edx, 2
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x1c], eax
test eax, eax
jne 0x62a9ef70
mov ecx, dword [ebx + 0x18]
mov edx, edi
add ecx, ecx
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x62a9f5c3
xor edx, edx
fldz
cmp edx, dword [ebx + 0x18]
jge 0x62a9efa6
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 0x62a9efa1
fstp st(1)
jmp 0x62a9efa3
fstp st(0)
inc edx
jmp 0x62a9ef74
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 0x62a9e2f3
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 0x62a9effe
mov edx, 0x10
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62a9f516
inc ebx
jmp 0x62a9efda
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 0x62a9f5c3
mov dword [ebp - 0xa08], 0
mov dword [ebp - 0xa00], 0
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x580]
jge 0x62a9f421
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 0x62a9f516
imul ebx, edi, 0x63c
add ebx, dword [ebp - 0x4fc]
test ax, ax
jne 0x62a9f148
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 0x62a9f139
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 0x62a9f10b
mov dword [ebp - 0x59c], 4
jmp 0x62a9fc37
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 0x62a9f195
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 0x62a9f192
mov dword [ebp - 0xa10], eax
inc esi
jmp 0x62a9f166
xor esi, esi
cmp dword [ebp - 0xa10], esi
jl 0x62a9f245
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 0x62a9f1e1
mov eax, esi
xor edi, edi
shl eax, 4
add eax, ebx
mov dword [ebp - 0xa18], eax
jmp 0x62a9f22f
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 0x62a9f1d0
jmp 0x62a9f516
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 0x62a9f516
inc edi
movzx ecx, byte [ebx + esi + 0x31]
mov eax, 1
shl eax, cl
cmp edi, eax
jl 0x62a9f205
inc esi
jmp 0x62a9f197
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 0x62a9f2e9
movzx ecx, byte [ebx + esi + 1]
xor edi, edi
movzx eax, byte [ebx + ecx + 0x21]
cmp edi, eax
jge 0x62a9f2e6
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 0x62a9f2a5
inc esi
jmp 0x62a9f297
mov edx, dword [ebx + 0x638]
xor eax, eax
cmp eax, edx
lea esi, [ebp - 0x9e8]
jge 0x62a9f312
mov cx, word [ebx + eax*2 + 0x152]
mov word [esi + eax*4], cx
mov word [ebp + eax*4 - 0x9e6], ax
inc eax
jmp 0x62a9f2f1
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 0x62a9f34e
mov esi, dword [eax + edx*4]
inc edx
cmp si, word [eax + edx*4]
jne 0x62a9f33b
jmp 0x62a9f516
xor eax, eax
cmp edi, eax
jle 0x62a9f366
mov dx, word [ebp + eax*4 - 0x9e6]
mov byte [ebx + eax + 0x346], dl
inc eax
jmp 0x62a9f350
mov eax, 2
cmp edi, eax
jle 0x62a9f408
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 0x62a9f3c5
cmp cx, word [ebx + eax*2 + 0x152]
jae 0x62a9f3c5
mov dword [ebp - 0xa1c], edx
mov dword [ebp - 0xa10], ecx
cmp ecx, dword [ebp - 0xa18]
jge 0x62a9f3e3
cmp si, word [ebx + eax*2 + 0x152]
jbe 0x62a9f3e3
mov dword [ebp - 0xa24], edx
mov dword [ebp - 0xa18], ecx
inc edx
cmp eax, edx
jne 0x62a9f39d
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 0x62a9f36b
cmp dword [ebp - 0xa08], edi
jge 0x62a9f416
mov dword [ebp - 0xa08], edi
inc dword [ebp - 0xa00]
jmp 0x62a9f048
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 0x62a9f5c3
imul ecx, dword [ebp - 0x4f8], 0x18
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0xa00], 0
jmp 0x62a9f4da
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 0x62a9f5c3
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 0x62a9f732
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x4f8]
jge 0x62a9f525
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 0x62a9f5d2
mov dword [ebp - 0x59c], 0x14
jmp 0x62a9fc37
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 0x62a9f5c3
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 0x62a9f983
mov edx, 0x10
lea eax, [ebp - 0x600]
mov ebx, dword [ebp - 0x46c]
call sym._get_bits_1
test eax, eax
jne 0x62a9f516
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 0x62a9f7bd
mov dword [ebp - 0x59c], 3
jmp 0x62a9fc37
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 0x62a9f516
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 0x62a9f516
xor ebx, ebx
movzx edx, byte [esi + 0xc]
cmp ebx, edx
jge 0x62a9f6a3
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 0x62a9f696
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 0x62a9f654
shl edx, 4
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [esi + 0x14], eax
test eax, eax
je 0x62a9f5c3
xor edi, edi
movzx eax, byte [esi + 0xc]
cmp edi, eax
jge 0x62a9f46f
mov ecx, edi
xor ebx, ebx
shl ecx, 4
movzx eax, byte [ebp + edi - 0x9e8]
bt eax, ebx
jae 0x62a9f71d
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 0x62a9f729
jmp 0x62a9f516
lea eax, [ebx + ebx]
add eax, dword [esi + 0x14]
mov word [eax + ecx], 0xffff
inc ebx
cmp ebx, 8
jne 0x62a9f6d1
inc edi
jmp 0x62a9f6be
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 0x62a9f5c3
lea ecx, [ebx - 1]
mov dword [ebp - 0xa10], edi
test ecx, ecx
js 0x62a9f7b7
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 0x62a9f775
inc edi
jmp 0x62a9f4bb
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x62a9f7e7
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
mov byte [ebx + 8], al
jmp 0x62a9f7eb
mov byte [ebx + 8], 1
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x62a9f8a2
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 0x62a9f516
xor esi, esi
movzx eax, word [ebx]
cmp esi, eax
jge 0x62a9f8a7
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 0x62a9f516
movzx edi, byte [eax + 1]
mov eax, edi
cmp ecx, edi
jle 0x62a9f516
cmp dl, al
je 0x62a9f516
inc esi
jmp 0x62a9f828
mov word [ebx], 0
mov edx, 2
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62a9f516
xor esi, esi
cmp byte [ebx + 8], 1
jbe 0x62a9f902
cmp esi, dword [ebp - 0x5fc]
jge 0x62a9f8fe
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 0x62a9f516
inc esi
jmp 0x62a9f8c7
xor esi, esi
jmp 0x62a9f970
cmp eax, dword [ebp - 0x5fc]
jge 0x62a9f8fe
lea edx, [eax + eax*2]
inc eax
add edx, dword [ebx + 4]
mov byte [edx + 2], 0
jmp 0x62a9f902
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 0x62a9f516
movzx eax, al
cmp eax, dword [ebp - 0x4f8]
jge 0x62a9f516
inc esi
movzx eax, byte [ebx + 8]
cmp esi, eax
jl 0x62a9f917
inc dword [ebp - 0xa00]
jmp 0x62a9f56d
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 0x62a9fa3c
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 0x62a9f516
cmp word [ebx + 0x1a0], 0
jne 0x62a9f516
movzx eax, al
add ebx, 6
cmp eax, dword [ebp - 0x470]
jge 0x62a9f516
inc esi
jmp 0x62a9f9a2
lea eax, [ebp - 0x600]
call sym._get8_packet_raw
inc eax
jne 0x62a9fa3c
mov esi, dword [ebp - 0xa08]
mov dword [ebp - 0x220], 0
add esi, esi
xor ebx, ebx
cmp ebx, dword [ebp - 0x5fc]
jge 0x62a9fafd
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 0x62a9f5c3
cmp dword [ebp + ebx*4 - 0x260], 0
je 0x62a9f5c3
test eax, eax
sete al
je 0x62a9f5c3
mov edi, dword [ebp - 0x58c]
inc ebx
lea ecx, [edi*4]
mov edi, edx
rep stosb byte es:[edi], al
jmp 0x62a9fa5e
xor edx, edx
mov ecx, dword [ebp - 0x590]
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x62a9fc37
mov ecx, dword [ebp - 0x58c]
mov edx, 1
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x62a9fc37
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 0x62a9fba2
mov eax, dword [ebx + 4]
cmp eax, esi
jbe 0x62a9fb7f
mov eax, esi
mov edx, dword [ebx]
cmp edx, esi
jbe 0x62a9fb87
mov edx, esi
sub eax, edx
xor edx, edx
div dword [ebx + 8]
cmp dword [ebp - 0xa14], eax
jge 0x62a9fb9c
mov dword [ebp - 0xa14], eax
inc edi
add ebx, 0x18
jmp 0x62a9fb6e
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 0x62a9fbc4
mov dword [ebp - 0x5f4], eax
jmp 0x62a9fbca
mov dword [ebp - 0x5f4], ecx
cmp dword [ebp - 0x5b0], 0
je 0x62a9fc18
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5ac]
je 0x62a9fbfd
mov dword [esp + 8], 0x1064
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.f__temp_offset__f__alloc.alloc_buffer_length_in_bytes
jmp 0x62a9e733
mov ecx, dword [ebp - 0x5f4]
mov edx, dword [ebp - 0x5a8]
lea edx, [ecx + edx + 0x5e8]
cmp edx, eax
ja 0x62a9f5c3
cmp dword [ebp - 0x9c], 0xffffffff
lea esi, [ebp - 0x600]
jne 0x62a9fc62
mov dword [esp], esi
call sym._stb_vorbis_get_file_offset
mov dword [ebp - 0xa20], eax
jmp 0x62a9fc62
cmp dword [ebp - 0x5a0], 0
mov eax, 1
jne 0x62a9fc4b
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 0x62a9fd68
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 0x62a9fca2
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 0x62a9fd68
mov eax, esi
call sym._vorbis_deinit
jmp 0x62a9fd68
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 0x62a9fcdb
mov dword [edx + esi*4], eax
jmp 0x62a9fcf3
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 0x62a9e800
cmp eax, edi
jle 0x62a9e800
cmp dword [ebp + eax*4 - 0x9e8], 0
je 0x62a9fd33
mov dword [esp + 8], 0x46d
mov dword [esp + 4], 0x62b239c8
mov dword [esp], str.available_y___0
jmp 0x62a9e733
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 0x62a9fd05
cmp byte [ebx + 0x17], 0
je 0x62a9f516
xor ecx, ecx
mov edx, dword [ebp - 0xa10]
jmp 0x62a9ee73
add esp, 0xa3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret