Function at 0x140027b90
Capabilities:
Encode data using xor
Hash data using crc32b
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x478
movaps xmmword [rsp + 0x450], xmm6
movaps xmmword [rsp + 0x460], xmm7
movzx eax, byte [rcx + 0x5e4]
mov rbx, rcx
cmp al, 0x1e
je 0x140027c28
cmp al, 0x40
je 0x140027c00
mov dword [rbx + 0x9c], 0x22
xor r12d, r12d
movaps xmm6, xmmword [rsp + 0x450]
movaps xmm7, xmmword [rsp + 0x460]
mov eax, r12d
add rsp, 0x478
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x140027de8
lea rdx, [rax + 6]
cmp rdx, qword [rcx + 0x50]
jbe 0x140027c78
mov dword [rbx + 0x98], 1
jmp 0x140027bc5
mov rax, qword [rcx + 0x40]
test rax, rax
je 0x140027d20
mov rdx, qword [rcx + 0x50]
cmp rax, rdx
jae 0x140027c17
lea rcx, [rax + 1]
mov qword [rbx + 0x40], rcx
cmp byte [rax], 1
jne 0x140027bc5
lea rax, [rcx + 6]
cmp rax, rdx
jbe 0x140027dd0
movabs rax, 0xa00000001
xor r12d, r12d
mov qword [rbx + 0x98], rax
jmp 0x140027bd2
mov ecx, dword [rax]
mov dword [rsp + 0x5a], ecx
movzx eax, word [rax + 4]
mov qword [rbx + 0x40], rdx
mov word [rsp + 0x5e], ax
cmp byte [rsp + 0x5a], 0x66
jne 0x140027bc5
cmp byte [rsp + 0x5b], 0x69
jne 0x140027bc5
cmp byte [rsp + 0x5c], 0x73
jne 0x140027bc5
cmp byte [rsp + 0x5d], 0x68
jne 0x140027bc5
cmp byte [rsp + 0x5e], 0x65
jne 0x140027bc5
cmp byte [rsp + 0x5f], 0x61
jne 0x140027bc5
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x1400280e2
cmp rax, qword [rbx + 0x50]
jae 0x140027c17
lea rdx, [rax + 1]
mov qword [rbx + 0x40], rdx
movzx eax, byte [rax]
cmp al, 0x64
jne 0x140027bc5
mov rcx, rbx
call sym.get8
test al, al
jne 0x140027bc5
mov dword [rbx + 0x9c], 0x26
xor r12d, r12d
jmp 0x140027bd2
mov rcx, qword [rcx + 0x30]
call sym.fgetc
cmp eax, 0xffffffff
je 0x140027c17
cmp al, 1
jne 0x140027bc5
mov rcx, qword [rbx + 0x40]
test rcx, rcx
jne 0x1400280f9
lea r13, [rsp + 0x5a]
mov r9, qword [rbx + 0x30]
mov r8d, 1
mov edx, 6
mov rcx, r13
call sym.fread
cmp rax, 1
jne 0x140027c5c
nop dword [rax]
mov eax, dword [str.vorbisOggS]
cmp dword [rsp + 0x5a], eax
jne 0x140027bc5
movzx eax, word [0x1401cf034]
cmp word [rsp + 0x5e], ax
jne 0x140027bc5
mov rcx, rbx
xor r12d, r12d
call sym.get32
test eax, eax
jne 0x140027bc5
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x140027ea1
cmp rax, qword [rbx + 0x50]
jb 0x140027e10
mov dword [rbx + 0x98], 1
mov dword [rbx + 4], 0
jmp 0x140027bc5
mov edx, dword [rcx]
mov dword [rsp + 0x5a], edx
movzx edx, word [rcx + 4]
mov qword [rbx + 0x40], rax
mov word [rsp + 0x5e], dx
jmp 0x140027d70
mov r9, qword [rbx + 0x30]
lea rcx, [rsp + 0x5a]
mov r8d, 1
mov edx, 6
call sym.fread
cmp rax, 1
jne 0x140027c17
jmp 0x140027c8b
lea rdx, [rax + 1]
mov qword [rbx + 0x40], rdx
movzx eax, byte [rax]
movzx eax, al
mov dword [rbx + 4], eax
test eax, eax
je 0x140027bc5
cmp eax, 0x10
jle 0x140027e3d
mov dword [rbx + 0x9c], 5
jmp 0x140027bd2
mov rcx, rbx
call sym.get32
mov dword [rbx], eax
test eax, eax
je 0x140027bc5
mov rcx, rbx
call sym.get32
mov rcx, rbx
call sym.get32
mov rcx, rbx
call sym.get32
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x1400280cb
cmp rax, qword [rbx + 0x50]
jb 0x140027eb8
mov rax, qword [0x1401d4670]
mov dword [rbx + 0x98], 1
mov qword [rbx + 0xa8], rax
mov dword [rbx + 0x9c], 0x14
jmp 0x140027bd2
mov rcx, qword [rbx + 0x30]
call sym.fgetc
cmp eax, 0xffffffff
jne 0x140027e1b
jmp 0x140027db8
lea rdx, [rax + 1]
mov qword [rbx + 0x40], rdx
movzx eax, byte [rax]
mov ecx, eax
mov edx, 1
mov r10d, eax
shr al, 4
and ecx, 0xf
mov r8d, edx
and r10d, 0xf
movzx r9d, al
shl r8d, cl
mov ecx, eax
lea eax, [r10 - 6]
shl edx, cl
movd xmm0, r8d
movd xmm3, edx
punpckldq xmm0, xmm3
movq qword [rbx + 0xa8], xmm0
cmp eax, 7
ja 0x140027e92
lea eax, [r9 - 6]
cmp eax, 7
ja 0x140027e92
cmp r10d, r9d
jg 0x140027e92
mov rcx, rbx
call sym.get8
and al, 1
mov byte [rsp + 0x37], al
je 0x140027bc5
mov rcx, rbx
call sym.start_page
test eax, eax
je 0x140027bd2
mov rcx, rbx
call sym.start_packet
test eax, eax
je 0x140027bd2
mov rcx, rbx
call sym.next_segment
test eax, eax
je 0x140027bd2
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
cmp eax, 3
jne 0x140027e92
xor esi, esi
lea r13, [rsp + 0x5a]
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
mov byte [r13 + rsi], al
add rsi, 1
cmp rsi, 6
jne 0x140027f77
lea r14, str.vorbisOggS
mov r8d, 6
mov rcx, r13
mov rdx, r14
call sym.memcmp
test eax, eax
jne 0x140027e92
mov rcx, rbx
xor edi, edi
call sym.get32_packet
mov rcx, rbx
movsxd rsi, eax
lea edx, [rsi + 1]
call sym.setup_malloc
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x140027ffb
jmp 0x1400281a7
mov rcx, rbx
call sym.get8_packet_raw
mov rdx, qword [rbx + 0x18]
mov dword [rbx + 0x6f8], 0
mov byte [rdx + rdi], al
add rdi, 1
cmp esi, edi
jg 0x140027fde
mov rax, qword [rbx + 0x18]
mov rcx, rbx
mov byte [rax + rsi], 0
call sym.get32_packet
mov qword [rbx + 0x28], 0
mov dword [rbx + 0x20], eax
test eax, eax
jg 0x140028102
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
and eax, 1
mov dword [rsp + 0x24], eax
je 0x140027e92
mov rax, qword [rbx + 0x40]
movzx esi, byte [rbx + 0x6e4]
test rax, rax
je 0x1400281b9
add rax, rsi
mov qword [rbx + 0x40], rax
cmp rax, qword [rbx + 0x50]
jb 0x14002806c
mov dword [rbx + 0x98], 1
mov byte [rbx + 0x6e4], 0
jmp 0x14002809e
movsxd rdx, esi
add rax, rdx
mov qword [rbx + 0x40], rax
cmp rax, qword [rbx + 0x50]
jb 0x14002808f
mov dword [rbx + 0x98], 1
mov byte [rbx + 0x6e4], 0
test esi, esi
je 0x1400281d9
mov rcx, rbx
call sym.next_segment
mov esi, eax
mov rax, qword [rbx + 0x40]
test rax, rax
jne 0x140028075
mov rcx, qword [rbx + 0x30]
call sym.ftell
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
lea edx, [rsi + rax]
call sym.fseek
jmp 0x14002808f
mov rcx, qword [rbx + 0x30]
call sym.fgetc
cmp eax, 0xffffffff
jne 0x140027ec3
jmp 0x140027e7a
mov rcx, qword [rbx + 0x30]
call sym.fgetc
cmp eax, 0xffffffff
jne 0x140027cef
jmp 0x140027c17
mov rdx, qword [rbx + 0x50]
jmp 0x140027c4f
lea edx, [rax*8]
mov rcx, rbx
call sym.setup_malloc
mov qword [rbx + 0x28], rax
test rax, rax
je 0x1400281a7
xor edi, edi
cmp dword [rbx + 0x20], edi
jle 0x140028022
mov rcx, rbx
lea r15, [rdi*8]
call sym.get32_packet
mov rbp, qword [rbx + 0x28]
mov rcx, rbx
movsxd rsi, eax
lea edx, [rsi + 1]
add rbp, r15
call sym.setup_malloc
mov qword [rbp], rax
mov rax, qword [rbx + 0x28]
cmp qword [rax + rdi*8], 0
je 0x1400281a7
xor ebp, ebp
jmp 0x140028186
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
mov r8d, eax
mov rax, qword [rbx + 0x28]
mov rax, qword [rax + r15]
mov byte [rax + rbp], r8b
add rbp, 1
cmp esi, ebp
jg 0x140028161
mov rax, qword [rbx + 0x28]
add rdi, 1
mov rax, qword [rax + r15]
mov byte [rax + rsi], 0
jmp 0x140028120
mov qword [rbp + 0x838], 0
mov dword [rbx + 0x9c], 3
xor r12d, r12d
jmp 0x140027bd2
mov rcx, qword [rbx + 0x30]
call sym.ftell
movzx edx, sil
mov rcx, qword [rbx + 0x30]
xor r8d, r8d
add edx, eax
call sym.fseek
jmp 0x14002806c
mov rcx, rbx
call sym.start_packet
test eax, eax
je 0x140027bd2
cmp byte [rbx + 0x5c], 0
jne 0x140028623
xor edx, edx
lea rcx, [0x14124a0a0]
mov eax, edx
mov r8d, 8
shl eax, 0x18
lea r9d, [rax + rax]
sar eax, 0x1f
and eax, 0x4c11db7
xor eax, r9d
sub r8d, 1
jne 0x140028207
mov dword [rcx + rdx*4], eax
add rdx, 1
cmp rdx, 0x100
jne 0x1400281fc
mov rcx, rbx
mov dword [rsp + 0x30], r8d
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
cmp eax, 5
jne 0x140027e92
xor esi, esi
mov rcx, rbx
call sym.get8_packet_raw
mov dword [rbx + 0x6f8], 0
mov byte [r13 + rsi], al
add rsi, 1
cmp rsi, 6
jne 0x14002824e
mov r8d, 6
mov rdx, r14
mov rcx, r13
call sym.memcmp
test eax, eax
jne 0x140027e92
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov rcx, rbx
add eax, 1
mov dword [rbx + 0xb0], eax
imul edx, eax, 0x848
movsxd rsi, eax
call sym.setup_malloc
mov qword [rbx + 0xb8], rax
mov rcx, rax
test rax, rax
je 0x1400281a7
imul r8, rsi, 0x848
xor edx, edx
call sym.memset
mov dword [rsp + 0x20], r12d
mov qword [rsp + 0x28], 0
mov eax, dword [rsp + 0x28]
cmp dword [rbx + 0xb0], eax
jle 0x1400286da
mov edx, 8
mov rcx, rbx
imul rbp, qword [rsp + 0x28], 0x848
add rbp, qword [rbx + 0xb8]
call sym.get_bits
cmp al, 0x42
jne 0x1400286d0
mov edx, 8
mov rcx, rbx
call sym.get_bits
cmp al, 0x43
jne 0x1400286d0
mov edx, 8
mov rcx, rbx
call sym.get_bits
cmp al, 0x56
jne 0x1400286d0
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov esi, eax
call sym.get_bits
movzx esi, sil
mov edx, 8
mov rcx, rbx
shl eax, 8
add eax, esi
mov dword [rbp], eax
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov edi, eax
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov esi, eax
call sym.get_bits
shl esi, 8
movzx edx, dil
mov rcx, rbx
shl eax, 0x10
add eax, edx
movzx edx, si
add eax, edx
mov edx, 1
mov dword [rbp + 4], eax
call sym.get_bits
test eax, eax
je 0x140028645
cmp dword [rbp], 0
mov r15d, dword [rbp + 4]
mov byte [rbp + 0x1b], 0
jne 0x1400283d0
test r15d, r15d
jne 0x1400286d0
mov edx, r15d
mov rcx, rbx
call sym.setup_malloc
mov qword [rbp + 8], rax
mov r13, rax
test rax, rax
je 0x1400281a7
mov edx, 5
mov rcx, rbx
xor esi, esi
call sym.get_bits
lea edi, [rax + 1]
jmp 0x140028440
mov ecx, r15d
sub ecx, esi
call sym.ilog
mov rcx, rbx
mov edx, eax
call sym.get_bits
movsxd r8, eax
cmp edi, 0x1f
jg 0x1400286d0
lea r12d, [rsi + r8]
cmp r12d, dword [rbp + 4]
jg 0x1400286d0
movsxd rcx, esi
mov edx, edi
mov esi, r12d
add edi, 1
add rcx, r13
call sym.memset
mov r15d, dword [rbp + 4]
cmp r15d, esi
jg 0x1400283ff
xor r14d, r14d
cmp byte [rbp + 0x1b], 0
jne 0x140028874
xor edx, edx
xor eax, eax
jmp 0x14002846f
movzx edi, byte [r13 + rax]
lea ecx, [rdi - 0xb]
cmp cl, 0xf4
adc edx, 0
add rax, 1
cmp r15d, eax
jg 0x14002845c
mov dword [rbp + 0x840], edx
mov rcx, rbx
lea edx, [r15*4]
call sym.setup_malloc
mov qword [rbp + 0x28], rax
test rax, rax
je 0x1400281a7
mov r15d, dword [rbp + 4]
xor r14d, r14d
lea rsi, [rsp + 0x60]
xor eax, eax
mov ecx, 0x20
mov rdi, rsi
rep stosd dword [rdi], eax
xor eax, eax
jmp 0x1400284c6
movzx edx, byte [r13 + rax]
add rax, 1
add dl, 1
jne 0x14002897a
mov r10d, eax
mov edi, eax
cmp r15d, eax
jg 0x1400284b3
cmp r15d, eax
jne 0x14002897a
cmp dword [rbp + 0x840], 0
jne 0x140028a68
cmp byte [rbp + 0x1b], 0
je 0x14002853c
cmp qword [rbx + 0x80], 0
mov eax, dword [rbp + 0x840]
je 0x140028ef7
lea eax, [rax*4 + 7]
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
mov eax, dword [rbp + 0x840]
shl eax, 2
add eax, 7
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
mov eax, dword [rbp + 4]
add eax, 7
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
mov qword [rbp + 0x28], 0
lea rdi, [rbp + 0x38]
mov eax, ebp
mov qword [rbp + 0x30], 0xffffffffffffffff
mov qword [rbp + 0x828], 0xffffffffffffffff
and rdi, 0xfffffffffffffff8
sub eax, edi
lea ecx, [rax + 0x830]
or rax, 0xffffffffffffffff
shr ecx, 3
rep stosq qword [rdi], rax
movzx r10d, byte [rbp + 0x1b]
test r10b, r10b
je 0x140028df5
mov r9d, dword [rbp + 0x840]
mov eax, 0x7fff
mov esi, 1
cmp r9d, eax
cmovg r9d, eax
xor r8d, r8d
jmp 0x14002859a
add r8, 1
cmp r9d, r8d
jle 0x140028dce
mov r11, qword [rbp + 8]
add r11, r8
cmp byte [r11], 0xa
ja 0x140028596
test r10b, r10b
je 0x140028b93
mov rax, qword [rbp + 0x830]
mov edx, dword [rax + r8*4]
mov eax, edx
add edx, edx
shr eax, 1
and edx, 0xaaaaaaaa
and eax, 0x55555555
or eax, edx
mov edx, eax
shl eax, 2
shr edx, 2
and eax, 0xcccccccc
and edx, 0x33333333
or edx, eax
mov eax, edx
shl edx, 4
shr eax, 4
and edx, 0xf0f0f0f0
and eax, 0xf0f0f0f
or eax, edx
bswap eax
jmp 0x140028617
mov edx, eax
mov word [rbp + rdx*2 + 0x30], r8w
movzx ecx, byte [r11]
mov edx, esi
shl edx, cl
add eax, edx
cmp eax, 0x3ff
jbe 0x140028605
jmp 0x140028596
mov rcx, rbx
call sym.is_whole_packet_present
test eax, eax
jne 0x1400281f3
cmp dword [rbx + 0x9c], 0x15
jne 0x140027bd2
jmp 0x140027e92
mov edx, 1
mov rcx, rbx
call sym.get_bits
cmp dword [rbp], 0
mov byte [rbp + 0x1b], al
jne 0x140028661
cmp dword [rbp + 4], 0
jne 0x1400286d0
mov edx, dword [rbp + 4]
mov rcx, rbx
test al, al
je 0x140028f4e
call sym.setup_temp_malloc
mov r13, rax
test rax, rax
je 0x1400281a7
xor r14d, r14d
xor esi, esi
jmp 0x1400286a2
mov edx, 1
mov rcx, rbx
call sym.get_bits
test eax, eax
jne 0x1400286b3
mov byte [r13 + rsi], 0xff
add rsi, 1
movzx eax, byte [rbp + 0x1b]
cmp dword [rbp + 4], esi
jle 0x14002886b
test al, al
jne 0x140028687
mov edx, 5
mov rcx, rbx
add r14d, 1
call sym.get_bits
add eax, 1
mov byte [r13 + rsi], al
cmp al, 0x20
jne 0x14002869e
mov r12d, dword [rsp + 0x20]
jmp 0x140027e92
mov edx, 6
mov rcx, rbx
mov r12d, dword [rsp + 0x20]
xor edi, edi
call sym.get_bits
lea esi, [rax + 1]
movzx esi, sil
jmp 0x14002870f
mov edx, 0x10
mov rcx, rbx
call sym.get_bits
test eax, eax
jne 0x140027e92
add edi, 1
cmp edi, esi
jl 0x1400286f7
mov edx, 6
mov rcx, rbx
call sym.get_bits
mov rcx, rbx
add eax, 1
mov dword [rbx + 0xc0], eax
imul edx, eax, 0x63c
call sym.setup_malloc
mov qword [rbx + 0x148], rax
test rax, rax
je 0x1400281a7
mov dword [rsp + 0x20], 0
xor eax, eax
lea rdi, [rsp + 0x60]
mov dword [rsp + 0x28], r12d
mov r12, rax
cmp dword [rbx + 0xc0], r12d
jle 0x140029158
mov edx, 0x10
mov rcx, rbx
call sym.get_bits
mov word [rbx + r12*2 + 0xc4], ax
cmp ax, 1
ja 0x14002914e
imul rsi, r12, 0x63c
add rsi, qword [rbx + 0x148]
test ax, ax
je 0x140028fa3
mov edx, 5
mov rcx, rbx
xor r13d, r13d
or ebp, 0xffffffff
call sym.get_bits
mov byte [rsi], al
jmp 0x1400287d7
mov edx, 4
mov rcx, rbx
call sym.get_bits
mov byte [rsi + r13 + 1], al
movzx eax, al
cmp ebp, eax
cmovl ebp, eax
add r13, 1
movzx eax, byte [rsi]
cmp eax, r13d
jg 0x1400287b9
xor r14d, r14d
cmp ebp, r14d
jl 0x1400290a7
mov edx, 3
mov rcx, rbx
call sym.get_bits
mov edx, 2
mov rcx, rbx
add eax, 1
mov byte [rsi + r14 + 0x21], al
call sym.get_bits
mov byte [rsi + r14 + 0x31], al
test al, al
jne 0x140029084
mov r13, r14
xor r15d, r15d
shl r13, 4
add r13, rsi
jmp 0x140028850
mov edx, 8
mov rcx, rbx
call sym.get_bits
sub eax, 1
mov word [r13 + r15*2 + 0x52], ax
add r15, 1
cwde
cmp eax, dword [rbx + 0xb0]
jge 0x140029060
movzx ecx, byte [rsi + r14 + 0x31]
mov eax, 1
shl eax, cl
cmp eax, r15d
jg 0x140028829
add r14, 1
jmp 0x1400287e2
mov r15d, dword [rbp + 4]
jmp 0x14002844c
mov eax, r15d
sar eax, 2
cmp eax, r14d
jg 0x1400288de
cmp dword [rbx + 0x10], r15d
jge 0x14002888d
mov dword [rbx + 0x10], r15d
mov r15d, dword [rbp + 4]
mov rcx, rbx
mov edx, r15d
call sym.setup_malloc
mov qword [rbp + 8], rax
mov rcx, rax
test rax, rax
je 0x1400281a7
movsxd r8, dword [rbp + 4]
mov rdx, r13
call sym.memcpy
cmp qword [rbx + 0x80], 0
mov eax, dword [rbp + 4]
je 0x14002890c
add eax, 7
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
mov r13, qword [rbp + 8]
mov r15d, dword [rbp + 4]
mov byte [rbp + 0x1b], 0
jmp 0x140028456
mov dword [rbp + 0x840], r14d
test r14d, r14d
jne 0x140028916
xor r14d, r14d
mov eax, dword [rbp + 0x840]
lea eax, [r15 + rax*8]
cmp eax, dword [rbx + 0x10]
jbe 0x14002849e
mov dword [rbx + 0x10], eax
mov r15d, dword [rbp + 4]
jmp 0x14002849e
mov rcx, r13
call sym.free
jmp 0x1400288cd
mov edx, r14d
mov rcx, rbx
call sym.setup_malloc
mov qword [rbp + 8], rax
test rax, rax
je 0x1400281a7
mov eax, dword [rbp + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call sym.setup_temp_malloc
mov qword [rbp + 0x28], rax
test rax, rax
je 0x1400281a7
mov eax, dword [rbp + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call sym.setup_temp_malloc
mov r14, rax
test rax, rax
je 0x1400281a7
mov r15d, dword [rbp + 4]
jmp 0x1400288ed
movsxd rax, edi
lea r12, [r13 + rax]
cmp byte [r12], 0x1f
ja 0x140028f68
cmp byte [rbp + 0x1b], 0
movzx ecx, byte [r12]
mov rdx, qword [rbp + 0x28]
jne 0x140028f3a
mov dword [rdx + rax*4], 0
xor eax, eax
mov r8d, 0x20
mov edx, 1
jmp 0x1400289c5
mov ecx, r8d
mov r11d, edx
sub ecx, eax
shl r11d, cl
mov dword [rsi + rax*4], r11d
movzx ecx, byte [r12]
add rax, 1
cmp ecx, eax
jge 0x1400289b6
mov eax, dword [rsp + 0x24]
add edi, 1
mov qword [rsp + 0x4c0], rbx
lea r12, [0x1401d3f62]
mov dword [rsp + 0x38], r15d
movsxd rdi, edi
mov r15, rsi
movsxd rbx, eax
cmp dword [rsp + 0x38], edi
jle 0x1400299b1
movzx eax, byte [r13 + rdi]
mov esi, eax
cmp eax, 0xff
je 0x1400299ad
cmp eax, 0x1f
jg 0x14002998e
movzx eax, sil
jmp 0x140028a33
sub rax, 1
mov esi, dword [r15 + rax*4 + 4]
test esi, esi
jne 0x140029900
mov r9d, eax
test rax, rax
jne 0x140028a22
cmp byte [rbp + 0x1b], 0
mov r12d, dword [rsp + 0x20]
mov rcx, r14
mov rbx, qword [rsp + 0x4c0]
je 0x140027e92
cmp qword [rbx + 0x80], 0
jne 0x140027e92
jmp 0x14002983d
mov r8d, 0x446
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3f38]
call qword [sym.imp.msvcrt.dll__assert]
mov eax, dword [rbp + 0x840]
test eax, eax
je 0x1400284e6
lea edx, [rax*4 + 4]
mov rcx, rbx
call sym.setup_malloc
mov qword [rbp + 0x830], rax
test rax, rax
je 0x1400281a7
mov eax, dword [rbp + 0x840]
mov rcx, rbx
lea edx, [rax*4 + 4]
call sym.setup_malloc
test rax, rax
je 0x14002819c
lea rdx, [rax + 4]
xor r8d, r8d
mov qword [rbp + 0x838], rdx
mov dword [rax], 0xffffffff
cmp byte [rbp + 0x1b], 0
jne 0x140028d64
mov r12, qword [sym.imp.msvcrt.dll__assert]
xor r15d, r15d
xor edi, edi
lea rsi, [0x1401d3f74]
jmp 0x140028b0b
sub eax, 0xb
cmp al, 0xf3
jbe 0x140028b37
add rdi, 1
cmp dword [rbp + 4], edi
jle 0x140028ba0
cmp byte [rbp + 0x1b], 0
movzx eax, byte [r13 + rdi]
je 0x140028b00
add al, 1
jne 0x140028b37
mov r8d, 0x493
lea rdx, [0x1401d3e40]
mov rcx, rsi
call r12
mov rax, qword [rbp + 0x28]
movsxd rcx, r15d
add r15d, 1
mov eax, dword [rax + rdi*4]
mov edx, eax
add eax, eax
shr edx, 1
and eax, 0xaaaaaaaa
and edx, 0x55555555
or edx, eax
mov eax, edx
shl edx, 2
shr eax, 2
and edx, 0xcccccccc
and eax, 0x33333333
or eax, edx
mov edx, eax
shl eax, 4
shr edx, 4
and eax, 0xf0f0f0f0
and edx, 0xf0f0f0f
or eax, edx
mov rdx, qword [rbp + 0x830]
bswap eax
mov dword [rdx + rcx*4], eax
jmp 0x140028b07
mov rax, qword [rbp + 0x28]
mov eax, dword [rax + r8*4]
jmp 0x140028617
cmp r15d, dword [rbp + 0x840]
je 0x140028bc3
mov r8d, 0x4a7
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3f83]
call qword [sym.imp.msvcrt.dll__assert]
mov rcx, qword [rbp + 0x830]
movsxd rdx, dword [rbp + 0x840]
lea r9, [sym.uint32_compare]
mov r8d, 4
call sym.qsort
movsxd rdx, dword [rbp + 0x840]
mov rax, qword [rbp + 0x830]
mov dword [rax + rdx*4], 0xffffffff
cmp byte [rbp + 0x1b], 0
je 0x140028dc5
mov r12d, dword [rbp + 0x840]
movzx eax, byte [rbp + 0x1b]
xor esi, esi
mov edi, esi
cmp r12d, esi
jle 0x1400284e6
test al, al
je 0x140028dad
mov eax, dword [r14 + rsi*4]
movzx r15d, byte [r13 + rax]
cmp r15b, 0xff
je 0x140028d83
mov rax, qword [rbp + 0x28]
mov r8, qword [rbp + 0x830]
xor r9d, r9d
mov eax, dword [rax + rsi*4]
mov edx, eax
add eax, eax
shr edx, 1
and eax, 0xaaaaaaaa
and edx, 0x55555555
or edx, eax
mov eax, edx
shl edx, 2
shr eax, 2
and edx, 0xcccccccc
and eax, 0x33333333
or eax, edx
mov edx, eax
shl eax, 4
shr edx, 4
and eax, 0xf0f0f0f0
and edx, 0xf0f0f0f
or eax, edx
mov edx, dword [rbp + 0x840]
bswap eax
jmp 0x140028ca5
mov ecx, edx
sar ecx, 1
lea r10d, [rcx + r9]
movsxd r11, r10d
cmp dword [r8 + r11*4], eax
jbe 0x140028d79
mov edx, ecx
cmp edx, 1
jg 0x140028c8e
lea r10, [r9*4]
cmp dword [r8 + r9*4], eax
je 0x140028ce6
mov qword [rsp + 0x40], r10
mov r8d, 0x4c5
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3fa0]
mov qword [rsp + 0x38], r9
call qword [sym.imp.msvcrt.dll__assert]
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
mov rax, qword [rbp + 0x838]
add rax, r10
cmp byte [rbp + 0x1b], 0
je 0x140028da2
mov edx, dword [r14 + rsi*4]
mov dword [rax], edx
mov rax, qword [rbp + 8]
mov byte [rax + r9], r15b
movzx eax, byte [rbp + 0x1b]
add rsi, 1
jmp 0x140028c0f
mov rax, qword [rbp + 0x28]
mov eax, dword [rax + r8*4]
mov edx, eax
add eax, eax
shr edx, 1
and eax, 0xaaaaaaaa
and edx, 0x55555555
or edx, eax
mov eax, edx
shl edx, 2
shr eax, 2
and edx, 0xcccccccc
and eax, 0x33333333
or eax, edx
mov edx, eax
shl eax, 4
shr edx, 4
and eax, 0xf0f0f0f0
and edx, 0xf0f0f0f
or eax, edx
bswap eax
mov dword [rcx + r8*4], eax
add r8, 1
mov rcx, qword [rbp + 0x830]
cmp dword [rbp + 0x840], r8d
jg 0x140028d15
jmp 0x140028bca
sub edx, ecx
movsxd r9, r10d
jmp 0x140028ca5
mov r8d, 0x493
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3f74]
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x140028c36
mov dword [rax], edi
movzx eax, byte [rbp + 0x1b]
jmp 0x140028d0c
movzx r15d, byte [r13 + rsi]
lea edx, [r15 - 0xb]
cmp dl, 0xf3
ja 0x140028d0c
jmp 0x140028c36
mov r12d, dword [rbp + 4]
jmp 0x140028c09
mov edx, 4
mov rcx, rbx
call sym.get_bits
mov byte [rbp + 0x19], al
cmp al, 2
ja 0x1400286d0
test al, al
jne 0x140028dfe
add qword [rsp + 0x28], 1
jmp 0x1400282de
mov r9d, dword [rbp + 4]
jmp 0x140028580
mov edx, 0x20
mov rcx, rbx
call sym.get_bits
mov ecx, eax
call sym.float32_unpack
mov edx, 0x20
mov rcx, rbx
movss dword [rbp + 0x10], xmm0
call sym.get_bits
mov ecx, eax
call sym.float32_unpack
mov edx, 4
mov rcx, rbx
movss dword [rbp + 0x14], xmm0
call sym.get_bits
mov edx, 1
mov rcx, rbx
add eax, 1
mov byte [rbp + 0x18], al
call sym.get_bits
cmp byte [rbp + 0x19], 1
mov byte [rbp + 0x1a], al
je 0x14002963e
mov eax, dword [rbp + 4]
imul eax, dword [rbp]
mov dword [rbp + 0x1c], eax
test eax, eax
je 0x1400286d0
lea edx, [rax + rax]
mov rcx, rbx
call sym.setup_temp_malloc
mov r13, rax
test rax, rax
je 0x1400281a7
xor esi, esi
jmp 0x140028ea9
movzx edx, byte [rbp + 0x18]
mov rcx, rbx
call sym.get_bits
cmp eax, 0xffffffff
je 0x1400298d8
mov word [r13 + rsi*2], ax
add rsi, 1
mov r8d, dword [rbp + 0x1c]
cmp r8d, esi
jg 0x140028e8a
cmp byte [rbp + 0x19], 1
jne 0x140029877
movzx esi, byte [rbp + 0x1b]
test esi, esi
je 0x140029854
mov eax, dword [rbp + 0x840]
test eax, eax
jne 0x140029722
cmp qword [rbx + 0x80], 0
je 0x140029715
lea eax, [r8 + r8 + 7]
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
jmp 0x140028dea
mov rcx, r14
call sym.free
mov eax, dword [rbp + 0x840]
mov rcx, qword [rbp + 0x28]
cmp qword [rbx + 0x80], 0
jne 0x140028f9b
call sym.free
cmp qword [rbx + 0x80], 0
mov eax, dword [rbp + 4]
jne 0x140028528
mov rcx, r13
call sym.free
jmp 0x140028534
mov dword [rdx], 0
mov rax, qword [rbp + 8]
mov byte [rax], cl
mov dword [r14], r10d
jmp 0x1400289a7
call sym.setup_malloc
mov qword [rbp + 8], rax
mov r13, rax
test rax, rax
jne 0x140028680
jmp 0x1400281a7
mov dword [rsp + 0x40], r10d
mov r8d, 0x447
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3f4f]
mov qword [rsp + 0x38], rax
call qword [sym.imp.msvcrt.dll__assert]
mov r10d, dword [rsp + 0x40]
mov rax, qword [rsp + 0x38]
jmp 0x14002898d
shl eax, 2
jmp 0x140028519
mov edx, 8
mov rcx, rbx
xor edi, edi
call sym.get_bits
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call sym.get_bits
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call sym.get_bits
mov edx, 6
mov rcx, rbx
mov word [rsi + 4], ax
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov byte [rsi + 6], al
call sym.get_bits
mov edx, 4
mov rcx, rbx
mov byte [rsi + 7], al
call sym.get_bits
add eax, 1
mov byte [rsi + 8], al
movzx eax, byte [rsi + 8]
cmp eax, edi
jle 0x140029072
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov byte [rsi + rdi + 9], al
add rdi, 1
jmp 0x140029009
mov rcx, rdi
lea r9, [sym.point_compare]
mov r8d, 4
call sym.qsort
mov ecx, dword [rsi + 0x638]
xor eax, eax
lea edx, [rcx - 1]
cmp edx, eax
jle 0x140029d2e
movzx r8d, word [rdi + rax*4]
add rax, 1
cmp r8w, word [rdi + rax*4]
jne 0x140029048
mov dword [rbx + 0x9c], 0x14
xor r12d, r12d
jmp 0x140027bd2
mov dword [rbx + 0x9c], 4
xor r12d, r12d
jmp 0x140027bd2
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov byte [rsi + r14 + 0x41], al
movzx eax, al
cmp eax, dword [rbx + 0xb0]
jl 0x14002881a
jmp 0x140029060
mov edx, 2
mov rcx, rbx
xor ebp, ebp
call sym.get_bits
mov rcx, rbx
mov edx, 4
add eax, 1
mov byte [rsi + 0x634], al
call sym.get_bits
mov word [rsi + 0x152], 0
mov ecx, eax
mov byte [rsi + 0x635], al
mov eax, 1
mov dword [rsi + 0x638], 2
shl eax, cl
mov word [rsi + 0x154], ax
movzx eax, byte [rsi]
cmp eax, ebp
jle 0x140029b36
movzx r14d, byte [rsi + rbp + 1]
xor r13d, r13d
jmp 0x14002913d
movzx edx, byte [rsi + 0x635]
mov rcx, rbx
add r13d, 1
call sym.get_bits
movsxd rdx, dword [rsi + 0x638]
mov r8d, eax
mov word [rsi + rdx*2 + 0x152], r8w
mov rax, rdx
add eax, 1
mov dword [rsi + 0x638], eax
movzx eax, byte [rsi + r14 + 0x21]
cmp r13d, eax
jl 0x14002910b
add rbp, 1
jmp 0x1400290f5
mov r12d, dword [rsp + 0x28]
jmp 0x140027e92
mov edx, 6
mov rcx, rbx
mov r12d, dword [rsp + 0x28]
call sym.get_bits
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x150], eax
movsxd rsi, eax
shl eax, 5
mov edx, eax
call sym.setup_malloc
mov qword [rbx + 0x1d8], rax
mov rcx, rax
test rax, rax
je 0x1400281a7
shl rsi, 5
xor edx, edx
xor ebp, ebp
mov r8, rsi
call sym.memset
cmp dword [rbx + 0x150], ebp
jle 0x140029342
mov rsi, rbp
mov edx, 0x10
mov rcx, rbx
shl rsi, 5
add rsi, qword [rbx + 0x1d8]
call sym.get_bits
mov word [rbx + rbp*2 + 0x154], ax
cmp ax, 2
ja 0x14002932f
mov edx, 0x18
mov rcx, rbx
call sym.get_bits
mov edx, 0x18
mov rcx, rbx
mov dword [rsi], eax
call sym.get_bits
mov dword [rsi + 4], eax
cmp eax, dword [rsi]
jb 0x14002932f
mov edx, 0x18
mov rcx, rbx
call sym.get_bits
mov edx, 6
mov rcx, rbx
add eax, 1
mov dword [rsi + 8], eax
call sym.get_bits
mov edx, 8
mov rcx, rbx
add eax, 1
mov byte [rsi + 0xc], al
call sym.get_bits
mov byte [rsi + 0xd], al
movzx eax, al
cmp eax, dword [rbx + 0xb0]
jge 0x14002932f
xor edi, edi
movzx eax, byte [rsi + 0xc]
cmp eax, edi
jle 0x140029298
mov edx, 3
mov rcx, rbx
call sym.get_bits
mov edx, 1
mov rcx, rbx
mov r13d, eax
call sym.get_bits
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x140029289
mov edx, 5
mov rcx, rbx
call sym.get_bits
lea eax, [r13 + rax*8]
mov byte [rsp + rdi + 0x60], al
add rdi, 1
jmp 0x14002924d
shl eax, 4
mov rcx, rbx
mov edx, eax
call sym.setup_malloc
mov qword [rsi + 0x18], rax
test rax, rax
je 0x140029b1a
xor r13d, r13d
movzx eax, byte [rsi + 0xc]
cmp eax, r13d
jle 0x140029a37
mov r14, r13
xor edi, edi
lea r15, [rsp + 0x60]
shl r14, 4
movzx eax, byte [r15 + r13]
mov ecx, edi
sar eax, cl
test al, 1
jne 0x1400292fc
movsxd rax, edi
add rax, rax
add rax, qword [rsi + 0x18]
mov word [rax + r14], 0xffff
add edi, 1
cmp edi, 8
jne 0x1400292d0
add r13, 1
jmp 0x1400292b5
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov rdx, qword [rsi + 0x18]
mov r8d, eax
movsxd rax, edi
add rax, rax
add rdx, rax
mov word [rdx + r14], r8w
add rax, qword [rsi + 0x18]
movsx eax, word [rax + r14]
cmp eax, dword [rbx + 0xb0]
jl 0x1400292ee
mov eax, 0x14
mov dword [rbx + 0x9c], eax
xor r12d, r12d
jmp 0x140027bd2
mov edx, 6
mov rcx, rbx
call sym.get_bits
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x1e0], eax
imul edx, eax, 0x30
movsxd rsi, eax
call sym.setup_malloc
mov qword [rbx + 0x1e8], rax
mov rcx, rax
test rax, rax
je 0x1400281a7
imul r8, rsi, 0x30
xor edx, edx
xor edi, edi
call sym.memset
cmp dword [rbx + 0x1e0], edi
jle 0x140029473
mov edx, 0x10
imul rsi, rdi, 0x30
mov rcx, rbx
add rsi, qword [rbx + 0x1e8]
call sym.get_bits
test eax, eax
jne 0x140027e92
imul edx, dword [rbx + 4], 3
mov rcx, rbx
call sym.setup_malloc
mov qword [rsi + 8], rax
test rax, rax
je 0x1400281a7
mov edx, 1
mov rcx, rbx
call sym.get_bits
mov r8d, eax
movzx eax, byte [rsp + 0x37]
test r8d, r8d
je 0x1400293f5
mov edx, 4
mov rcx, rbx
call sym.get_bits
add eax, 1
mov byte [rsi + 0x10], al
mov edx, 1
mov rcx, rbx
call sym.get_bits
test eax, eax
jne 0x140029b62
mov word [rsi], 0
mov edx, 2
mov rcx, rbx
call sym.get_bits
test eax, eax
jne 0x140027e92
xor ebp, ebp
xor eax, eax
cmp byte [rsi + 0x10], 1
jbe 0x140029623
cmp dword [rbx + 4], ebp
jle 0x14002950d
mov edx, 4
mov rcx, rbx
call sym.get_bits
mov rdx, qword [rsi + 8]
mov r8d, eax
lea rax, [rbp + rbp*2]
add rbp, 1
mov byte [rdx + rax + 2], r8b
mov rdx, qword [rsi + 8]
movzx ecx, byte [rsi + 0x10]
cmp byte [rdx + rax + 2], cl
jb 0x140029435
jmp 0x140027e92
mov edx, 6
mov rcx, rbx
lea rsi, [rbx + 0x1f4]
xor edi, edi
call sym.get_bits
add eax, 1
mov dword [rbx + 0x1f0], eax
cmp edi, dword [rbx + 0x1f0]
jge 0x14002956f
mov edx, 1
mov rcx, rbx
call sym.get_bits
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call sym.get_bits
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov word [rsi + 4], ax
call sym.get_bits
cmp word [rsi + 2], 0
mov byte [rsi + 1], al
jne 0x140027e92
cmp word [rsi + 4], 0
jne 0x140027e92
add rsi, 6
movzx eax, al
cmp eax, dword [rbx + 0x1e0]
jge 0x140027e92
add edi, 1
jmp 0x140029492
xor ebp, ebp
movzx eax, byte [rsi + 0x10]
cmp eax, ebp
jle 0x14002961a
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov edx, 8
mov rcx, rbx
call sym.get_bits
mov edx, 8
mov rcx, rbx
mov byte [rsi + rbp + 0x11], al
call sym.get_bits
movzx edx, byte [rsi + rbp + 0x11]
mov byte [rsi + rbp + 0x20], al
cmp edx, dword [rbx + 0xc0]
jge 0x140027e92
add rbp, 1
movzx eax, al
cmp eax, dword [rbx + 0x150]
jl 0x14002950f
jmp 0x140027e92
mov rcx, rbx
call sym.get8_packet_raw
add eax, 1
jne 0x14002956f
mov dword [rbx + 0x4f8], 0
mov ebp, dword [rsp + 0x20]
xor esi, esi
add ebp, ebp
cmp dword [rbx + 4], esi
jle 0x140029bff
movsxd rdi, dword [rbx + 0xac]
mov rcx, rbx
lea edx, [rdi*4]
shl rdi, 2
call sym.setup_malloc
mov rdx, rdi
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x378], rax
shr rdx, 1
mov r13, rax
call sym.setup_malloc
mov edx, ebp
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x478], rax
mov r14, rax
call sym.setup_malloc
mov qword [rbx + rsi*8 + 0x500], rax
add rsi, 1
test r14, r14
sete dl
test r13, r13
sete cl
or dl, cl
jne 0x1400281a7
test rax, rax
je 0x1400281a7
mov r8, rdi
xor edx, edx
mov rcx, r13
call sym.memset
jmp 0x14002958e
add rdi, 1
jmp 0x140029386
cmp dword [rbx + 4], eax
jle 0x14002950d
lea rdx, [rax + rax*2]
add rdx, qword [rsi + 8]
add rax, 1
mov byte [rdx + 2], 0
jmp 0x140029623
mov edi, dword [rbp + 4]
pxor xmm0, xmm0
mov r13d, dword [rbp]
pxor xmm6, xmm6
cvtsi2ss xmm0, edi
cvtss2sd xmm0, xmm0
call sym.log
pxor xmm1, xmm1
cvtsi2ss xmm1, r13d
cvtsd2ss xmm0, xmm0
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
call sym.exp
pxor xmm1, xmm1
movss xmm7, dword [0x1401d4678]
cvttsd2si esi, xmm0
cvtsi2sd xmm1, r13d
cvtsi2ss xmm6, esi
movsd qword [rsp + 0x38], xmm1
movaps xmm0, xmm6
addss xmm0, xmm7
cvtss2sd xmm0, xmm0
call sym.pow
call sym.floor
movsd xmm1, qword [rsp + 0x38]
cvttsd2si eax, xmm0
cmp edi, eax
jl 0x1400296c1
add esi, 1
pxor xmm6, xmm6
cvtsi2ss xmm6, esi
addss xmm7, xmm6
pxor xmm0, xmm0
movsd qword [rsp + 0x38], xmm1
cvtss2sd xmm0, xmm7
call sym.pow
pxor xmm2, xmm2
cvtsi2sd xmm2, edi
comisd xmm2, xmm0
jae 0x1400286d0
movsd xmm1, qword [rsp + 0x38]
pxor xmm0, xmm0
cvtss2sd xmm0, xmm6
call sym.pow
call sym.floor
cvttsd2si eax, xmm0
cmp edi, eax
jl 0x1400286d0
mov eax, esi
jmp 0x140028e64
mov rcx, r13
call sym.free
jmp 0x140028dea
imul eax, dword [rbp]
mov rcx, rbx
lea edx, [rax*4]
call sym.setup_malloc
mov qword [rbp + 0x20], rax
test rax, rax
je 0x14002981a
mov edi, dword [rbp + 0x840]
xor r9d, r9d
pxor xmm1, xmm1
mov r11d, r9d
mov r12d, r9d
cmp edi, r9d
jle 0x14002980d
test esi, esi
je 0x14002976d
mov rax, qword [rbp + 0x838]
mov r11d, dword [rax + r9*4]
xor r10d, r10d
mov ecx, 1
mov r8d, dword [rbp]
cmp r8d, r10d
jle 0x140029804
xor edx, edx
mov eax, r11d
pxor xmm0, xmm0
div ecx
xor edx, edx
div dword [rbp + 0x1c]
movsxd rdx, edx
movzx eax, word [r13 + rdx*2]
mov rdx, qword [rbp + 0x20]
cvtsi2ss xmm0, eax
mulss xmm0, dword [rbp + 0x14]
mov eax, r8d
imul eax, r12d
addss xmm0, dword [rbp + 0x10]
addss xmm0, xmm1
add eax, r10d
cdqe
movss dword [rdx + rax*4], xmm0
cmp byte [rbp + 0x1a], 0
je 0x1400297cb
movaps xmm1, xmm0
add r10d, 1
cmp r10d, dword [rbp]
jge 0x140029775
mov r8d, dword [rbp + 0x1c]
mov eax, ecx
mul r8d
mov ecx, eax
jno 0x140029775
cmp qword [rbx + 0x80], 0
mov r12d, dword [rsp + 0x20]
je 0x14002983a
lea eax, [r8 + r8 + 7]
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
jmp 0x140027e92
add r9, 1
jmp 0x14002974f
mov byte [rbp + 0x19], 2
mov r8d, dword [rbp + 0x1c]
jmp 0x140028ed6
mov eax, dword [rbp + 0x1c]
add eax, eax
cmp qword [rbx + 0x80], 0
je 0x140029847
add eax, 7
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
jmp 0x1400281a7
mov rcx, r13
call sym.free
jmp 0x140027e92
mov rcx, r13
call sym.free
jmp 0x1400281a7
mov edx, dword [rbp]
imul edx, dword [rbp + 4]
mov rcx, rbx
shl edx, 2
call sym.setup_malloc
mov qword [rbp + 0x20], rax
test rax, rax
je 0x14002981a
mov edi, dword [rbp + 4]
jmp 0x140029748
lea edx, [r8*4]
mov rcx, rbx
call sym.setup_malloc
mov qword [rbp + 0x20], rax
test rax, rax
je 0x14002981a
xor eax, eax
pxor xmm1, xmm1
jmp 0x1400298ca
movzx edx, word [r13 + rax*2]
pxor xmm0, xmm0
cvtsi2ss xmm0, edx
mulss xmm0, dword [rbp + 0x14]
mov rdx, qword [rbp + 0x20]
addss xmm0, dword [rbp + 0x10]
addss xmm0, xmm1
movss dword [rdx + rax*4], xmm0
cmp byte [rbp + 0x1a], 0
je 0x1400298c6
movaps xmm1, xmm0
add rax, 1
cmp dword [rbp + 0x1c], eax
jg 0x140029898
mov r8d, dword [rbp + 0x1c]
jmp 0x140028ed6
cmp qword [rbx + 0x80], 0
mov r12d, dword [rsp + 0x20]
mov eax, dword [rbp + 0x1c]
je 0x14002983a
lea eax, [rax + rax + 7]
and eax, 0xfffffff8
add dword [rbx + 0x94], eax
jmp 0x140027e92
mov r8d, esi
lea edx, [rsi + rsi]
movsxd rax, r9d
shr r8d, 1
and edx, 0xaaaaaaaa
mov dword [rsp + rax*4 + 0x60], 0
lea eax, [rbx + 1]
and r8d, 0x55555555
movzx ecx, byte [r13 + rdi]
or edx, r8d
mov r8d, edx
shl edx, 2
shr r8d, 2
and edx, 0xcccccccc
and r8d, 0x33333333
or edx, r8d
mov r8d, edx
shl edx, 4
shr r8d, 4
and edx, 0xf0f0f0f0
and r8d, 0xf0f0f0f
or edx, r8d
cmp byte [rbp + 0x1b], 0
bswap edx
jne 0x140029a0d
mov rcx, qword [rbp + 0x28]
mov dword [rcx + rdi*4], edx
movzx edx, byte [r13 + rdi]
mov rbx, rdx
cmp r9d, edx
jne 0x1400299be
add rdi, 1
movsxd rbx, eax
jmp 0x1400289f6
mov r8d, 0x455
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3f5b]
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x140028a1c
mov eax, ebx
jmp 0x140029982
mov rbx, qword [rsp + 0x4c0]
jmp 0x140028a82
mov qword [rsp + 0x40], r13
mov r13d, eax
mov qword [rsp + 0x48], rdi
mov edi, esi
mov esi, r9d
jmp 0x1400299ea
mov ecx, 0x20
mov edx, 1
sub ecx, ebx
shl edx, cl
add edx, edi
mov dword [r15 + rbx*4], edx
sub rbx, 1
cmp esi, ebx
jge 0x140029a25
cmp dword [r15 + rbx*4], 0
je 0x1400299d2
mov r8d, 0x464
lea rdx, [0x1401d3e40]
mov rcx, r12
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x1400299d2
mov r8, qword [rbp + 0x28]
mov dword [r8 + rbx*4], edx
mov rdx, qword [rbp + 8]
mov byte [rdx + rbx], cl
mov dword [r14 + rbx*4], edi
jmp 0x140029974
mov eax, r13d
mov rdi, qword [rsp + 0x48]
mov r13, qword [rsp + 0x40]
jmp 0x140029982
movzx eax, byte [rsi + 0xd]
mov rcx, rbx
imul rax, rax, 0x848
add rax, qword [rbx + 0xb8]
mov edx, dword [rax + 4]
shl edx, 3
call sym.setup_malloc
mov qword [rsi + 0x10], rax
mov rcx, rax
test rax, rax
je 0x140029b1a
movzx eax, byte [rsi + 0xd]
xor edx, edx
xor edi, edi
imul rax, rax, 0x848
add rax, qword [rbx + 0xb8]
movsxd r8, dword [rax + 4]
shl r8, 3
call sym.memset
movzx eax, byte [rsi + 0xd]
mov r13d, edi
imul rax, rax, 0x848
add rax, qword [rbx + 0xb8]
cmp dword [rax + 4], edi
jle 0x140029b2d
mov r14d, dword [rax]
mov r8, qword [rsi + 0x10]
lea r15, [rdi*8]
mov rcx, rbx
add r8, r15
mov edx, r14d
mov qword [rsp + 0x28], r8
call sym.setup_malloc
mov r8, qword [rsp + 0x28]
mov qword [r8], rax
mov rax, qword [rsi + 0x10]
cmp qword [rax + rdi*8], 0
je 0x140029b1a
xor ecx, ecx
movsxd r9, r14d
add rcx, 1
cmp r14d, ecx
js 0x140029b24
mov rax, qword [rsi + 0x10]
movzx r8d, byte [rsi + 0xc]
mov r10, r9
sub r10, rcx
mov r11, qword [rax + r15]
mov eax, r13d
cdq
idiv r8d
mov eax, r13d
mov byte [r11 + r10], dl
movzx r8d, byte [rsi + 0xc]
cdq
idiv r8d
mov r13d, eax
jmp 0x140029ae2
mov eax, 3
jmp 0x140029334
add rdi, 1
jmp 0x140029a8a
add rbp, 1
jmp 0x1400291a6
movsxd rdx, dword [rsi + 0x638]
xor eax, eax
cmp edx, eax
jle 0x140029028
movzx ecx, word [rsi + rax*2 + 0x152]
mov r8d, eax
shl r8d, 0x10
or ecx, r8d
mov dword [rdi + rax*4], ecx
add rax, 1
jmp 0x140029b3f
mov edx, 8
mov rcx, rbx
call sym.get_bits
add eax, 1
mov word [rsi], ax
movzx eax, ax
cmp eax, dword [rbx + 4]
jg 0x140027e92
xor r13d, r13d
movzx eax, word [rsi]
cmp eax, r13d
jle 0x140029412
mov eax, dword [rbx + 4]
lea rbp, [r13 + r13*2]
lea ecx, [rax - 1]
call sym.ilog
mov rcx, rbx
mov edx, eax
call sym.get_bits
mov rdx, qword [rsi + 8]
mov byte [rdx + rbp], al
mov eax, dword [rbx + 4]
lea ecx, [rax - 1]
call sym.ilog
mov rcx, rbx
mov edx, eax
call sym.get_bits
mov rdx, qword [rsi + 8]
mov byte [rdx + rbp + 1], al
add rbp, qword [rsi + 8]
movzx eax, byte [rbp]
mov ecx, dword [rbx + 4]
mov edx, eax
cmp eax, ecx
jge 0x140027e92
movzx r8d, byte [rbp + 1]
cmp ecx, r8d
jle 0x140027e92
add r13, 1
cmp dl, r8b
jne 0x140029b84
jmp 0x140027e92
mov r8d, dword [rbx + 0xa8]
xor edx, edx
mov rcx, rbx
call sym.init_blocksize
test eax, eax
je 0x140027bd2
mov r8d, dword [rbx + 0xac]
mov edx, 1
mov rcx, rbx
call sym.init_blocksize
test eax, eax
je 0x140027bd2
movq xmm0, qword [rbx + 0xa8]
mov r8d, 2
xor r9d, r9d
xor r10d, r10d
mov r11d, dword [rbx + 0x150]
movq qword [rbx + 0xa0], xmm0
pshufd xmm4, xmm0, 0xe5
movd eax, xmm4
cdq
movsxd rcx, eax
idiv r8d
shl rcx, 2
shr rcx, 1
mov r8d, eax
cmp r11d, r10d
jle 0x140029cae
mov rdx, r10
mov rdi, qword [rbx + 0x1d8]
shl rdx, 5
add rdi, rdx
mov eax, dword [rdi + 4]
mov esi, dword [rdi]
cmp r8d, eax
cmovbe eax, r8d
cmp r8d, esi
cmovbe esi, r8d
xor edx, edx
sub eax, esi
div dword [rdi + 8]
cmp r9d, eax
cmovl r9d, eax
add r10, 1
jmp 0x140029c71
lea eax, [r9 + 1]
imul eax, dword [rbx + 4]
shl eax, 3
cmp eax, ecx
cmovb eax, ecx
cmp qword [rbx + 0x80], 0
mov dword [rbx + 0xc], eax
je 0x140029d14
mov eax, dword [rbx + 0x88]
cmp dword [rbx + 0x94], eax
je 0x140029cf3
mov r8d, 0x105b
lea rdx, [0x1401d3e40]
lea rcx, [0x1401d3fc0]
call qword [sym.imp.msvcrt.dll__assert]
mov eax, dword [rbx + 0xc]
movsxd rdx, dword [rbx + 0x90]
lea rdx, [rdx + rax + 0x770]
mov eax, dword [rbx + 0x94]
cmp rdx, rax
ja 0x1400281a7
cmp dword [rbx + 0x6e8], 0xffffffff
je 0x140029d46
mov dword [rbx + 0x60], 0
mov r12d, dword [rsp + 0x24]
jmp 0x140027bd2
xor eax, eax
cmp ecx, eax
jle 0x140029d71
movzx edx, word [rdi + rax*4 + 2]
mov byte [rsi + rax + 0x346], dl
add rax, 1
jmp 0x140029d30
cmp byte [rbx + 0x5c], 0
jne 0x140029d60
mov rax, qword [rbx + 0x40]
test rax, rax
je 0x140029e0c
sub eax, dword [rbx + 0x48]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov r12d, dword [rsp + 0x24]
mov dword [rbx + 0x60], eax
jmp 0x140027bd2
mov eax, 2
mov r15, rbx
mov r14d, eax
cmp ecx, eax
jle 0x140029df3
xor r9d, r9d
xor r10d, r10d
xor edx, edx
mov ebp, 0x10000
or r11d, 0xffffffff
mov rbx, r15
movzx r8d, word [rsi + rdx*2 + 0x152]
mov r15d, edx
mov r13d, r8d
cmp r8d, r11d
jle 0x140029db9
cmp r8w, word [rsi + rax*2 + 0x152]
cmovb r10d, edx
cmovb r11d, r8d
cmp r8d, ebp
jge 0x140029dcf
cmp r13w, word [rsi + rax*2 + 0x152]
cmova r9d, r15d
cmova ebp, r8d
add rdx, 1
cmp r14d, edx
jg 0x140029d94
xor edx, edx
mov r15, rbx
mov ebx, r9d
mov dl, r10b
mov dh, bl
mov word [rsi + rax*2 + 0x440], dx
add rax, 1
jmp 0x140029d79
mov eax, dword [rsp + 0x20]
mov rbx, r15
cmp eax, ecx
cmovge ecx, eax
add r12, 1
mov dword [rsp + 0x20], ecx
jmp 0x14002875e
mov rcx, qword [rbx + 0x30]
call sym.ftell
sub eax, dword [rbx + 0x38]
mov dword [rsp + 0x30], eax
jmp 0x140029d60