Function at 0x62a9f4c0
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 0x62a9f50a
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 0x62aa13b8
mov al, byte [ebp - 0xa1]
test al, 2
jne 0x62a9f559
mov dword [ebp - 0x59c], 0x22
jmp 0x62aa13b8
test al, 5
jne 0x62a9f54a
cmp dword [ebp - 0x1a4], 1
jne 0x62a9f54a
mov al, byte [ebp - 0x1a0]
cmp al, 0x1e
je 0x62a9f5ed
cmp al, 0x40
jne 0x62a9f54a
mov ecx, 6
lea edx, [ebp - 0x9ee]
mov eax, ebx
call sym._getn
test eax, eax
je 0x62a9f54a
cmp byte [ebp - 0x9ee], 0x66
jne 0x62a9f54a
cmp byte [ebp - 0x9ed], 0x69
jne 0x62a9f54a
cmp byte [ebp - 0x9ec], 0x73
jne 0x62a9f54a
cmp byte [ebp - 0x9eb], 0x68
jne 0x62a9f54a
cmp byte [ebp - 0x9ea], 0x65
jne 0x62a9f54a
cmp byte [ebp - 0x9e9], 0x61
jne 0x62a9f54a
mov eax, ebx
call sym._get8
cmp al, 0x64
jne 0x62a9f54a
mov eax, ebx
call sym._get8
test al, al
jne 0x62a9f54a
mov dword [ebp - 0x59c], 0x26
jmp 0x62aa13b8
mov eax, ebx
call sym._get8
dec al
jne 0x62a9f54a
lea esi, [ebp - 0x9ee]
mov ecx, 6
mov edx, esi
mov eax, ebx
call sym._getn
test eax, eax
jne 0x62a9f623
mov dword [ebp - 0x59c], 0xa
jmp 0x62aa13b8
mov dword [esp], esi
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b16284
call sym._memcmp
mov esi, eax
test eax, eax
jne 0x62a9f54a
mov eax, ebx
call sym._get32
test eax, eax
jne 0x62a9f54a
mov eax, ebx
call sym._get8
movzx eax, al
mov dword [ebp - 0x5fc], eax
test eax, eax
je 0x62a9f54a
cmp eax, 0x10
jle 0x62a9f680
mov dword [ebp - 0x59c], 5
jmp 0x62aa13b8
lea eax, [ebp - 0x600]
call sym._get32
mov dword [ebp - 0x600], eax
test eax, eax
je 0x62a9f54a
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 0x62aa0c97
lea eax, [ebx - 6]
cmp eax, 7
ja 0x62aa0c97
cmp edi, ebx
jg 0x62aa0c97
lea eax, [ebp - 0x600]
call sym._get8
test al, 1
je 0x62a9f54a
lea eax, [ebp - 0x600]
call sym._start_page
test eax, eax
je 0x62aa13b8
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x62aa13b8
lea eax, [ebp - 0x600]
call sym._next_segment
test eax, eax
je 0x62aa13b8
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 3
jne 0x62aa0c97
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + esi - 0x9ee], al
inc esi
cmp esi, 6
jne 0x62a9f778
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b16284
mov dword [esp], edx
call sym._memcmp
test eax, eax
jne 0x62aa0c97
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 0x62aa0d44
cmp ebx, esi
jle 0x62a9f7fc
lea eax, [ebp - 0x600]
call sym._get8_packet
mov edx, dword [ebp - 0x5ec]
mov byte [edx + esi], al
inc esi
jmp 0x62a9f7e1
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 0x62a9f844
lea eax, [ebp - 0x600]
call sym._get8_packet
and eax, 1
mov dword [ebp - 0xa28], eax
je 0x62aa0c97
jmp 0x62a9f8f5
lea edx, [eax*4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
xor ebx, ebx
mov dword [ebp - 0x5e4], eax
test eax, eax
je 0x62aa0d44
cmp ebx, dword [ebp - 0x5e8]
jge 0x62a9f825
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 0x62aa0d44
xor edx, edx
cmp esi, edx
jle 0x62a9f8e2
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 0x62a9f8b8
mov eax, dword [ebp - 0x5e4]
inc ebx
mov eax, dword [eax + edi]
mov byte [eax + esi], 0
jmp 0x62a9f866
movzx eax, byte [ebp - 0xa0]
add eax, dword [ebp - 0x5e0]
cmp eax, dword [ebp - 0x5d8]
mov dword [ebp - 0x5e0], eax
jb 0x62a9f91a
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 0x62a9f94e
mov dword [ebp - 0x5a0], 1
mov byte [ebp - 0xa0], 0
test ebx, ebx
jne 0x62a9f921
lea eax, [ebp - 0x600]
call sym._start_packet
test eax, eax
je 0x62aa13b8
lea eax, [ebp - 0x600]
call sym._is_whole_packet_present
test eax, eax
jne 0x62a9f98d
cmp dword [ebp - 0x59c], 0x15
jne 0x62aa13b8
jmp 0x62aa0c97
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 0x62a9f99e
mov dword [edx*4 + 0x62b15de0], eax
inc edx
cmp edx, 0x100
jne 0x62a9f98f
lea eax, [ebp - 0x600]
call sym._get8_packet
cmp eax, 5
jne 0x62aa0c97
lea eax, [ebp - 0x600]
call sym._get8_packet
lea edx, [ebp - 0x9ee]
mov byte [ebp + ebx - 0x9ee], al
inc ebx
cmp ebx, 6
jne 0x62a9f9d7
mov dword [esp + 8], 6
mov dword [esp + 4], 0x62b16284
mov dword [esp], edx
call sym._memcmp
mov dword [ebp - 0xa14], eax
test eax, eax
jne 0x62aa0c97
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 0x62aa0d44
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 0x62aa0746
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 0x62aa0c97
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x43
jne 0x62aa0c97
mov edx, 8
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp al, 0x56
jne 0x62aa0c97
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 0x62a9fb7f
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 0x62a9fb92
test edx, edx
jne 0x62aa0c97
test al, al
lea eax, [ebp - 0x600]
je 0x62a9fba9
call sym._setup_temp_malloc
mov dword [ebp - 0xa00], eax
jmp 0x62a9fbb7
call sym._setup_malloc
mov dword [ebp - 0xa00], eax
mov dword [ebx + 8], eax
cmp dword [ebp - 0xa00], 0
je 0x62aa0d44
xor esi, esi
cmp dword [ebp - 0xa08], 0
je 0x62a9fc78
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 0x62a9fc3f
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 0x62aa0c97
lea esi, [edi + eax]
cmp esi, dword [ebx + 4]
jg 0x62aa0c97
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 0x62a9fbec
mov dword [ebp - 0xa08], 0
jmp 0x62a9fca2
test al, al
jne 0x62a9fc82
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 0x62aa0c97
inc esi
cmp esi, dword [ebx + 4]
mov al, byte [ebx + 0x17]
jl 0x62a9fc4b
jmp 0x62a9fca2
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62a9fc4f
mov eax, dword [ebp - 0xa00]
mov byte [eax + esi], 0xff
jmp 0x62a9fc77
cmp byte [ebx + 0x17], 0
je 0x62a9fd0d
mov eax, dword [ebx + 4]
mov edx, eax
sar edx, 2
cmp edx, dword [ebp - 0xa08]
jg 0x62a9fd0d
cmp eax, dword [ebp - 0x5f0]
jle 0x62a9fcc6
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 0x62aa0d44
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 0x62a9fd48
mov esi, dword [ebx + 4]
mov dword [ebp - 0xa08], 0
xor eax, eax
cmp eax, esi
jge 0x62a9fd48
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 0x62a9fd23
mov eax, dword [ebp - 0xa08]
test cl, cl
mov dword [ebx + 0x82c], eax
jne 0x62a9fd87
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 0x62aa0d44
mov dword [ebp - 0xa10], 0
jmp 0x62a9fe19
cmp dword [ebp - 0xa08], 0
mov dword [ebp - 0xa10], 0
je 0x62a9fdff
mov edx, dword [ebp - 0xa08]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 8], eax
test eax, eax
je 0x62aa0d44
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 0x62aa0d44
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 0x62aa0d44
mov edx, dword [ebx + 0x82c]
mov eax, dword [ebx + 4]
lea eax, [eax + edx*8]
cmp eax, dword [ebp - 0x5f0]
jbe 0x62a9fe19
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 0x62a9fe4a
mov edi, dword [ebp - 0xa00]
cmp byte [edi + eax], 0xff
jne 0x62a9fe81
inc eax
jmp 0x62a9fe33
jne 0x62a9fe81
cmp dword [ebx + 0x82c], 0
jne 0x62a9fe68
mov eax, dword [ebx + 0x82c]
test eax, eax
je 0x62aa001c
jmp 0x62aa007f
mov dword [esp + 8], 0x44f
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.c__sorted_entries__0
jmp 0x62a9fead
mov edi, dword [ebp - 0xa00]
add edi, eax
mov dword [ebp - 0xa08], edi
mov dl, byte [edi]
cmp dl, 0x1f
jbe 0x62a9feb2
mov dword [esp + 8], 0x450
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.len_k____32
call sym.__assert
cmp byte [ebx + 0x17], 0
mov ecx, dword [ebx + 0x20]
jne 0x62a9fec4
mov dword [ecx + eax*4], 0
jmp 0x62a9fed7
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 0x62a9ff04
mov ecx, 0x20
mov esi, edi
sub ecx, edx
shl esi, cl
mov dword [ebp + edx*4 - 0x9e8], esi
inc edx
jmp 0x62a9fee2
lea esi, [eax + 1]
mov edx, dword [ebp - 0xa28]
cmp dword [ebp - 0xa1c], esi
jle 0x62a9fe55
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + esi]
mov byte [ebp - 0xa24], al
cmp eax, 0xff
je 0x62a9ff74
cmp eax, 0x1f
jle 0x62a9ff69
mov dword [esp + 8], 0x45e
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.z___32
jmp 0x62a9fead
lea eax, [eax - 1]
mov ecx, dword [ebp + eax*4 - 0x9e4]
mov dword [ebp - 0xa08], ecx
test ecx, ecx
jne 0x62aa142f
mov edi, eax
test eax, eax
jne 0x62a9ff51
jmp 0x62aa14de
mov dword [ebp - 0xa2c], edx
inc esi
mov edx, dword [ebp - 0xa2c]
jmp 0x62a9ff0d
mov esi, dword [ebp - 0xa00]
cmp byte [ebx + 0x17], 0
mov dl, byte [esi + edi]
jne 0x62aa00ea
sub edx, 0xb
cmp dl, 0xf3
jbe 0x62aa010a
inc edi
cmp edi, dword [ebx + 4]
jl 0x62a9ff83
cmp eax, dword [ebx + 0x82c]
jne 0x62aa0134
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 0x62aa0175
mov eax, dword [ebx + 0x82c]
mov dword [ebp - 0xa34], eax
xor edi, edi
mov al, byte [ebx + 0x17]
cmp edi, dword [ebp - 0xa34]
mov byte [ebp - 0xa24], al
jl 0x62aa017d
cmp byte [ebx + 0x17], 0
je 0x62aa029d
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 0x62aa029d
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x824], eax
test eax, eax
je 0x62aa0d44
mov eax, dword [ebx + 0x82c]
lea edx, [eax*4 + 4]
lea eax, [ebp - 0x600]
call sym._setup_malloc
test eax, eax
jne 0x62aa00ca
mov dword [ebx + 0x828], 0
jmp 0x62aa0d44
lea edx, [eax + 4]
xor esi, esi
mov dword [ebx + 0x828], edx
mov dword [eax], 0xffffffff
cmp byte [ebx + 0x17], 0
jne 0x62aa0150
xor eax, eax
xor edi, edi
jmp 0x62a9ffa3
inc dl
jne 0x62aa010a
mov dword [esp + 8], 0x49c
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.len___NO_CODE
jmp 0x62a9fead
mov edx, dword [ebx + 0x824]
lea esi, [eax + 1]
mov dword [ebp - 0xa08], esi
lea esi, [edx + eax*4]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edi*4]
call sym._bit_reverse
mov dword [esi], eax
mov eax, dword [ebp - 0xa08]
jmp 0x62a9ffa2
mov dword [esp + 8], 0x4b0
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.k__c__sorted_entries
jmp 0x62a9fead
cmp esi, dword [ebx + 0x82c]
mov eax, dword [ebx + 0x824]
jge 0x62a9ffb4
lea edi, [eax + esi*4]
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
inc esi
call sym._bit_reverse
mov dword [edi], eax
jmp 0x62aa0150
mov eax, dword [ebx + 4]
jmp 0x62a9ffff
cmp byte [ebp - 0xa24], 0
je 0x62aa019b
mov eax, dword [ebp - 0xa10]
mov esi, dword [ebp - 0xa00]
mov eax, dword [eax + edi*4]
movzx eax, byte [esi + eax]
jmp 0x62aa01a5
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + edi]
cmp byte [ebp - 0xa24], 0
mov byte [ebp - 0xa2c], al
je 0x62aa01c0
cmp eax, 0xff
jne 0x62aa01d8
jmp 0x62aa00ee
cmp eax, 0xff
je 0x62aa0297
cmp byte [ebp - 0xa2c], 0xa
jbe 0x62aa0297
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + edi*4]
call sym._bit_reverse
mov dword [ebp - 0xa30], eax
mov eax, dword [ebx + 0x82c]
mov dword [ebp - 0xa08], eax
xor eax, eax
mov esi, dword [ebx + 0x824]
cmp dword [ebp - 0xa08], 1
jle 0x62aa023f
mov ecx, dword [ebp - 0xa08]
mov edx, dword [ebp - 0xa30]
sar ecx, 1
mov dword [ebp - 0xa1c], ecx
add ecx, eax
cmp edx, dword [esi + ecx*4]
jb 0x62aa0231
mov eax, dword [ebp - 0xa1c]
sub dword [ebp - 0xa08], eax
mov eax, ecx
jmp 0x62aa01f7
mov ecx, dword [ebp - 0xa1c]
mov dword [ebp - 0xa08], ecx
jmp 0x62aa01fd
mov ecx, dword [ebp - 0xa30]
lea edx, [eax*4]
cmp ecx, dword [esi + eax*4]
je 0x62aa026d
mov dword [esp + 8], 0x4ce
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.c__sorted_codewords_x___code
jmp 0x62a9fead
add edx, dword [ebx + 0x828]
cmp byte [ebp - 0xa24], 0
je 0x62aa0295
mov esi, dword [ebp - 0xa10]
mov ecx, dword [esi + edi*4]
mov dword [edx], ecx
mov cl, byte [ebp - 0xa2c]
mov edx, dword [ebx + 8]
mov byte [edx + eax], cl
jmp 0x62aa0297
mov dword [edx], edi
inc edi
jmp 0x62aa0007
xor eax, eax
mov word [ebx + eax*2 + 0x24], 0xffff
inc eax
cmp eax, 0x400
jne 0x62aa029f
mov dl, byte [ebx + 0x17]
test dl, dl
je 0x62aa02bd
mov edi, dword [ebx + 0x82c]
jmp 0x62aa02c0
mov edi, dword [ebx + 4]
mov dword [ebp - 0xa00], edi
cmp edi, 0x7fff
jle 0x62aa02d8
mov dword [ebp - 0xa00], 0x7fff
xor esi, esi
cmp dword [ebp - 0xa00], esi
jle 0x62aa033b
mov eax, dword [ebx + 8]
add eax, esi
mov dword [ebp - 0xa08], eax
cmp byte [eax], 0xa
jbe 0x62aa02f5
inc esi
jmp 0x62aa02da
test dl, dl
je 0x62aa0315
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 0x62aa031b
mov eax, dword [ebx + 0x20]
mov eax, dword [eax + esi*4]
cmp eax, 0x3ff
ja 0x62aa02f2
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 0x62aa031b
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
mov byte [ebx + 0x15], al
cmp al, 2
ja 0x62aa0c97
test al, al
je 0x62aa073b
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 0x62aa0534
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 0x62aa0499
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 0x62aa0c97
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 0x62aa0c97
mov dword [ebx + 0x18], edi
jmp 0x62aa053a
imul esi, dword [ebx]
mov dword [ebx + 0x18], esi
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x62aa0c97
add edx, edx
lea eax, [ebp - 0x600]
call sym._setup_temp_malloc
mov edi, eax
test eax, eax
je 0x62aa0d44
xor esi, esi
mov edx, dword [ebx + 0x18]
cmp esi, edx
jge 0x62aa0585
movzx edx, byte [ebx + 0x14]
lea eax, [ebp - 0x600]
call sym._get_bits_1
cmp eax, 0xffffffff
jne 0x62aa057e
mov ecx, dword [ebx + 0x18]
jmp 0x62aa05f0
mov word [edi + esi*2], ax
inc esi
jmp 0x62aa055e
cmp byte [ebx + 0x15], 1
jne 0x62aa06c5
movzx eax, byte [ebx + 0x17]
mov dword [ebp - 0xa10], eax
test eax, eax
je 0x62aa05ad
mov edx, dword [ebx + 0x82c]
test edx, edx
je 0x62aa0729
jmp 0x62aa05b0
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 0x62aa06da
cmp dword [ebp - 0xa10], 0
je 0x62aa05df
mov eax, dword [ebx + 0x82c]
jmp 0x62aa05e2
mov eax, dword [ebx + 4]
mov dword [ebp - 0xa24], eax
xor esi, esi
fldz
jmp 0x62aa0641
fstp st(0)
add ecx, ecx
mov edx, edi
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x62aa0c97
cmp dword [ebp - 0xa10], 0
mov dword [ebp - 0xa1c], esi
je 0x62aa0622
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 0x62aa064d
inc esi
cmp esi, dword [ebp - 0xa24]
jl 0x62aa0604
fstp st(0)
jmp 0x62aa06bf
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 0x62aa0691
fstp st(1)
jmp 0x62aa0693
fstp st(0)
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebx]
jge 0x62aa0636
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebp - 0xa08]
mul ecx
jo 0x62aa05ee
mov dword [ebp - 0xa08], eax
jmp 0x62aa0636
mov byte [ebx + 0x15], 2
jmp 0x62aa0729
shl edx, 2
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [ebx + 0x1c], eax
test eax, eax
jne 0x62aa06f1
mov ecx, dword [ebx + 0x18]
mov edx, edi
add ecx, ecx
lea eax, [ebp - 0x600]
call sym._setup_temp_free
jmp 0x62aa0d44
xor edx, edx
fldz
cmp edx, dword [ebx + 0x18]
jge 0x62aa0727
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 0x62aa0722
fstp st(1)
jmp 0x62aa0724
fstp st(0)
inc edx
jmp 0x62aa06f5
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 0x62a9fa6d
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 0x62aa077f
mov edx, 0x10
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62aa0c97
inc ebx
jmp 0x62aa075b
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 0x62aa0d44
mov dword [ebp - 0xa08], 0
mov dword [ebp - 0xa00], 0
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x580]
jge 0x62aa0ba2
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 0x62aa0c97
imul ebx, edi, 0x63c
add ebx, dword [ebp - 0x4fc]
test ax, ax
jne 0x62aa08c9
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 0x62aa08ba
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 0x62aa088c
mov dword [ebp - 0x59c], 4
jmp 0x62aa13b8
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 0x62aa0916
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 0x62aa0913
mov dword [ebp - 0xa10], eax
inc esi
jmp 0x62aa08e7
xor esi, esi
cmp dword [ebp - 0xa10], esi
jl 0x62aa09c6
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 0x62aa0962
mov eax, esi
xor edi, edi
shl eax, 4
add eax, ebx
mov dword [ebp - 0xa18], eax
jmp 0x62aa09b0
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 0x62aa0951
jmp 0x62aa0c97
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 0x62aa0c97
inc edi
movzx ecx, byte [ebx + esi + 0x31]
mov eax, 1
shl eax, cl
cmp edi, eax
jl 0x62aa0986
inc esi
jmp 0x62aa0918
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 0x62aa0a6a
movzx ecx, byte [ebx + esi + 1]
xor edi, edi
movzx eax, byte [ebx + ecx + 0x21]
cmp edi, eax
jge 0x62aa0a67
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 0x62aa0a26
inc esi
jmp 0x62aa0a18
mov edx, dword [ebx + 0x638]
xor eax, eax
cmp eax, edx
lea esi, [ebp - 0x9e8]
jge 0x62aa0a93
mov cx, word [ebx + eax*2 + 0x152]
mov word [esi + eax*4], cx
mov word [ebp + eax*4 - 0x9e6], ax
inc eax
jmp 0x62aa0a72
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 0x62aa0acf
mov esi, dword [eax + edx*4]
inc edx
cmp si, word [eax + edx*4]
jne 0x62aa0abc
jmp 0x62aa0c97
xor eax, eax
cmp edi, eax
jle 0x62aa0ae7
mov dx, word [ebp + eax*4 - 0x9e6]
mov byte [ebx + eax + 0x346], dl
inc eax
jmp 0x62aa0ad1
mov eax, 2
cmp edi, eax
jle 0x62aa0b89
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 0x62aa0b46
cmp cx, word [ebx + eax*2 + 0x152]
jae 0x62aa0b46
mov dword [ebp - 0xa1c], edx
mov dword [ebp - 0xa10], ecx
cmp ecx, dword [ebp - 0xa18]
jge 0x62aa0b64
cmp si, word [ebx + eax*2 + 0x152]
jbe 0x62aa0b64
mov dword [ebp - 0xa24], edx
mov dword [ebp - 0xa18], ecx
inc edx
cmp eax, edx
jne 0x62aa0b1e
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 0x62aa0aec
cmp dword [ebp - 0xa08], edi
jge 0x62aa0b97
mov dword [ebp - 0xa08], edi
inc dword [ebp - 0xa00]
jmp 0x62aa07c9
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 0x62aa0d44
imul ecx, dword [ebp - 0x4f8], 0x18
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0xa00], 0
jmp 0x62aa0c5b
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 0x62aa0d44
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 0x62aa0eb3
inc dword [ebp - 0xa00]
mov eax, dword [ebp - 0xa00]
cmp eax, dword [ebp - 0x4f8]
jge 0x62aa0ca6
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 0x62aa0d53
mov dword [ebp - 0x59c], 0x14
jmp 0x62aa13b8
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 0x62aa0d44
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 0x62aa1104
mov edx, 0x10
lea eax, [ebp - 0x600]
mov ebx, dword [ebp - 0x46c]
call sym._get_bits_1
test eax, eax
jne 0x62aa0c97
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 0x62aa0f3e
mov dword [ebp - 0x59c], 3
jmp 0x62aa13b8
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 0x62aa0c97
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 0x62aa0c97
xor ebx, ebx
movzx edx, byte [esi + 0xc]
cmp ebx, edx
jge 0x62aa0e24
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 0x62aa0e17
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 0x62aa0dd5
shl edx, 4
lea eax, [ebp - 0x600]
call sym._setup_malloc
mov dword [esi + 0x14], eax
test eax, eax
je 0x62aa0d44
xor edi, edi
movzx eax, byte [esi + 0xc]
cmp edi, eax
jge 0x62aa0bf0
mov ecx, edi
xor ebx, ebx
shl ecx, 4
movzx eax, byte [ebp + edi - 0x9e8]
bt eax, ebx
jae 0x62aa0e9e
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 0x62aa0eaa
jmp 0x62aa0c97
lea eax, [ebx + ebx]
add eax, dword [esi + 0x14]
mov word [eax + ecx], 0xffff
inc ebx
cmp ebx, 8
jne 0x62aa0e52
inc edi
jmp 0x62aa0e3f
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 0x62aa0d44
lea ecx, [ebx - 1]
mov dword [ebp - 0xa10], edi
test ecx, ecx
js 0x62aa0f38
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 0x62aa0ef6
inc edi
jmp 0x62aa0c3c
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x62aa0f68
mov edx, 4
lea eax, [ebp - 0x600]
call sym._get_bits_1
inc eax
mov byte [ebx + 8], al
jmp 0x62aa0f6c
mov byte [ebx + 8], 1
mov edx, 1
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
je 0x62aa1023
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 0x62aa0c97
xor esi, esi
movzx eax, word [ebx]
cmp esi, eax
jge 0x62aa1028
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 0x62aa0c97
movzx edi, byte [eax + 1]
mov eax, edi
cmp ecx, edi
jle 0x62aa0c97
cmp dl, al
je 0x62aa0c97
inc esi
jmp 0x62aa0fa9
mov word [ebx], 0
mov edx, 2
lea eax, [ebp - 0x600]
call sym._get_bits_1
test eax, eax
jne 0x62aa0c97
xor esi, esi
cmp byte [ebx + 8], 1
jbe 0x62aa1083
cmp esi, dword [ebp - 0x5fc]
jge 0x62aa107f
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 0x62aa0c97
inc esi
jmp 0x62aa1048
xor esi, esi
jmp 0x62aa10f1
cmp eax, dword [ebp - 0x5fc]
jge 0x62aa107f
lea edx, [eax + eax*2]
inc eax
add edx, dword [ebx + 4]
mov byte [edx + 2], 0
jmp 0x62aa1083
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 0x62aa0c97
movzx eax, al
cmp eax, dword [ebp - 0x4f8]
jge 0x62aa0c97
inc esi
movzx eax, byte [ebx + 8]
cmp esi, eax
jl 0x62aa1098
inc dword [ebp - 0xa00]
jmp 0x62aa0cee
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 0x62aa11bd
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 0x62aa0c97
cmp word [ebx + 0x1a0], 0
jne 0x62aa0c97
movzx eax, al
add ebx, 6
cmp eax, dword [ebp - 0x470]
jge 0x62aa0c97
inc esi
jmp 0x62aa1123
lea eax, [ebp - 0x600]
call sym._get8_packet_raw
inc eax
jne 0x62aa11bd
mov esi, dword [ebp - 0xa08]
mov dword [ebp - 0x220], 0
add esi, esi
xor ebx, ebx
cmp ebx, dword [ebp - 0x5fc]
jge 0x62aa127e
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 0x62aa0d44
cmp dword [ebp + ebx*4 - 0x260], 0
je 0x62aa0d44
test eax, eax
sete al
je 0x62aa0d44
mov edi, dword [ebp - 0x58c]
inc ebx
lea ecx, [edi*4]
mov edi, edx
rep stosb byte es:[edi], al
jmp 0x62aa11df
xor edx, edx
mov ecx, dword [ebp - 0x590]
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x62aa13b8
mov ecx, dword [ebp - 0x58c]
mov edx, 1
lea eax, [ebp - 0x600]
call sym._init_blocksize
test eax, eax
je 0x62aa13b8
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 0x62aa1323
mov eax, dword [ebx + 4]
cmp eax, esi
jbe 0x62aa1300
mov eax, esi
mov edx, dword [ebx]
cmp edx, esi
jbe 0x62aa1308
mov edx, esi
sub eax, edx
xor edx, edx
div dword [ebx + 8]
cmp dword [ebp - 0xa14], eax
jge 0x62aa131d
mov dword [ebp - 0xa14], eax
inc edi
add ebx, 0x18
jmp 0x62aa12ef
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 0x62aa1345
mov dword [ebp - 0x5f4], eax
jmp 0x62aa134b
mov dword [ebp - 0x5f4], ecx
cmp dword [ebp - 0x5b0], 0
je 0x62aa1399
mov eax, dword [ebp - 0x5a4]
cmp eax, dword [ebp - 0x5ac]
je 0x62aa137e
mov dword [esp + 8], 0x1064
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.f__temp_offset__f__alloc.alloc_buffer_length_in_bytes
jmp 0x62a9fead
mov ecx, dword [ebp - 0x5f4]
mov edx, dword [ebp - 0x5a8]
lea edx, [ecx + edx + 0x5e8]
cmp edx, eax
ja 0x62aa0d44
cmp dword [ebp - 0x9c], 0xffffffff
lea esi, [ebp - 0x600]
jne 0x62aa13e3
mov dword [esp], esi
call sym._stb_vorbis_get_file_offset
mov dword [ebp - 0xa20], eax
jmp 0x62aa13e3
cmp dword [ebp - 0x5a0], 0
mov eax, 1
jne 0x62aa13cc
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 0x62aa14f5
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 0x62aa1423
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 0x62aa14f5
mov eax, esi
call sym._vorbis_deinit
jmp 0x62aa14f5
lea eax, [edx + 1]
mov dword [ebp + edi*4 - 0x9e8], 0
mov dword [ebp - 0xa2c], eax
mov eax, dword [ebp - 0xa08]
mov dword [ebp - 0xa30], edx
call sym._bit_reverse
cmp byte [ebx + 0x17], 0
mov ecx, dword [ebx + 0x20]
jne 0x62aa1462
mov dword [ecx + esi*4], eax
jmp 0x62aa1480
mov edx, dword [ebp - 0xa30]
mov dword [ecx + edx*4], eax
mov cl, byte [ebp - 0xa24]
mov eax, dword [ebx + 8]
mov byte [eax + edx], cl
mov eax, dword [ebp - 0xa10]
mov dword [eax + edx*4], esi
mov eax, dword [ebp - 0xa00]
movzx eax, byte [eax + esi]
cmp edi, eax
je 0x62a9ff7a
cmp eax, edi
jle 0x62a9ff7a
cmp dword [ebp + eax*4 - 0x9e8], 0
je 0x62aa14c0
mov dword [esp + 8], 0x46d
mov dword [esp + 4], 0x62b25ca8
mov dword [esp], str.available_y___0
jmp 0x62a9fead
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 0x62aa1492
cmp byte [ebx + 0x17], 0
je 0x62aa0c97
xor ecx, ecx
mov edx, dword [ebp - 0xa10]
jmp 0x62aa05f4
add esp, 0xa3c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret