Function at 0x22dbe7a10
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x488
movaps xmmword [rsp + 0x460], xmm6
movaps xmmword [rsp + 0x470], xmm7
mov rax, qword [rcx + 0x28]
mov rbx, rcx
test rax, rax
je 0x22dbe7b10
lea rdx, [rax + 6]
cmp rdx, qword [rcx + 0x38]
jbe 0x22dbe7a90
movabs rax, 0xa00000001
xor r12d, r12d
mov qword [rbx + 0x80], rax
movaps xmm6, xmmword [rsp + 0x460]
movaps xmm7, xmmword [rsp + 0x470]
mov eax, r12d
add rsp, 0x488
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, dword [rax]
mov dword [rsp + 0x6a], ecx
movzx eax, word [rax + 4]
mov qword [rbx + 0x28], rdx
mov word [rsp + 0x6e], ax
mov eax, dword [str.vorbis]
cmp dword [rsp + 0x6a], eax
je 0x22dbe7ac0
mov dword [rbx + 0x84], 0x22
xor r12d, r12d
jmp 0x22dbe7a61
movzx eax, word [0x22dd0d824]
cmp word [rsp + 0x6e], ax
jne 0x22dbe7aaf
mov rcx, rbx
xor r12d, r12d
call fcn.22dbb1810
mov r15d, eax
test eax, eax
jne 0x22dbe7aaf
mov rcx, rbx
call fcn.22dbb17b0
movzx eax, al
mov dword [rbx + 4], eax
test eax, eax
je 0x22dbe7aaf
cmp eax, 0x10
jle 0x22dbe7b40
mov dword [rbx + 0x84], 5
jmp 0x22dbe7a61
mov r9, qword [rbx + 0x18]
lea rcx, [rsp + 0x6a]
mov r8d, 1
mov edx, 6
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x22dbe7a4d
jmp 0x22dbe7aa3
mov rcx, rbx
call fcn.22dbb1810
mov dword [rbx], eax
test eax, eax
je 0x22dbe7aaf
mov rcx, rbx
call fcn.22dbb1810
mov rcx, rbx
call fcn.22dbb1810
mov rcx, rbx
call fcn.22dbb1810
mov rcx, rbx
call fcn.22dbb17b0
mov edx, 1
mov ecx, eax
mov r9d, eax
mov r8d, edx
shr al, 4
and ecx, 0xf
and r9d, 0xf
movzx r10d, al
shl r8d, cl
mov ecx, eax
lea eax, [r9 - 6]
shl edx, cl
movd xmm0, r8d
movd xmm5, edx
punpckldq xmm0, xmm5
movq qword [rbx + 0x90], xmm0
cmp eax, 7
ja 0x22dbe7d70
lea eax, [r10 - 6]
cmp eax, 7
ja 0x22dbe7d70
cmp r9d, r10d
jg 0x22dbe7d70
mov rcx, rbx
call fcn.22dbb17b0
and eax, 1
mov byte [rsp + 0x4b], al
je 0x22dbe7aaf
mov rcx, rbx
call fcn.22dbb19c0
test eax, eax
je 0x22dbe7a61
mov rcx, rbx
call fcn.22dbb1b30
test eax, eax
je 0x22dbe7a61
mov rbp, qword [sym.imp.msvcrt.dll__assert]
lea rdi, [0x22dd8ab30]
lea rsi, [0x22dd8abb9]
jmp 0x22dbe7cc0
mov edx, dword [rbx + 0x6d0]
mov eax, dword [rbx + 0x5c8]
cmp edx, 0xffffffff
je 0x22dbe7db1
lea eax, [rdx + 1]
movsxd rcx, edx
mov dword [rbx + 0x6d0], eax
movzx r13d, byte [rbx + rcx + 0x5cc]
mov r14d, r13d
cmp r13d, 0xff
je 0x22dbe7c61
mov dword [rbx + 0x6d4], 1
mov dword [rbx + 0x6d8], edx
cmp eax, dword [rbx + 0x5c8]
mov edx, 0xffffffff
cmovge eax, edx
cmp byte [rbx + 0x6cc], 0
mov dword [rbx + 0x6d0], eax
jne 0x22dbe7d9e
mov byte [rbx + 0x6cc], r14b
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x22dbe7d7f
movsxd rdx, r13d
add rax, rdx
mov qword [rbx + 0x28], rax
cmp rax, qword [rbx + 0x38]
jb 0x22dbe7cb0
mov dword [rbx + 0x80], 1
mov byte [rbx + 0x6cc], 0
test r13d, r13d
je 0x22dbe7df4
mov r13d, dword [rbx + 0x6d4]
test r13d, r13d
je 0x22dbe7c1b
mov rax, qword [rbx + 0x28]
xor r13d, r13d
jmp 0x22dbe7c8d
mov edx, 1
mov rcx, rbx
call fcn.22dbb2050
cmp dword [r14], 0
mov byte [r14 + 0x1b], al
jne 0x22dbe7cf7
cmp dword [r14 + 4], 0
jne 0x22dbe7d69
mov edx, dword [r14 + 4]
mov rcx, rbx
test al, al
je 0x22dbe852b
call fcn.22dbb10b0
mov r13, rax
test rax, rax
je 0x22dbe8540
xor r15d, r15d
xor esi, esi
jmp 0x22dbe7d39
mov edx, 1
mov rcx, rbx
call fcn.22dbb2050
test eax, eax
jne 0x22dbe7d4c
mov byte [r13 + rsi], 0xff
add rsi, 1
movzx eax, byte [r14 + 0x1b]
cmp dword [r14 + 4], esi
jle 0x22dbe8476
test al, al
jne 0x22dbe7d1e
mov edx, 5
mov rcx, rbx
add r15d, 1
call fcn.22dbb2050
add eax, 1
mov byte [r13 + rsi], al
cmp al, 0x20
jne 0x22dbe7d35
mov r12d, dword [rsp + 0x2c]
nop
mov dword [rbx + 0x84], 0x14
jmp 0x22dbe7a61
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_ftell
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
lea edx, [r13 + rax]
call sub.msvcrt.dll_fseek
jmp 0x22dbe7cb0
mov r8d, 0x5f2
mov rdx, rdi
mov rcx, rsi
call rbp
jmp 0x22dbe7c82
sub eax, 1
mov dword [rbx + 0x6d8], eax
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x22dbe820a
cmp rax, qword [rbx + 0x38]
jb 0x22dbe81bf
mov dword [rbx + 0x80], 1
mov dword [rbx + 0x84], 0x1e
mov dword [rbx + 0x6d4], 1
jmp 0x22dbe7c8d
mov rcx, rbx
call fcn.22dbb1b30
test eax, eax
je 0x22dbe7a61
cmp byte [rbx + 0x44], 0
jne 0x22dbe81e3
mov rax, qword [0x22ddb2e20]
movdqa xmm4, xmmword [0x22dd8dff0]
pxor xmm0, xmm0
movdqa xmm5, xmmword [0x22dd8e000]
movdqa xmm1, xmmword [0x22dd8e010]
lea rdx, [rax + 0x400]
nop dword [rax + rax]
movdqa xmm2, xmm4
add rax, 0x10
paddd xmm4, xmm5
movdqa xmm3, xmm2
movdqa xmm7, xmm2
movdqa xmm2, xmm0
pslld xmm3, 0x18
pslld xmm7, 0x19
pcmpgtd xmm2, xmm3
movdqa xmm6, xmm7
movdqa xmm3, xmm0
pxor xmm6, xmm1
pand xmm6, xmm2
pandn xmm2, xmm7
por xmm2, xmm6
movdqa xmm7, xmm2
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm0
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
pand xmm6, xmm3
pandn xmm3, xmm7
por xmm3, xmm6
movdqa xmm7, xmm3
pcmpgtd xmm2, xmm3
movdqa xmm3, xmm0
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
pand xmm6, xmm2
pandn xmm2, xmm7
por xmm2, xmm6
movdqa xmm7, xmm2
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm0
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
pand xmm6, xmm3
pandn xmm3, xmm7
por xmm3, xmm6
movdqa xmm7, xmm3
pcmpgtd xmm2, xmm3
movdqa xmm3, xmm0
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
pand xmm6, xmm2
pandn xmm2, xmm7
por xmm2, xmm6
movdqa xmm7, xmm2
pcmpgtd xmm3, xmm2
movdqa xmm2, xmm0
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
pand xmm6, xmm3
pandn xmm3, xmm7
por xmm3, xmm6
movdqa xmm7, xmm3
pcmpgtd xmm2, xmm3
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
movdqa xmm3, xmm6
pand xmm3, xmm2
pandn xmm2, xmm7
por xmm2, xmm3
movdqa xmm3, xmm0
movdqa xmm7, xmm2
pcmpgtd xmm3, xmm2
pslld xmm7, 1
movdqa xmm6, xmm7
pxor xmm6, xmm1
movdqa xmm2, xmm6
pand xmm2, xmm3
pandn xmm3, xmm7
por xmm3, xmm2
movaps xmmword [rax - 0x10], xmm3
cmp rdx, rax
jne 0x22dbe7e40
mov rcx, rbx
call fcn.22dbb1eb0
mov dword [rbx + 0x6e0], 0
cmp eax, 5
jne 0x22dbe7d70
lea rax, [rsp + 0x70]
lea r13, [rsp + 0x6a]
mov qword [rsp + 0x30], rax
mov rsi, r13
mov rcx, rbx
add rsi, 1
call fcn.22dbb1eb0
mov dword [rbx + 0x6e0], 0
mov byte [rsi - 1], al
cmp qword [rsp + 0x30], rsi
jne 0x22dbe7fbf
mov r8d, 6
lea rdx, str.vorbis
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x22dbe7d70
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x98], eax
imul edx, eax, 0x848
movsxd rsi, eax
call fcn.22dbb1070
mov qword [rbx + 0xa0], rax
mov rcx, rax
test rax, rax
je 0x22dbe8540
imul r8, rsi, 0x848
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x5c], r15d
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x2c], r12d
mov eax, dword [rsp + 0x38]
cmp dword [rbx + 0x98], eax
jle 0x22dbe82c4
mov edx, 8
mov rcx, rbx
imul r14, qword [rsp + 0x38], 0x848
add r14, qword [rbx + 0xa0]
call fcn.22dbb2050
cmp al, 0x42
jne 0x22dbe7d69
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
cmp al, 0x43
jne 0x22dbe7d69
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
cmp al, 0x56
jne 0x22dbe7d69
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
mov esi, eax
call fcn.22dbb2050
movzx esi, sil
mov edx, 8
mov rcx, rbx
shl eax, 8
add eax, esi
mov dword [r14], eax
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
mov edi, eax
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
movzx edi, dil
mov esi, eax
call fcn.22dbb2050
shl esi, 8
mov rcx, rbx
shl eax, 0x10
movzx edx, si
add eax, edi
add eax, edx
mov edx, 1
mov dword [r14 + 4], eax
call fcn.22dbb2050
test eax, eax
je 0x22dbe7cd9
cmp dword [r14], 0
mov esi, dword [r14 + 4]
mov byte [r14 + 0x1b], 0
jne 0x22dbe814a
test esi, esi
jne 0x22dbe7d69
mov edx, esi
mov rcx, rbx
call fcn.22dbb1070
mov qword [r14 + 8], rax
mov r13, rax
test rax, rax
je 0x22dbe8540
mov edx, 5
mov rcx, rbx
xor ebp, ebp
call fcn.22dbb2050
lea edi, [rax + 1]
jmp 0x22dbe81af
sub esi, ebp
mov ecx, esi
call fcn.22dbb10f0
mov rcx, rbx
mov edx, eax
call fcn.22dbb2050
movsxd r8, eax
lea esi, [rbp + r8]
cmp esi, dword [r14 + 4]
jg 0x22dbe7d69
movsxd rcx, ebp
mov edx, edi
mov ebp, esi
add edi, 1
add rcx, r13
call sub.msvcrt.dll_memset
mov esi, dword [r14 + 4]
cmp esi, ebp
jg 0x22dbe8178
xor r15d, r15d
jmp 0x22dbe847a
lea rdx, [rax + 1]
mov qword [rbx + 0x28], rdx
movzx eax, byte [rax]
cmp al, 0x4f
jne 0x22dbe81da
mov rcx, rbx
call fcn.22dbb17b0
cmp al, 0x67
je 0x22dbe8221
mov rax, qword [rbx + 0x28]
jmp 0x22dbe7ddb
mov edx, 1
mov rcx, rbx
call fcn.22dbb54f0
test eax, eax
jne 0x22dbe7e0e
cmp dword [rbx + 0x84], 0x15
jne 0x22dbe7a61
jmp 0x22dbe7d70
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x22dbe81ca
mov rax, qword [rbx + 0x28]
jmp 0x22dbe7dd1
mov rcx, rbx
call fcn.22dbb17b0
cmp al, 0x67
jne 0x22dbe81da
mov rcx, rbx
call fcn.22dbb17b0
cmp al, 0x53
mov rax, qword [rbx + 0x28]
jne 0x22dbe7ddb
test rax, rax
je 0x22dbe82ab
cmp rax, qword [rbx + 0x38]
jb 0x22dbe8276
mov dword [rbx + 0x80], 1
mov rcx, rbx
call fcn.22dbdeec0
test eax, eax
je 0x22dbe82bb
test byte [rbx + 0x6cb], 1
je 0x22dbe8298
mov edx, dword [rbx + 0x6d0]
jmp 0x22dbe7c30
lea rdx, [rax + 1]
mov qword [rbx + 0x28], rdx
movzx eax, byte [rax]
test al, al
je 0x22dbe8256
mov dword [rbx + 0x84], 0x1f
mov rax, qword [rbx + 0x28]
jmp 0x22dbe7de5
mov dword [rbx + 0x84], 0x20
mov rax, qword [rbx + 0x28]
jmp 0x22dbe7c8d
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x22dbe8281
jmp 0x22dbe824c
mov rax, qword [rbx + 0x28]
jmp 0x22dbe7de5
mov edx, 6
mov rcx, rbx
mov r15d, dword [rsp + 0x5c]
xor edi, edi
mov r12d, dword [rsp + 0x2c]
call fcn.22dbb2050
lea esi, [rax + 1]
movzx esi, sil
jmp 0x22dbe82fe
mov edx, 0x10
mov rcx, rbx
call fcn.22dbb2050
test eax, eax
jne 0x22dbe7d70
add edi, 1
cmp edi, esi
jl 0x22dbe82e6
mov edx, 6
mov rcx, rbx
call fcn.22dbb2050
mov rcx, rbx
add eax, 1
mov dword [rbx + 0xa8], eax
imul edx, eax, 0x63c
call fcn.22dbb1070
mov qword [rbx + 0x130], rax
test rax, rax
je 0x22dbe8540
mov dword [rsp + 0x2c], 0
mov rbp, qword [rsp + 0x30]
xor edi, edi
mov dword [rsp + 0x38], r12d
cmp dword [rbx + 0xa8], edi
jle 0x22dbe8608
mov edx, 0x10
mov rcx, rbx
call fcn.22dbb2050
mov word [rbx + rdi*2 + 0xac], ax
cmp ax, 1
ja 0x22dbe85fe
imul rsi, rdi, 0x63c
add rsi, qword [rbx + 0x130]
test ax, ax
je 0x22dbe8552
mov edx, 5
mov rcx, rbx
xor r14d, r14d
or r13d, 0xffffffff
call fcn.22dbb2050
mov byte [rsi], al
jmp 0x22dbe83c4
mov edx, 4
mov rcx, rbx
call fcn.22dbb2050
mov byte [rsi + r14 + 1], al
movzx eax, al
cmp r13d, eax
cmovl r13d, eax
add r14, 1
movzx eax, byte [rsi]
cmp eax, r14d
jg 0x22dbe83a4
xor r12d, r12d
cmp r13d, r12d
jl 0x22dbe98f3
mov edx, 3
mov rcx, rbx
call fcn.22dbb2050
mov edx, 2
mov rcx, rbx
add eax, 1
mov byte [rsi + r12 + 0x21], al
call fcn.22dbb2050
mov byte [rsi + r12 + 0x31], al
test al, al
jne 0x22dbe98cd
mov r14, r12
xor r8d, r8d
mov qword [rsp + 0x40], rbp
mov rbp, rdi
shl r14, 4
mov rdi, rsi
add r14, rsi
mov rsi, rbx
mov rbx, r8
jmp 0x22dbe844e
mov edx, 8
mov rcx, rsi
call fcn.22dbb2050
sub eax, 1
mov word [r14 + rbx*2 + 0x52], ax
add rbx, 1
cwde
cmp eax, dword [rsi + 0x98]
jge 0x22dbe85e9
movzx ecx, byte [rdi + r12 + 0x31]
mov eax, 1
shl eax, cl
cmp eax, ebx
jg 0x22dbe8427
mov rbx, rsi
add r12, 1
mov rsi, rdi
mov rdi, rbp
mov rbp, qword [rsp + 0x40]
jmp 0x22dbe83cf
mov esi, dword [r14 + 4]
cmp byte [r14 + 0x1b], 0
jne 0x22dbe970b
xor edx, edx
xor eax, eax
jmp 0x22dbe849e
movzx edi, byte [r13 + rax]
lea ecx, [rdi - 0xb]
cmp cl, 0xf4
adc edx, 0
add rax, 1
cmp esi, eax
jg 0x22dbe848b
mov dword [r14 + 0x840], edx
mov rcx, rbx
lea edx, [rsi*4]
call fcn.22dbb1070
mov qword [r14 + 0x28], rax
test rax, rax
je 0x22dbe8540
mov esi, dword [r14 + 4]
xor r15d, r15d
mov rdi, qword [rsp + 0x30]
xor eax, eax
mov ecx, 0x20
rep stosd dword [rdi], eax
xor eax, eax
jmp 0x22dbe84ee
movzx r8d, byte [r13 + rax]
add rax, 1
add r8b, 1
jne 0x22dbe8757
mov ecx, eax
mov edx, eax
cmp esi, eax
jg 0x22dbe84da
cmp esi, eax
jne 0x22dbe8757
cmp dword [r14 + 0x840], 0
je 0x22dbe89c1
mov r8d, 0x427
lea rdx, [0x22dd8ab30]
lea rcx, str.c__sorted_entries__0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dbe89b2
call fcn.22dbb1070
mov qword [r14 + 8], rax
mov r13, rax
test rax, rax
jne 0x22dbe7d17
mov dword [rbx + 0x84], 3
xor r12d, r12d
jmp 0x22dbe7a61
mov edx, 8
mov rcx, rbx
xor edi, edi
call fcn.22dbb2050
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call fcn.22dbb2050
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call fcn.22dbb2050
mov edx, 6
mov rcx, rbx
mov word [rsi + 4], ax
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
mov byte [rsi + 6], al
call fcn.22dbb2050
mov edx, 4
mov rcx, rbx
mov byte [rsi + 7], al
call fcn.22dbb2050
add eax, 1
mov byte [rsi + 8], al
jmp 0x22dbe85cf
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov byte [rsi + rdi + 9], al
add rdi, 1
movzx eax, byte [rsi + 8]
cmp eax, edi
jg 0x22dbe85ba
mov dword [rbx + 0x84], 4
xor r12d, r12d
jmp 0x22dbe7a61
mov rbx, rsi
mov dword [rbx + 0x84], 0x14
xor r12d, r12d
jmp 0x22dbe7a61
mov r12d, dword [rsp + 0x38]
jmp 0x22dbe7d70
mov edx, 6
mov rcx, rbx
mov r12d, dword [rsp + 0x38]
call fcn.22dbb2050
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x138], eax
movsxd rsi, eax
shl eax, 5
mov edx, eax
call fcn.22dbb1070
mov qword [rbx + 0x1c0], rax
mov rcx, rax
test rax, rax
je 0x22dbe8540
shl rsi, 5
xor edx, edx
xor ebp, ebp
mov r8, rsi
call sub.msvcrt.dll_memset
mov dword [rsp + 0x38], r15d
cmp dword [rbx + 0x138], ebp
jle 0x22dbe92c1
mov rsi, rbp
mov edx, 0x10
mov rcx, rbx
shl rsi, 5
add rsi, qword [rbx + 0x1c0]
call fcn.22dbb2050
mov word [rbx + rbp*2 + 0x13c], ax
cmp ax, 2
ja 0x22dbe92ae
mov edx, 0x18
mov rcx, rbx
call fcn.22dbb2050
mov edx, 0x18
mov rcx, rbx
mov dword [rsi], eax
call fcn.22dbb2050
mov dword [rsi + 4], eax
cmp eax, dword [rsi]
jb 0x22dbe92ae
mov edx, 0x18
mov rcx, rbx
call fcn.22dbb2050
mov edx, 6
mov rcx, rbx
add eax, 1
mov dword [rsi + 8], eax
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
add eax, 1
mov byte [rsi + 0xc], al
call fcn.22dbb2050
mov byte [rsi + 0xd], al
movzx eax, al
cmp eax, dword [rbx + 0x98]
jge 0x22dbe92ae
xor r13d, r13d
jmp 0x22dbe8715
lea eax, [rdi + rax*8]
mov rdi, qword [rsp + 0x30]
mov byte [rdi + r13], al
add r13, 1
movzx eax, byte [rsi + 0xc]
cmp eax, r13d
jle 0x22dbe9217
mov edx, 3
mov rcx, rbx
call fcn.22dbb2050
mov edx, 1
mov rcx, rbx
mov edi, eax
call fcn.22dbb2050
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x22dbe8705
mov edx, 5
mov rcx, rbx
call fcn.22dbb2050
jmp 0x22dbe8705
movsxd r9, edx
cmp byte [r14 + 0x1b], 0
mov rax, qword [r14 + 0x28]
lea r8, [r13 + r9]
movzx r10d, byte [r8]
jne 0x22dbe980b
mov dword [rax + r9*4], 0
xor eax, eax
mov r10d, 0x20
mov r9d, 1
jmp 0x22dbe879e
mov ecx, r10d
mov edi, r9d
sub ecx, eax
shl edi, cl
mov ecx, edi
mov rdi, qword [rsp + 0x30]
mov dword [rdi + rax*4], ecx
movzx ecx, byte [r8]
add rax, 1
cmp ecx, eax
jge 0x22dbe878a
mov ebp, 1
mov qword [rsp + 0x4d0], rbx
lea eax, [rdx + 1]
mov rbx, qword [rsp + 0x30]
movsxd r11, ebp
movsxd rdi, eax
mov ebp, esi
mov rsi, r13
mov r13, r14
cmp ebp, edi
jle 0x22dbe89a4
movzx edx, byte [rsi + rdi]
mov rax, rdx
cmp edx, 0xff
je 0x22dbe88ca
test edx, edx
jne 0x22dbe8804
jmp 0x22dbe889a
sub rax, 1
test eax, eax
je 0x22dbe889a
mov r12d, dword [rbx + rax*4]
mov r14d, eax
test r12d, r12d
je 0x22dbe87f8
cmp eax, 0x1f
jg 0x22dbe8946
movsxd rax, r14d
mov edx, r12d
mov dword [rsp + rax*4 + 0x70], 0
lea eax, [r11 + 1]
shr edx, 1
movzx ecx, byte [rsi + rdi]
mov dword [rsp + 0x40], eax
lea eax, [r12 + r12]
and edx, 0x55555555
and eax, 0xaaaaaaaa
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
cmp byte [r13 + 0x1b], 0
mov rdx, qword [r13 + 0x28]
bswap eax
jne 0x22dbe88d1
mov dword [rdx + rdi*4], eax
movzx edx, byte [rsi + rdi]
mov rax, rdx
cmp edx, r14d
jne 0x22dbe88e3
movsxd r11, dword [rsp + 0x40]
add rdi, 1
jmp 0x22dbe87cd
cmp byte [r13 + 0x1b], 0
mov r12d, dword [rsp + 0x2c]
mov rcx, r15
mov rbx, qword [rsp + 0x4d0]
je 0x22dbe7d70
cmp qword [rbx + 0x68], 0
jne 0x22dbe7d70
call sub.msvcrt.dll_free
jmp 0x22dbe7d70
mov dword [rsp + 0x40], r11d
jmp 0x22dbe888c
mov dword [rdx + r11*4], eax
mov rax, qword [r13 + 8]
mov byte [rax + r11], cl
mov dword [r15 + r11*4], edi
jmp 0x22dbe8880
cmp dl, 0x1f
ja 0x22dbe8981
movzx edx, al
cmp edx, r14d
jle 0x22dbe888c
mov dword [rsp + 0x50], ebp
mov rbp, rdi
mov rdi, rsi
mov rsi, rbx
mov rbx, rax
jmp 0x22dbe8923
mov ecx, 0x20
mov eax, 1
sub ecx, ebx
shl eax, cl
add eax, r12d
mov dword [rsi + rbx*4], eax
sub rbx, 1
cmp r14d, ebx
jge 0x22dbe896f
mov eax, dword [rsi + rbx*4]
test eax, eax
je 0x22dbe8906
mov r8d, 0x445
lea rdx, [0x22dd8ab30]
lea rcx, str.available_y___0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dbe8906
mov dword [rsp + 0x40], r11d
mov r8d, 0x43e
lea rdx, [0x22dd8ab30]
lea rcx, str.z___0__z___32
call qword [sym.imp.msvcrt.dll__assert]
movsxd r11, dword [rsp + 0x40]
jmp 0x22dbe8819
mov rbx, rsi
mov rsi, rdi
mov rdi, rbp
mov ebp, dword [rsp + 0x50]
jmp 0x22dbe888c
mov r8d, 0x443
lea rdx, [0x22dd8ab30]
lea rcx, str.len_i____0__len_i____32
call qword [sym.imp.msvcrt.dll__assert]
movzx eax, byte [rsi + rdi]
jmp 0x22dbe88ec
mov rbx, qword [rsp + 0x4d0]
mov r14, r13
mov r13, rsi
mov eax, dword [r14 + 0x840]
test eax, eax
jne 0x22dbe8c29
cmp byte [r14 + 0x1b], 0
je 0x22dbe8a02
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x840]
je 0x22dbe9820
shl eax, 2
add dword [rbx + 0x7c], eax
mov eax, dword [r14 + 0x840]
shl eax, 2
add dword [rbx + 0x7c], eax
mov eax, dword [r14 + 4]
add eax, 3
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
mov qword [r14 + 0x28], 0
lea rdi, [r14 + 0x38]
mov eax, r14d
mov qword [r14 + 0x30], 0xffffffffffffffff
mov qword [r14 + 0x828], 0xffffffffffffffff
and rdi, 0xfffffffffffffff8
sub eax, edi
lea ecx, [rax + 0x830]
or rax, 0xffffffffffffffff
shr ecx, 3
rep stosq qword [rdi], rax
movzx r9d, byte [r14 + 0x1b]
test r9b, r9b
je 0x22dbe8c20
mov r8d, dword [r14 + 0x840]
mov eax, 0x7fff
mov r11d, 1
cmp r8d, eax
cmovg r8d, eax
xor edx, edx
jmp 0x22dbe8a61
add rdx, 1
cmp r8d, edx
jle 0x22dbe8af1
mov r10, qword [r14 + 8]
add r10, rdx
cmp byte [r10], 0xa
ja 0x22dbe8a5d
test r9b, r9b
je 0x22dbe8b19
mov rax, qword [r14 + 0x830]
mov ecx, dword [rax + rdx*4]
mov eax, ecx
add ecx, ecx
shr eax, 1
and ecx, 0xaaaaaaaa
and eax, 0x55555555
or eax, ecx
mov ecx, eax
shl eax, 2
shr ecx, 2
and eax, 0xcccccccc
and ecx, 0x33333333
or ecx, eax
mov eax, ecx
shl ecx, 4
shr eax, 4
and ecx, 0xf0f0f0f0
and eax, 0xf0f0f0f
or eax, ecx
bswap eax
cmp eax, 0x3ff
ja 0x22dbe8a5d
mov esi, edx
mov ecx, eax
mov edi, r11d
mov word [r14 + rcx*2 + 0x30], si
movzx ecx, byte [r10]
shl edi, cl
add eax, edi
cmp eax, 0x3ff
jbe 0x22dbe8ad2
jmp 0x22dbe8a5d
mov edx, 4
mov rcx, rbx
call fcn.22dbb2050
mov byte [r14 + 0x19], al
cmp al, 2
ja 0x22dbe7d69
test al, al
jne 0x22dbe8b22
add qword [rsp + 0x38], 1
jmp 0x22dbe8057
mov rax, qword [r14 + 0x28]
mov eax, dword [rax + rdx*4]
jmp 0x22dbe8ac9
mov edx, 0x20
mov rcx, rbx
call fcn.22dbb2050
mov ecx, eax
call fcn.22dbb11c0
mov edx, 0x20
mov rcx, rbx
movss dword [r14 + 0x10], xmm0
call fcn.22dbb2050
mov ecx, eax
call fcn.22dbb11c0
mov edx, 4
mov rcx, rbx
movss dword [r14 + 0x14], xmm0
call fcn.22dbb2050
mov edx, 1
mov rcx, rbx
add eax, 1
mov byte [r14 + 0x18], al
call fcn.22dbb2050
cmp byte [r14 + 0x19], 1
mov byte [r14 + 0x1a], al
je 0x22dbe8f0a
mov esi, dword [r14 + 4]
imul esi, dword [r14]
mov dword [r14 + 0x1c], esi
test esi, esi
je 0x22dbe7d69
lea edx, [rsi + rsi]
mov rcx, rbx
call fcn.22dbb10b0
mov r13, rax
test rax, rax
je 0x22dbe8540
xor esi, esi
jmp 0x22dbe8bd5
movzx edx, byte [r14 + 0x18]
mov rcx, rbx
call fcn.22dbb2050
cmp eax, 0xffffffff
je 0x22dbe985b
mov word [r13 + rsi*2], ax
add rsi, 1
mov r8d, dword [r14 + 0x1c]
cmp r8d, esi
jg 0x22dbe8bb5
cmp byte [r14 + 0x19], 1
jne 0x22dbe9183
movzx edi, byte [r14 + 0x1b]
test edi, edi
je 0x22dbe915e
mov eax, dword [r14 + 0x840]
test eax, eax
jne 0x22dbe9036
cmp qword [rbx + 0x68], 0
je 0x22dbe9029
lea eax, [r8 + r8 + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x22dbe8b0e
mov r8d, dword [r14 + 4]
jmp 0x22dbe8a47
lea edx, [rax*4 + 4]
mov rcx, rbx
call fcn.22dbb1070
mov qword [r14 + 0x830], rax
test rax, rax
je 0x22dbe8540
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4 + 4]
call fcn.22dbb1070
test rax, rax
je 0x22dbe8ec8
lea rdx, [rax + 4]
mov qword [r14 + 0x838], rdx
xor edx, edx
mov dword [rax], 0xffffffff
cmp byte [r14 + 0x1b], 0
jne 0x22dbe8d74
mov r12, qword [sym.imp.msvcrt.dll__assert]
xor ebp, ebp
xor edi, edi
lea rsi, str.len___NO_CODE
jmp 0x22dbe8ca4
sub eax, 0xb
cmp al, 0xf3
jbe 0x22dbe8cc3
add rdi, 1
cmp dword [r14 + 4], edi
jle 0x22dbe987e
cmp byte [r14 + 0x1b], 0
movzx eax, byte [r13 + rdi]
je 0x22dbe8c99
add al, 1
je 0x22dbe98b5
mov rax, qword [r14 + 0x28]
movsxd rcx, ebp
add ebp, 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 [r14 + 0x830]
bswap eax
mov dword [rdx + rcx*4], eax
jmp 0x22dbe8ca0
mov rax, qword [r14 + 0x28]
mov eax, dword [rax + rdx*4]
mov r8d, eax
add eax, eax
shr r8d, 1
and eax, 0xaaaaaaaa
and r8d, 0x55555555
or r8d, eax
mov eax, r8d
shl r8d, 2
shr eax, 2
and r8d, 0xcccccccc
and eax, 0x33333333
or eax, r8d
mov r8d, eax
shl eax, 4
shr r8d, 4
and eax, 0xf0f0f0f0
and r8d, 0xf0f0f0f
or eax, r8d
bswap eax
mov dword [rcx + rdx*4], eax
add rdx, 1
mov rcx, qword [r14 + 0x830]
cmp dword [r14 + 0x840], edx
jg 0x22dbe8d1b
movsxd rdx, dword [r14 + 0x840]
lea r9, [0x22dbad580]
mov r8d, 4
call sub.msvcrt.dll_qsort
movsxd rdx, dword [r14 + 0x840]
mov rax, qword [r14 + 0x830]
mov dword [rax + rdx*4], 0xffffffff
cmp byte [r14 + 0x1b], 0
je 0x22dbe8ef3
mov eax, dword [r14 + 0x840]
mov dword [rsp + 0x40], eax
movzx eax, byte [r14 + 0x1b]
xor esi, esi
mov edi, esi
cmp dword [rsp + 0x40], esi
jle 0x22dbe89c1
test al, al
je 0x22dbe8ed8
mov eax, dword [r15 + rsi*4]
movzx ebp, byte [r13 + rax]
cmp bpl, 0xff
je 0x22dbe91ec
mov rax, qword [r14 + 0x28]
mov r8, qword [r14 + 0x830]
xor r12d, r12d
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 [r14 + 0x840]
bswap eax
jmp 0x22dbe8e67
mov ecx, edx
sar ecx, 1
lea r9d, [rcx + r12]
movsxd r10, r9d
cmp dword [r8 + r10*4], eax
jbe 0x22dbe8f00
mov edx, ecx
cmp edx, 1
jg 0x22dbe8e50
lea r9, [r12*4]
cmp dword [r8 + r12*4], eax
je 0x22dbe8e9e
mov qword [rsp + 0x50], r9
mov r8d, 0x4a6
lea rdx, [0x22dd8ab30]
lea rcx, str.c__sorted_codewords_x___code
call qword [sym.imp.msvcrt.dll__assert]
mov r9, qword [rsp + 0x50]
mov rax, qword [r14 + 0x838]
add rax, r9
cmp byte [r14 + 0x1b], 0
je 0x22dbe920b
mov edx, dword [r15 + rsi*4]
mov dword [rax], edx
mov rax, qword [r14 + 8]
mov byte [rax + r12], bpl
movzx eax, byte [r14 + 0x1b]
jmp 0x22dbe8eea
mov qword [r14 + 0x838], 0
jmp 0x22dbe8540
movzx ebp, byte [r13 + rsi]
lea edx, [rbp - 0xb]
cmp dl, 0xf3
jbe 0x22dbe8df7
add rsi, 1
jmp 0x22dbe8dcf
mov eax, dword [r14 + 4]
mov dword [rsp + 0x40], eax
jmp 0x22dbe8dc8
sub edx, ecx
movsxd r12, r9d
jmp 0x22dbe8e67
mov edi, dword [r14 + 4]
pxor xmm0, xmm0
mov ebp, dword [r14]
pxor xmm7, xmm7
cvtsi2ss xmm0, edi
call fcn.22dcea8c0
pxor xmm1, xmm1
cvtsi2ss xmm1, ebp
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
call fcn.22dcf039d
pxor xmm1, xmm1
movss xmm6, dword [0x22dd8e0a0]
cvttsd2si esi, xmm0
cvtsi2sd xmm1, ebp
cvtsi2ss xmm7, esi
movsd qword [rsp + 0x40], xmm1
movaps xmm0, xmm7
addss xmm0, xmm6
cvtss2sd xmm0, xmm0
call fcn.22dcf0862
pxor xmm2, xmm2
movsd xmm1, qword [rsp + 0x40]
cvttsd2si eax, xmm0
cvtsi2sd xmm2, eax
comisd xmm2, xmm0
jbe 0x22dbe8f80
sub eax, 1
cmp edi, eax
jl 0x22dbe8f8f
add esi, 1
pxor xmm7, xmm7
cvtsi2ss xmm7, esi
addss xmm6, xmm7
pxor xmm0, xmm0
movsd qword [rsp + 0x40], xmm1
cvtss2sd xmm0, xmm6
call fcn.22dcf0862
movsd xmm1, qword [rsp + 0x40]
movapd xmm2, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, edi
comisd xmm2, xmm0
jbe 0x22dbe9007
pxor xmm0, xmm0
cvtss2sd xmm0, xmm7
call fcn.22dcf0862
pxor xmm1, xmm1
cvttsd2si eax, xmm0
cvtsi2sd xmm1, eax
comisd xmm1, xmm0
jbe 0x22dbe8fe0
sub eax, 1
cmp edi, eax
jge 0x22dbe8b8e
mov r8d, 0x4c0
lea rdx, [0x22dd8ab30]
lea rcx, str._int__floor_pow__float__r__dim_____entries
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dbe8b8e
mov r8d, 0x4bf
lea rdx, [0x22dd8ab30]
lea rcx, str.pow__float__r1__dim____entries
call qword [sym.imp.msvcrt.dll__assert]
movsd xmm1, qword [rsp + 0x40]
jmp 0x22dbe8fbe
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x22dbe8b0e
imul eax, dword [r14]
mov rcx, rbx
lea edx, [rax*4]
call fcn.22dbb1070
mov qword [r14 + 0x20], rax
test rax, rax
je 0x22dbe912f
mov ebp, dword [r14 + 0x840]
xor r9d, r9d
pxor xmm1, xmm1
mov r11d, r9d
mov esi, r9d
cmp ebp, r9d
jle 0x22dbe9121
test edi, edi
je 0x22dbe9082
mov rax, qword [r14 + 0x838]
mov r11d, dword [rax + r9*4]
xor r10d, r10d
mov ecx, 1
mov r8d, dword [r14]
cmp r8d, r10d
jle 0x22dbe9118
xor edx, edx
mov eax, r11d
pxor xmm0, xmm0
movss xmm2, dword [r14 + 0x10]
div ecx
xor edx, edx
addss xmm2, xmm1
div dword [r14 + 0x1c]
movsxd rdx, edx
movzx eax, word [r13 + rdx*2]
mov rdx, qword [r14 + 0x20]
cvtsi2ss xmm0, eax
mulss xmm0, dword [r14 + 0x14]
mov eax, r8d
imul eax, esi
add eax, r10d
addss xmm0, xmm2
cdqe
movss dword [rdx + rax*4], xmm0
cmp byte [r14 + 0x1a], 0
je 0x22dbe90e6
movaps xmm1, xmm0
add r10d, 1
cmp r10d, dword [r14]
jge 0x22dbe908a
mov r8d, dword [r14 + 0x1c]
mov eax, ecx
mul r8d
mov ecx, eax
jno 0x22dbe908a
cmp qword [rbx + 0x68], 0
mov r12d, dword [rsp + 0x2c]
je 0x22dbe9149
lea eax, [r8 + r8 + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x22dbe7d70
add r9, 1
jmp 0x22dbe9064
mov byte [r14 + 0x19], 2
mov r8d, dword [r14 + 0x1c]
jmp 0x22dbe8c05
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x1c]
je 0x22dbe9151
lea eax, [rax + rax + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x22dbe8540
mov rcx, r13
jmp 0x22dbe88c0
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x22dbe8540
mov edx, dword [r14]
imul edx, dword [r14 + 4]
mov rcx, rbx
shl edx, 2
call fcn.22dbb1070
mov qword [r14 + 0x20], rax
test rax, rax
je 0x22dbe912f
mov ebp, dword [r14 + 4]
jmp 0x22dbe905d
lea edx, [r8*4]
mov rcx, rbx
call fcn.22dbb1070
mov qword [r14 + 0x20], rax
test rax, rax
je 0x22dbe912f
xor eax, eax
pxor xmm1, xmm1
jmp 0x22dbe91dd
movzx edx, word [r13 + rax*2]
pxor xmm0, xmm0
movss xmm2, dword [r14 + 0x10]
cvtsi2ss xmm0, edx
mulss xmm0, dword [r14 + 0x14]
addss xmm2, xmm1
mov rdx, qword [r14 + 0x20]
addss xmm0, xmm2
movss dword [rdx + rax*4], xmm0
cmp byte [r14 + 0x1a], 0
je 0x22dbe91d9
movaps xmm1, xmm0
add rax, 1
cmp dword [r14 + 0x1c], eax
jg 0x22dbe91a4
mov r8d, dword [r14 + 0x1c]
jmp 0x22dbe8c05
mov r8d, 0x474
lea rdx, [0x22dd8ab30]
lea rcx, str.len___NO_CODE
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x22dbe8df7
mov dword [rax], edi
movzx eax, byte [r14 + 0x1b]
jmp 0x22dbe8eea
shl eax, 4
mov rcx, rbx
mov edx, eax
call fcn.22dbb1070
mov qword [rsi + 0x18], rax
test rax, rax
je 0x22dbe9c0c
xor r13d, r13d
movzx eax, byte [rsi + 0xc]
cmp eax, r13d
jle 0x22dbe9a86
mov r14, r13
xor edi, edi
shl r14, 4
jmp 0x22dbe9269
movsxd rax, edi
add rax, rax
add rax, qword [rsi + 0x18]
mov word [rax + r14], 0xffff
add edi, 1
cmp edi, 8
je 0x22dbe9702
mov rax, qword [rsp + 0x30]
mov ecx, edi
movzx eax, byte [rax + r13]
sar eax, cl
test al, 1
je 0x22dbe924c
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
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 + 0x98]
jl 0x22dbe925d
mov eax, 0x14
mov dword [rbx + 0x84], eax
xor r12d, r12d
jmp 0x22dbe7a61
mov edx, 6
mov rcx, rbx
mov r15d, dword [rsp + 0x38]
call fcn.22dbb2050
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x1c8], eax
imul edx, eax, 0x30
movsxd rsi, eax
call fcn.22dbb1070
mov qword [rbx + 0x1d0], rax
mov rcx, rax
test rax, rax
je 0x22dbe8540
imul r8, rsi, 0x30
xor edx, edx
xor edi, edi
call sub.msvcrt.dll_memset
cmp dword [rbx + 0x1c8], edi
jle 0x22dbe93f7
mov edx, 0x10
imul rsi, rdi, 0x30
mov rcx, rbx
add rsi, qword [rbx + 0x1d0]
call fcn.22dbb2050
test eax, eax
jne 0x22dbe7d70
imul edx, dword [rbx + 4], 3
mov rcx, rbx
call fcn.22dbb1070
mov qword [rsi + 8], rax
test rax, rax
je 0x22dbe8540
mov edx, 1
mov rcx, rbx
call fcn.22dbb2050
mov r8d, eax
movzx eax, byte [rsp + 0x4b]
test r8d, r8d
je 0x22dbe9379
mov edx, 4
mov rcx, rbx
call fcn.22dbb2050
add eax, 1
mov byte [rsi + 0x10], al
mov edx, 1
mov rcx, rbx
call fcn.22dbb2050
test eax, eax
jne 0x22dbe95c2
mov word [rsi], 0
mov edx, 2
mov rcx, rbx
call fcn.22dbb2050
test eax, eax
jne 0x22dbe7d70
xor ebp, ebp
xor eax, eax
cmp byte [rsi + 0x10], 1
jbe 0x22dbe95a7
cmp dword [rbx + 4], ebp
jle 0x22dbe9491
mov edx, 4
mov rcx, rbx
call fcn.22dbb2050
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 0x22dbe93b9
jmp 0x22dbe7d70
mov edx, 6
mov rcx, rbx
lea rsi, [rbx + 0x1dc]
xor edi, edi
call fcn.22dbb2050
add eax, 1
mov dword [rbx + 0x1d8], eax
cmp edi, dword [rbx + 0x1d8]
jge 0x22dbe94f3
mov edx, 1
mov rcx, rbx
call fcn.22dbb2050
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call fcn.22dbb2050
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
mov word [rsi + 4], ax
call fcn.22dbb2050
cmp word [rsi + 2], 0
mov byte [rsi + 1], al
jne 0x22dbe7d70
cmp word [rsi + 4], 0
jne 0x22dbe7d70
add rsi, 6
movzx eax, al
cmp eax, dword [rbx + 0x1c8]
jge 0x22dbe7d70
add edi, 1
jmp 0x22dbe9416
xor ebp, ebp
movzx eax, byte [rsi + 0x10]
cmp eax, ebp
jle 0x22dbe959e
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov edx, 8
mov rcx, rbx
mov byte [rsi + rbp + 0x11], al
call fcn.22dbb2050
movzx edx, byte [rsi + rbp + 0x11]
mov byte [rsi + rbp + 0x20], al
cmp edx, dword [rbx + 0xa8]
jge 0x22dbe7d70
add rbp, 1
movzx eax, al
cmp eax, dword [rbx + 0x138]
jl 0x22dbe9493
jmp 0x22dbe7d70
mov rcx, rbx
call fcn.22dbb1eb0
add eax, 1
jne 0x22dbe94f3
mov dword [rbx + 0x4e0], 0
mov ebp, dword [rsp + 0x2c]
xor esi, esi
add ebp, ebp
cmp dword [rbx + 4], esi
jle 0x22dbe9653
movsxd rdi, dword [rbx + 0x94]
mov rcx, rbx
lea edx, [rdi*4]
shl rdi, 2
call fcn.22dbb1070
mov rdx, rdi
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x360], rax
shr rdx, 1
mov r13, rax
call fcn.22dbb1070
mov edx, ebp
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x460], rax
mov r14, rax
call fcn.22dbb1070
mov qword [rbx + rsi*8 + 0x4e8], rax
add rsi, 1
test r13, r13
sete dl
test r14, r14
sete cl
or dl, cl
jne 0x22dbe8540
test rax, rax
je 0x22dbe8540
mov r8, rdi
xor edx, edx
mov rcx, r13
call sub.msvcrt.dll_memset
jmp 0x22dbe9512
add rdi, 1
jmp 0x22dbe930a
cmp dword [rbx + 4], eax
jle 0x22dbe9491
lea rdx, [rax + rax*2]
add rdx, qword [rsi + 8]
add rax, 1
mov byte [rdx + 2], 0
jmp 0x22dbe95a7
mov edx, 8
mov rcx, rbx
xor r13d, r13d
call fcn.22dbb2050
add eax, 1
mov word [rsi], ax
movzx eax, word [rsi]
cmp eax, r13d
jle 0x22dbe9396
mov eax, dword [rbx + 4]
lea rbp, [r13 + r13*2]
lea ecx, [rax - 1]
call fcn.22dbb10f0
mov rcx, rbx
mov edx, eax
call fcn.22dbb2050
mov rdx, qword [rsi + 8]
mov byte [rdx + rbp], al
mov eax, dword [rbx + 4]
lea ecx, [rax - 1]
call fcn.22dbb10f0
mov rcx, rbx
mov edx, eax
call fcn.22dbb2050
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 0x22dbe7d70
movzx r8d, byte [rbp + 1]
cmp ecx, r8d
jle 0x22dbe7d70
add r13, 1
cmp dl, r8b
jne 0x22dbe95d8
jmp 0x22dbe7d70
mov r8d, dword [rbx + 0x90]
xor edx, edx
mov rcx, rbx
call fcn.22dbb1210
test eax, eax
je 0x22dbe7a61
mov r8d, dword [rbx + 0x94]
mov edx, 1
mov rcx, rbx
call fcn.22dbb1210
test eax, eax
je 0x22dbe7a61
movq xmm0, qword [rbx + 0x90]
mov ecx, 2
xor r9d, r9d
xor r10d, r10d
mov r11d, dword [rbx + 0x138]
movq qword [rbx + 0x88], xmm0
pshufd xmm4, xmm0, 0xe5
movd eax, xmm4
movsxd rdx, eax
shl rdx, 2
shr rdx, 1
mov r8, rdx
cdq
idiv ecx
mov ecx, eax
cmp r11d, r10d
jle 0x22dbe9b76
mov rdx, r10
mov rdi, qword [rbx + 0x1c0]
shl rdx, 5
add rdi, rdx
mov eax, dword [rdi + 4]
mov esi, dword [rdi]
cmp ecx, eax
cmovbe eax, ecx
cmp ecx, esi
cmovbe esi, ecx
xor edx, edx
sub eax, esi
div dword [rdi + 8]
cmp r9d, eax
cmovl r9d, eax
add r10, 1
jmp 0x22dbe96c5
add r13, 1
jmp 0x22dbe9234
mov eax, esi
sar eax, 2
cmp eax, r15d
jg 0x22dbe976d
cmp dword [rbx + 0x10], esi
jge 0x22dbe9721
mov dword [rbx + 0x10], esi
mov esi, dword [r14 + 4]
mov rcx, rbx
mov edx, esi
call fcn.22dbb1070
mov qword [r14 + 8], rax
mov rcx, rax
test rax, rax
je 0x22dbe8540
movsxd r8, dword [r14 + 4]
mov rdx, r13
call sub.msvcrt.dll_memcpy
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 4]
je 0x22dbe979b
add eax, 3
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
mov r13, qword [r14 + 8]
mov esi, dword [r14 + 4]
mov byte [r14 + 0x1b], 0
jmp 0x22dbe8485
mov dword [r14 + 0x840], r15d
test r15d, r15d
jne 0x22dbe97a5
xor r15d, r15d
mov eax, dword [r14 + 0x840]
lea eax, [rsi + rax*8]
cmp eax, dword [rbx + 0x10]
jbe 0x22dbe84c8
mov dword [rbx + 0x10], eax
mov esi, dword [r14 + 4]
jmp 0x22dbe84c8
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x22dbe975b
mov edx, r15d
mov rcx, rbx
call fcn.22dbb1070
mov qword [r14 + 8], rax
test rax, rax
je 0x22dbe8540
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call fcn.22dbb10b0
mov qword [r14 + 0x28], rax
test rax, rax
je 0x22dbe8540
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call fcn.22dbb10b0
mov r15, rax
test rax, rax
je 0x22dbe8540
mov esi, dword [r14 + 4]
jmp 0x22dbe977c
mov dword [rax], 0
mov rax, qword [r14 + 8]
mov byte [rax], r10b
mov dword [r15], ecx
jmp 0x22dbe877a
mov rcx, r15
call sub.msvcrt.dll_free
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x840]
mov rcx, qword [r14 + 0x28]
jne 0x22dbe98ad
call sub.msvcrt.dll_free
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 4]
jne 0x22dbe89f1
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x22dbe89fa
cmp qword [rbx + 0x68], 0
mov r12d, dword [rsp + 0x2c]
mov eax, dword [r14 + 0x1c]
je 0x22dbe9149
lea eax, [rax + rax + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x22dbe7d70
cmp ebp, dword [r14 + 0x840]
je 0x22dbe98a1
mov r8d, 0x488
lea rdx, [0x22dd8ab30]
lea rcx, str.k__c__sorted_entries
call qword [sym.imp.msvcrt.dll__assert]
mov rcx, qword [r14 + 0x830]
jmp 0x22dbe8d84
shl eax, 2
jmp 0x22dbe89ea
mov r8d, 0x474
lea rdx, [0x22dd8ab30]
mov rcx, rsi
call r12
jmp 0x22dbe8cc3
mov edx, 8
mov rcx, rbx
call fcn.22dbb2050
mov byte [rsi + r12 + 0x41], al
movzx eax, al
cmp eax, dword [rbx + 0x98]
jl 0x22dbe8407
jmp 0x22dbe85ec
mov edx, 2
mov rcx, rbx
xor r13d, r13d
call fcn.22dbb2050
mov rcx, rbx
mov edx, 4
add eax, 1
mov byte [rsi + 0x634], al
call fcn.22dbb2050
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, r13d
jle 0x22dbe9998
movzx r14d, byte [rsi + r13 + 1]
xor r12d, r12d
jmp 0x22dbe9987
movzx edx, byte [rsi + 0x635]
mov rcx, rbx
add r12d, 1
call fcn.22dbb2050
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 r12d, eax
jl 0x22dbe9955
add r13, 1
jmp 0x22dbe9942
movsxd rdx, dword [rsi + 0x638]
xor eax, eax
jmp 0x22dbe99bd
movzx ecx, word [rsi + rax*2 + 0x152]
mov r8d, eax
shl r8d, 0x10
or ecx, r8d
mov dword [rbp + rax*4], ecx
add rax, 1
cmp edx, eax
jg 0x22dbe99a3
mov rcx, rbp
lea r9, [0x22dbad5a0]
mov r8d, 4
call sub.msvcrt.dll_qsort
mov ecx, dword [rsi + 0x638]
xor eax, eax
jmp 0x22dbe99f0
movzx edx, word [rbp + rax*4 + 2]
mov byte [rsi + rax + 0x346], dl
add rax, 1
cmp ecx, eax
jg 0x22dbe99e0
mov r12d, dword [rsp + 0x58]
mov eax, 2
mov r11, rbx
mov r13d, eax
cmp ecx, eax
jle 0x22dbe9c1f
xor edx, edx
mov r10d, 0x10000
or r9d, 0xffffffff
mov rbx, r11
movzx r8d, word [rsi + rdx*2 + 0x152]
mov r14d, edx
mov r11d, r8d
cmp r8d, r9d
jle 0x22dbe9a40
cmp r8w, word [rsi + rax*2 + 0x152]
cmovb r12d, edx
cmovb r9d, r8d
cmp r8d, r10d
jge 0x22dbe9a5d
cmp r11w, word [rsi + rax*2 + 0x152]
cmovbe r14d, dword [rsp + 0x4c]
cmova r10d, r8d
mov dword [rsp + 0x4c], r14d
add rdx, 1
cmp r13d, edx
jg 0x22dbe9a1b
mov r11, rbx
xor edx, edx
movzx ebx, word [rsp + 0x4c]
mov dl, r12b
mov dh, bl
mov word [rsi + rax*2 + 0x440], dx
add rax, 1
jmp 0x22dbe9a01
movzx eax, byte [rsi + 0xd]
mov rcx, rbx
imul rax, rax, 0x848
add rax, qword [rbx + 0xa0]
mov edx, dword [rax + 4]
shl edx, 3
call fcn.22dbb1070
mov qword [rsi + 0x10], rax
mov rcx, rax
test rax, rax
je 0x22dbe9c0c
movzx eax, byte [rsi + 0xd]
xor edx, edx
xor edi, edi
imul rax, rax, 0x848
add rax, qword [rbx + 0xa0]
movsxd r8, dword [rax + 4]
shl r8, 3
call sub.msvcrt.dll_memset
movzx eax, byte [rsi + 0xd]
mov r13d, edi
imul rax, rax, 0x848
add rax, qword [rbx + 0xa0]
cmp dword [rax + 4], edi
jle 0x22dbe9c16
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 + 0x40], r8
call fcn.22dbb1070
mov r8, qword [rsp + 0x40]
mov qword [r8], rax
mov rax, qword [rsi + 0x10]
cmp qword [rax + rdi*8], 0
je 0x22dbe9c0c
xor ecx, ecx
movsxd r9, r14d
jmp 0x22dbe9b64
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
add rcx, 1
cmp r14d, ecx
jns 0x22dbe9b37
add rdi, 1
jmp 0x22dbe9ad9
lea eax, [r9 + 1]
mov byte [rbx + 0x6cd], 1
imul eax, dword [rbx + 4]
shl eax, 3
cmp eax, r8d
cmovb eax, r8d
cmp qword [rbx + 0x68], 0
mov dword [rbx + 0xc], eax
je 0x22dbe9bd6
mov eax, dword [rbx + 0x70]
cmp dword [rbx + 0x7c], eax
je 0x22dbe9bbb
mov r8d, 0x101b
lea rdx, [0x22dd8ab30]
lea rcx, str.f__temp_offset__f__alloc.alloc_buffer_length_in_bytes
call qword [sym.imp.msvcrt.dll__assert]
mov eax, dword [rbx + 0xc]
movsxd rdx, dword [rbx + 0x78]
lea rdx, [rdx + rax + 0x758]
mov eax, dword [rbx + 0x7c]
cmp rdx, rax
ja 0x22dbe8540
cmp byte [rbx + 0x44], 0
jne 0x22dbe9bec
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x22dbe9bfb
mov r15d, eax
sub r15d, dword [rbx + 0x30]
mov dword [rbx + 0x48], r15d
mov r12d, 1
jmp 0x22dbe7a61
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [rbx + 0x20]
mov r15d, eax
jmp 0x22dbe9bec
mov eax, 3
jmp 0x22dbe92b3
add rbp, 1
jmp 0x22dbe865b
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x58], r12d
mov rbx, r11
cmp eax, ecx
cmovge ecx, eax
add rdi, 1
mov dword [rsp + 0x2c], ecx
jmp 0x22dbe834a