Function at 0x2e3d48c50
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 0x2e3d48d50
lea rdx, [rax + 6]
cmp rdx, qword [rcx + 0x38]
jbe 0x2e3d48cd0
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 0x2e3d48d00
mov dword [rbx + 0x84], 0x22
xor r12d, r12d
jmp 0x2e3d48ca1
movzx eax, word [0x2e3e6a824]
cmp word [rsp + 0x6e], ax
jne 0x2e3d48cef
mov rcx, rbx
xor r12d, r12d
call fcn.2e3d126f0
mov r15d, eax
test eax, eax
jne 0x2e3d48cef
mov rcx, rbx
call fcn.2e3d12690
movzx eax, al
mov dword [rbx + 4], eax
test eax, eax
je 0x2e3d48cef
cmp eax, 0x10
jle 0x2e3d48d80
mov dword [rbx + 0x84], 5
jmp 0x2e3d48ca1
mov r9, qword [rbx + 0x18]
lea rcx, [rsp + 0x6a]
mov r8d, 1
mov edx, 6
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x2e3d48c8d
jmp 0x2e3d48ce3
mov rcx, rbx
call fcn.2e3d126f0
mov dword [rbx], eax
test eax, eax
je 0x2e3d48cef
mov rcx, rbx
call fcn.2e3d126f0
mov rcx, rbx
call fcn.2e3d126f0
mov rcx, rbx
call fcn.2e3d126f0
mov rcx, rbx
call fcn.2e3d12690
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 0x2e3d48fb0
lea eax, [r10 - 6]
cmp eax, 7
ja 0x2e3d48fb0
cmp r9d, r10d
jg 0x2e3d48fb0
mov rcx, rbx
call fcn.2e3d12690
and eax, 1
mov byte [rsp + 0x4b], al
je 0x2e3d48cef
mov rcx, rbx
call fcn.2e3d128a0
test eax, eax
je 0x2e3d48ca1
mov rcx, rbx
call fcn.2e3d12a10
test eax, eax
je 0x2e3d48ca1
mov rbp, qword [sym.imp.msvcrt.dll__assert]
lea rdi, [0x2e3ee7c30]
lea rsi, [0x2e3ee7cb9]
jmp 0x2e3d48f00
mov edx, dword [rbx + 0x6d0]
mov eax, dword [rbx + 0x5c8]
cmp edx, 0xffffffff
je 0x2e3d48ff1
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 0x2e3d48ea1
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 0x2e3d48fde
mov byte [rbx + 0x6cc], r14b
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x2e3d48fbf
movsxd rdx, r13d
add rax, rdx
mov qword [rbx + 0x28], rax
cmp rax, qword [rbx + 0x38]
jb 0x2e3d48ef0
mov dword [rbx + 0x80], 1
mov byte [rbx + 0x6cc], 0
test r13d, r13d
je 0x2e3d49068
mov r13d, dword [rbx + 0x6d4]
test r13d, r13d
je 0x2e3d48e5b
mov rax, qword [rbx + 0x28]
xor r13d, r13d
jmp 0x2e3d48ecd
mov edx, 1
mov rcx, rbx
call fcn.2e3d12f30
cmp dword [r14], 0
mov byte [r14 + 0x1b], al
jne 0x2e3d48f37
cmp dword [r14 + 4], 0
jne 0x2e3d48fa9
mov edx, dword [r14 + 4]
mov rcx, rbx
test al, al
je 0x2e3d49559
call fcn.2e3d11f90
mov r13, rax
test rax, rax
je 0x2e3d4956e
xor r15d, r15d
xor esi, esi
jmp 0x2e3d48f79
mov edx, 1
mov rcx, rbx
call fcn.2e3d12f30
test eax, eax
jne 0x2e3d48f8c
mov byte [r13 + rsi], 0xff
add rsi, 1
movzx eax, byte [r14 + 0x1b]
cmp dword [r14 + 4], esi
jle 0x2e3d494ac
test al, al
jne 0x2e3d48f5e
mov edx, 5
mov rcx, rbx
add r15d, 1
call fcn.2e3d12f30
add eax, 1
mov byte [r13 + rsi], al
cmp al, 0x20
jne 0x2e3d48f75
mov r12d, dword [rsp + 0x2c]
nop
mov dword [rbx + 0x84], 0x14
jmp 0x2e3d48ca1
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 0x2e3d48ef0
mov r8d, 0x5f2
mov rdx, rdi
mov rcx, rsi
call rbp
jmp 0x2e3d48ec2
sub eax, 1
mov dword [rbx + 0x6d8], eax
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x2e3d4942f
cmp rax, qword [rbx + 0x38]
jae 0x2e3d4946e
lea rdx, [rax + 1]
mov qword [rbx + 0x28], rdx
cmp byte [rax], 0x4f
jne 0x2e3d494a4
cmp rdx, qword [rbx + 0x38]
jae 0x2e3d4946a
lea rax, [rdx + 1]
mov qword [rbx + 0x28], rax
movzx eax, byte [rdx]
cmp al, 0x67
jne 0x2e3d4904b
mov rcx, rbx
call fcn.2e3d12690
cmp al, 0x67
je 0x2e3d49ef6
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x84], 0x1e
mov dword [rbx + 0x6d4], 1
jmp 0x2e3d48ecd
mov rcx, rbx
call fcn.2e3d12a10
test eax, eax
je 0x2e3d48ca1
cmp byte [rbx + 0x44], 0
jne 0x2e3d4947d
mov rax, qword [0x2e3f0fc60]
movdqa xmm4, xmmword [0x2e3eeb0f0]
pxor xmm0, xmm0
movdqa xmm5, xmmword [0x2e3eeb100]
movdqa xmm1, xmmword [0x2e3eeb110]
lea rdx, [rax + 0x400]
nop dword [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 0x2e3d490b0
mov rcx, rbx
call fcn.2e3d12d90
mov dword [rbx + 0x6e0], 0
cmp eax, 5
jne 0x2e3d48fb0
lea rax, [rsp + 0x70]
lea r13, [rsp + 0x6a]
mov qword [rsp + 0x30], rax
mov rsi, r13
mov rcx, rbx
add rsi, 1
call fcn.2e3d12d90
mov dword [rbx + 0x6e0], 0
mov byte [rsi - 1], al
cmp qword [rsp + 0x30], rsi
jne 0x2e3d4922f
mov r8d, 6
lea rdx, str.vorbis
mov rcx, r13
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x2e3d48fb0
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x98], eax
imul edx, eax, 0x848
movsxd rsi, eax
call fcn.2e3d11f50
mov qword [rbx + 0xa0], rax
mov rcx, rax
test rax, rax
je 0x2e3d4956e
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 0x2e3d49d44
mov edx, 8
mov rcx, rbx
imul r14, qword [rsp + 0x38], 0x848
add r14, qword [rbx + 0xa0]
call fcn.2e3d12f30
cmp al, 0x42
jne 0x2e3d48fa9
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
cmp al, 0x43
jne 0x2e3d48fa9
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
cmp al, 0x56
jne 0x2e3d48fa9
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
mov esi, eax
call fcn.2e3d12f30
movzx esi, sil
mov edx, 8
mov rcx, rbx
shl eax, 8
add eax, esi
mov dword [r14], eax
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
mov edi, eax
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
movzx edi, dil
mov esi, eax
call fcn.2e3d12f30
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.2e3d12f30
test eax, eax
je 0x2e3d48f19
cmp dword [r14], 0
mov esi, dword [r14 + 4]
mov byte [r14 + 0x1b], 0
jne 0x2e3d493ba
test esi, esi
jne 0x2e3d48fa9
mov edx, esi
mov rcx, rbx
call fcn.2e3d11f50
mov qword [r14 + 8], rax
mov r13, rax
test rax, rax
je 0x2e3d4956e
mov edx, 5
mov rcx, rbx
xor ebp, ebp
call fcn.2e3d12f30
lea edi, [rax + 1]
jmp 0x2e3d4941f
sub esi, ebp
mov ecx, esi
call fcn.2e3d11fd0
mov rcx, rbx
mov edx, eax
call fcn.2e3d12f30
movsxd r8, eax
lea esi, [rbp + r8]
cmp esi, dword [r14 + 4]
jg 0x2e3d48fa9
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 0x2e3d493e8
xor r15d, r15d
jmp 0x2e3d494b0
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
mov ecx, eax
cmp eax, 0xffffffff
je 0x2e3d4946a
mov rax, qword [rbx + 0x28]
mov rdx, rax
cmp cl, 0x4f
jne 0x2e3d4904f
test rax, rax
jne 0x2e3d49022
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x2e3d49037
mov rax, qword [rbx + 0x28]
mov dword [rbx + 0x80], 1
jmp 0x2e3d4904f
mov edx, 1
mov rcx, rbx
call fcn.2e3d163d0
test eax, eax
jne 0x2e3d49082
cmp dword [rbx + 0x84], 0x15
jne 0x2e3d48ca1
jmp 0x2e3d48fb0
mov rax, rdx
jmp 0x2e3d4904f
mov esi, dword [r14 + 4]
cmp byte [r14 + 0x1b], 0
jne 0x2e3d49f8d
xor edx, edx
xor eax, eax
jmp 0x2e3d494d4
movzx edi, byte [r13 + rax]
lea ecx, [rdi - 0xb]
cmp cl, 0xf4
adc edx, 0
add rax, 1
cmp esi, eax
jg 0x2e3d494c1
mov dword [r14 + 0x840], edx
mov rcx, rbx
lea edx, [rsi*4]
call fcn.2e3d11f50
mov qword [r14 + 0x28], rax
test rax, rax
je 0x2e3d4956e
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 0x2e3d49520
movzx r8d, byte [r13 + rax]
add rax, 1
add r8b, 1
jne 0x2e3d49580
mov ecx, eax
mov edx, eax
cmp esi, eax
jg 0x2e3d49510
cmp esi, eax
jne 0x2e3d49580
cmp dword [r14 + 0x840], 0
je 0x2e3d497e9
mov r8d, 0x427
lea rdx, [0x2e3ee7c30]
lea rcx, str.c__sorted_entries__0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d497da
call fcn.2e3d11f50
mov qword [r14 + 8], rax
mov r13, rax
test rax, rax
jne 0x2e3d48f57
mov dword [rbx + 0x84], 3
xor r12d, r12d
jmp 0x2e3d48ca1
movsxd r9, edx
cmp byte [r14 + 0x1b], 0
mov rax, qword [r14 + 0x28]
lea r8, [r13 + r9]
movzx r10d, byte [r8]
jne 0x2e3d4a08d
mov dword [rax + r9*4], 0
xor eax, eax
mov r10d, 0x20
mov r9d, 1
jmp 0x2e3d495c7
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 0x2e3d495b3
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 0x2e3d497cc
movzx edx, byte [rsi + rdi]
mov rax, rdx
cmp edx, 0xff
je 0x2e3d496f2
test edx, edx
jne 0x2e3d4962c
jmp 0x2e3d496c2
sub rax, 1
test eax, eax
je 0x2e3d496c2
mov r12d, dword [rbx + rax*4]
mov r14d, eax
test r12d, r12d
je 0x2e3d49620
cmp eax, 0x1f
jg 0x2e3d4976e
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 0x2e3d496f9
mov dword [rdx + rdi*4], eax
movzx edx, byte [rsi + rdi]
mov rax, rdx
cmp edx, r14d
jne 0x2e3d4970b
movsxd r11, dword [rsp + 0x40]
add rdi, 1
jmp 0x2e3d495f6
cmp byte [r13 + 0x1b], 0
mov r12d, dword [rsp + 0x2c]
mov rcx, r15
mov rbx, qword [rsp + 0x4d0]
je 0x2e3d48fb0
cmp qword [rbx + 0x68], 0
jne 0x2e3d48fb0
call sub.msvcrt.dll_free
jmp 0x2e3d48fb0
mov dword [rsp + 0x40], r11d
jmp 0x2e3d496b4
mov dword [rdx + r11*4], eax
mov rax, qword [r13 + 8]
mov byte [rax + r11], cl
mov dword [r15 + r11*4], edi
jmp 0x2e3d496a8
cmp dl, 0x1f
ja 0x2e3d497a9
movzx edx, al
cmp edx, r14d
jle 0x2e3d496b4
mov dword [rsp + 0x50], ebp
mov rbp, rdi
mov rdi, rsi
mov rsi, rbx
mov rbx, rax
jmp 0x2e3d4974b
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 0x2e3d49797
mov eax, dword [rsi + rbx*4]
test eax, eax
je 0x2e3d4972e
mov r8d, 0x445
lea rdx, [0x2e3ee7c30]
lea rcx, str.available_y___0
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d4972e
mov dword [rsp + 0x40], r11d
mov r8d, 0x43e
lea rdx, [0x2e3ee7c30]
lea rcx, str.z___0__z___32
call qword [sym.imp.msvcrt.dll__assert]
movsxd r11, dword [rsp + 0x40]
jmp 0x2e3d49641
mov rbx, rsi
mov rsi, rdi
mov rdi, rbp
mov ebp, dword [rsp + 0x50]
jmp 0x2e3d496b4
mov r8d, 0x443
lea rdx, [0x2e3ee7c30]
lea rcx, str.len_i____0__len_i____32
call qword [sym.imp.msvcrt.dll__assert]
movzx eax, byte [rsi + rdi]
jmp 0x2e3d49714
mov rbx, qword [rsp + 0x4d0]
mov r14, r13
mov r13, rsi
mov eax, dword [r14 + 0x840]
test eax, eax
jne 0x2e3d49a51
cmp byte [r14 + 0x1b], 0
je 0x2e3d4982a
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x840]
je 0x2e3d4a0a2
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 0x2e3d49a48
mov r8d, dword [r14 + 0x840]
mov eax, 0x7fff
mov r11d, 1
cmp r8d, eax
cmovg r8d, eax
xor edx, edx
jmp 0x2e3d49889
add rdx, 1
cmp r8d, edx
jle 0x2e3d49919
mov r10, qword [r14 + 8]
add r10, rdx
cmp byte [r10], 0xa
ja 0x2e3d49885
test r9b, r9b
je 0x2e3d49941
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 0x2e3d49885
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 0x2e3d498fa
jmp 0x2e3d49885
mov edx, 4
mov rcx, rbx
call fcn.2e3d12f30
mov byte [r14 + 0x19], al
cmp al, 2
ja 0x2e3d48fa9
test al, al
jne 0x2e3d4994a
add qword [rsp + 0x38], 1
jmp 0x2e3d492c7
mov rax, qword [r14 + 0x28]
mov eax, dword [rax + rdx*4]
jmp 0x2e3d498f1
mov edx, 0x20
mov rcx, rbx
call fcn.2e3d12f30
mov ecx, eax
call fcn.2e3d120a0
mov edx, 0x20
mov rcx, rbx
movss dword [r14 + 0x10], xmm0
call fcn.2e3d12f30
mov ecx, eax
call fcn.2e3d120a0
mov edx, 4
mov rcx, rbx
movss dword [r14 + 0x14], xmm0
call fcn.2e3d12f30
mov edx, 1
mov rcx, rbx
add eax, 1
mov byte [r14 + 0x18], al
call fcn.2e3d12f30
cmp byte [r14 + 0x19], 1
mov byte [r14 + 0x1a], al
je 0x2e3d4a823
mov esi, dword [r14 + 4]
imul esi, dword [r14]
mov dword [r14 + 0x1c], esi
test esi, esi
je 0x2e3d48fa9
lea edx, [rsi + rsi]
mov rcx, rbx
call fcn.2e3d11f90
mov r13, rax
test rax, rax
je 0x2e3d4956e
xor esi, esi
jmp 0x2e3d499fd
movzx edx, byte [r14 + 0x18]
mov rcx, rbx
call fcn.2e3d12f30
cmp eax, 0xffffffff
je 0x2e3d4a7cd
mov word [r13 + rsi*2], ax
add rsi, 1
mov r8d, dword [r14 + 0x1c]
cmp r8d, esi
jg 0x2e3d499dd
cmp byte [r14 + 0x19], 1
jne 0x2e3d4aaba
movzx edi, byte [r14 + 0x1b]
test edi, edi
je 0x2e3d4aa6a
mov eax, dword [r14 + 0x840]
test eax, eax
jne 0x2e3d4a94f
cmp qword [rbx + 0x68], 0
je 0x2e3d4a942
lea eax, [r8 + r8 + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x2e3d49936
mov r8d, dword [r14 + 4]
jmp 0x2e3d4986f
lea edx, [rax*4 + 4]
mov rcx, rbx
call fcn.2e3d11f50
mov qword [r14 + 0x830], rax
test rax, rax
je 0x2e3d4956e
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4 + 4]
call fcn.2e3d11f50
test rax, rax
je 0x2e3d49d02
lea rdx, [rax + 4]
mov qword [r14 + 0x838], rdx
xor edx, edx
mov dword [rax], 0xffffffff
cmp byte [r14 + 0x1b], 0
jne 0x2e3d49bae
mov r12, qword [sym.imp.msvcrt.dll__assert]
xor ebp, ebp
xor edi, edi
lea rsi, str.len___NO_CODE
jmp 0x2e3d49acc
sub eax, 0xb
cmp al, 0xf3
jbe 0x2e3d49afa
add rdi, 1
cmp dword [r14 + 4], edi
jle 0x2e3d4a7f4
cmp byte [r14 + 0x1b], 0
movzx eax, byte [r13 + rdi]
je 0x2e3d49ac1
add al, 1
jne 0x2e3d49afa
mov r8d, 0x474
lea rdx, [0x2e3ee7c30]
mov rcx, rsi
call r12
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 0x2e3d49ac8
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 0x2e3d49b55
movsxd rdx, dword [r14 + 0x840]
lea r9, [0x2e3d0e460]
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 0x2e3d49d2d
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 0x2e3d497e9
test al, al
je 0x2e3d49d12
mov eax, dword [r15 + rsi*4]
movzx ebp, byte [r13 + rax]
cmp bpl, 0xff
je 0x2e3d4aa8f
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 0x2e3d49ca1
mov ecx, edx
sar ecx, 1
lea r9d, [rcx + r12]
movsxd r10, r9d
cmp dword [r8 + r10*4], eax
jbe 0x2e3d49d3a
mov edx, ecx
cmp edx, 1
jg 0x2e3d49c8a
lea r9, [r12*4]
cmp dword [r8 + r12*4], eax
je 0x2e3d49cd8
mov qword [rsp + 0x50], r9
mov r8d, 0x4a6
lea rdx, [0x2e3ee7c30]
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 0x2e3d4aaae
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 0x2e3d49d24
mov qword [r14 + 0x838], 0
jmp 0x2e3d4956e
movzx ebp, byte [r13 + rsi]
lea edx, [rbp - 0xb]
cmp dl, 0xf3
jbe 0x2e3d49c31
add rsi, 1
jmp 0x2e3d49c09
mov eax, dword [r14 + 4]
mov dword [rsp + 0x40], eax
jmp 0x2e3d49c02
sub edx, ecx
movsxd r12, r9d
jmp 0x2e3d49ca1
mov edx, 6
mov rcx, rbx
mov r15d, dword [rsp + 0x5c]
xor edi, edi
mov r12d, dword [rsp + 0x2c]
call fcn.2e3d12f30
lea esi, [rax + 1]
movzx esi, sil
jmp 0x2e3d49d7e
mov edx, 0x10
mov rcx, rbx
call fcn.2e3d12f30
test eax, eax
jne 0x2e3d48fb0
add edi, 1
cmp edi, esi
jl 0x2e3d49d66
mov edx, 6
mov rcx, rbx
call fcn.2e3d12f30
mov rcx, rbx
add eax, 1
mov dword [rbx + 0xa8], eax
imul edx, eax, 0x63c
call fcn.2e3d11f50
mov qword [rbx + 0x130], rax
test rax, rax
je 0x2e3d4956e
mov dword [rsp + 0x2c], 0
mov rbp, qword [rsp + 0x30]
xor edi, edi
mov dword [rsp + 0x38], r12d
cmp dword [rbx + 0xa8], edi
jle 0x2e3d4a0eb
mov edx, 0x10
mov rcx, rbx
call fcn.2e3d12f30
mov word [rbx + rdi*2 + 0xac], ax
cmp ax, 1
ja 0x2e3d4a0e1
imul rsi, rdi, 0x63c
add rsi, qword [rbx + 0x130]
test ax, ax
je 0x2e3d4a23a
mov edx, 5
mov rcx, rbx
xor r14d, r14d
or r13d, 0xffffffff
call fcn.2e3d12f30
mov byte [rsi], al
jmp 0x2e3d49e44
mov edx, 4
mov rcx, rbx
call fcn.2e3d12f30
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 0x2e3d49e24
xor r12d, r12d
cmp r13d, r12d
jl 0x2e3d4ab6c
mov edx, 3
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 2
mov rcx, rbx
add eax, 1
mov byte [rsi + r12 + 0x21], al
call fcn.2e3d12f30
mov byte [rsi + r12 + 0x31], al
test al, al
jne 0x2e3d4ab49
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 0x2e3d49ece
mov edx, 8
mov rcx, rsi
call fcn.2e3d12f30
sub eax, 1
mov word [r14 + rbx*2 + 0x52], ax
add rbx, 1
cwde
cmp eax, dword [rsi + 0x98]
jge 0x2e3d4ab34
movzx ecx, byte [rdi + r12 + 0x31]
mov eax, 1
shl eax, cl
cmp eax, ebx
jg 0x2e3d49ea7
mov rbx, rsi
add r12, 1
mov rsi, rdi
mov rdi, rbp
mov rbp, qword [rsp + 0x40]
jmp 0x2e3d49e4f
mov rcx, rbx
call fcn.2e3d12690
cmp al, 0x53
mov rax, qword [rbx + 0x28]
jne 0x2e3d4904f
test rax, rax
je 0x2e3d49f74
cmp rax, qword [rbx + 0x38]
jb 0x2e3d49f3f
mov dword [rbx + 0x80], 1
mov rcx, rbx
call fcn.2e3d40100
test eax, eax
je 0x2e3d49f84
test byte [rbx + 0x6cb], 1
je 0x2e3d49f61
mov edx, dword [rbx + 0x6d0]
jmp 0x2e3d48e70
lea rdx, [rax + 1]
mov qword [rbx + 0x28], rdx
movzx eax, byte [rax]
test al, al
je 0x2e3d49f1f
mov dword [rbx + 0x84], 0x1f
mov rax, qword [rbx + 0x28]
jmp 0x2e3d49059
mov dword [rbx + 0x84], 0x20
mov rax, qword [rbx + 0x28]
jmp 0x2e3d48ecd
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_fgetc
cmp eax, 0xffffffff
jne 0x2e3d49f4a
jmp 0x2e3d49f15
mov rax, qword [rbx + 0x28]
jmp 0x2e3d49059
mov eax, esi
sar eax, 2
cmp eax, r15d
jg 0x2e3d49fef
cmp dword [rbx + 0x10], esi
jge 0x2e3d49fa3
mov dword [rbx + 0x10], esi
mov esi, dword [r14 + 4]
mov rcx, rbx
mov edx, esi
call fcn.2e3d11f50
mov qword [r14 + 8], rax
mov rcx, rax
test rax, rax
je 0x2e3d4956e
movsxd r8, dword [r14 + 4]
mov rdx, r13
call sub.msvcrt.dll_memcpy
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 4]
je 0x2e3d4a01d
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 0x2e3d494bb
mov dword [r14 + 0x840], r15d
test r15d, r15d
jne 0x2e3d4a027
xor r15d, r15d
mov eax, dword [r14 + 0x840]
lea eax, [rsi + rax*8]
cmp eax, dword [rbx + 0x10]
jbe 0x2e3d494fe
mov dword [rbx + 0x10], eax
mov esi, dword [r14 + 4]
jmp 0x2e3d494fe
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x2e3d49fdd
mov edx, r15d
mov rcx, rbx
call fcn.2e3d11f50
mov qword [r14 + 8], rax
test rax, rax
je 0x2e3d4956e
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call fcn.2e3d11f90
mov qword [r14 + 0x28], rax
test rax, rax
je 0x2e3d4956e
mov eax, dword [r14 + 0x840]
mov rcx, rbx
lea edx, [rax*4]
call fcn.2e3d11f90
mov r15, rax
test rax, rax
je 0x2e3d4956e
mov esi, dword [r14 + 4]
jmp 0x2e3d49ffe
mov dword [rax], 0
mov rax, qword [r14 + 8]
mov byte [rax], r10b
mov dword [r15], ecx
jmp 0x2e3d495a3
mov rcx, r15
call sub.msvcrt.dll_free
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x840]
mov rcx, qword [r14 + 0x28]
jne 0x2e3d4a2d1
call sub.msvcrt.dll_free
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 4]
jne 0x2e3d49819
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x2e3d49822
mov r12d, dword [rsp + 0x38]
jmp 0x2e3d48fb0
mov edx, 6
mov rcx, rbx
mov r12d, dword [rsp + 0x38]
call fcn.2e3d12f30
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x138], eax
movsxd rsi, eax
shl eax, 5
mov edx, eax
call fcn.2e3d11f50
mov qword [rbx + 0x1c0], rax
mov rcx, rax
test rax, rax
je 0x2e3d4956e
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 0x2e3d4a383
mov rsi, rbp
mov edx, 0x10
mov rcx, rbx
shl rsi, 5
add rsi, qword [rbx + 0x1c0]
call fcn.2e3d12f30
mov word [rbx + rbp*2 + 0x13c], ax
cmp ax, 2
ja 0x2e3d4a370
mov edx, 0x18
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 0x18
mov rcx, rbx
mov dword [rsi], eax
call fcn.2e3d12f30
mov dword [rsi + 4], eax
cmp eax, dword [rsi]
jb 0x2e3d4a370
mov edx, 0x18
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 6
mov rcx, rbx
add eax, 1
mov dword [rsi + 8], eax
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
add eax, 1
mov byte [rsi + 0xc], al
call fcn.2e3d12f30
mov byte [rsi + 0xd], al
movzx eax, al
cmp eax, dword [rbx + 0x98]
jge 0x2e3d4a370
xor r13d, r13d
jmp 0x2e3d4a1f8
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 0x2e3d4a2d9
mov edx, 3
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 1
mov rcx, rbx
mov edi, eax
call fcn.2e3d12f30
mov r8d, eax
xor eax, eax
test r8d, r8d
je 0x2e3d4a1e8
mov edx, 5
mov rcx, rbx
call fcn.2e3d12f30
jmp 0x2e3d4a1e8
mov edx, 8
mov rcx, rbx
xor edi, edi
call fcn.2e3d12f30
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call fcn.2e3d12f30
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call fcn.2e3d12f30
mov edx, 6
mov rcx, rbx
mov word [rsi + 4], ax
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
mov byte [rsi + 6], al
call fcn.2e3d12f30
mov edx, 4
mov rcx, rbx
mov byte [rsi + 7], al
call fcn.2e3d12f30
add eax, 1
mov byte [rsi + 8], al
jmp 0x2e3d4a2b7
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov byte [rsi + rdi + 9], al
add rdi, 1
movzx eax, byte [rsi + 8]
cmp eax, edi
jg 0x2e3d4a2a2
mov dword [rbx + 0x84], 4
xor r12d, r12d
jmp 0x2e3d48ca1
shl eax, 2
jmp 0x2e3d49812
shl eax, 4
mov rcx, rbx
mov edx, eax
call fcn.2e3d11f50
mov qword [rsi + 0x18], rax
test rax, rax
je 0x2e3d4ad01
xor r13d, r13d
movzx eax, byte [rsi + 0xc]
cmp eax, r13d
jle 0x2e3d4ac15
mov r14, r13
xor edi, edi
shl r14, 4
jmp 0x2e3d4a32b
movsxd rax, edi
add rax, rax
add rax, qword [rsi + 0x18]
mov word [rax + r14], 0xffff
add edi, 1
cmp edi, 8
je 0x2e3d4a7c4
mov rax, qword [rsp + 0x30]
mov ecx, edi
movzx eax, byte [rax + r13]
sar eax, cl
test al, 1
je 0x2e3d4a30e
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
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 0x2e3d4a31f
mov eax, 0x14
mov dword [rbx + 0x84], eax
xor r12d, r12d
jmp 0x2e3d48ca1
mov edx, 6
mov rcx, rbx
mov r15d, dword [rsp + 0x38]
call fcn.2e3d12f30
mov rcx, rbx
add eax, 1
mov dword [rbx + 0x1c8], eax
imul edx, eax, 0x30
movsxd rsi, eax
call fcn.2e3d11f50
mov qword [rbx + 0x1d0], rax
mov rcx, rax
test rax, rax
je 0x2e3d4956e
imul r8, rsi, 0x30
xor edx, edx
xor edi, edi
call sub.msvcrt.dll_memset
cmp dword [rbx + 0x1c8], edi
jle 0x2e3d4a4b9
mov edx, 0x10
imul rsi, rdi, 0x30
mov rcx, rbx
add rsi, qword [rbx + 0x1d0]
call fcn.2e3d12f30
test eax, eax
jne 0x2e3d48fb0
imul edx, dword [rbx + 4], 3
mov rcx, rbx
call fcn.2e3d11f50
mov qword [rsi + 8], rax
test rax, rax
je 0x2e3d4956e
mov edx, 1
mov rcx, rbx
call fcn.2e3d12f30
mov r8d, eax
movzx eax, byte [rsp + 0x4b]
test r8d, r8d
je 0x2e3d4a43b
mov edx, 4
mov rcx, rbx
call fcn.2e3d12f30
add eax, 1
mov byte [rsi + 0x10], al
mov edx, 1
mov rcx, rbx
call fcn.2e3d12f30
test eax, eax
jne 0x2e3d4a684
mov word [rsi], 0
mov edx, 2
mov rcx, rbx
call fcn.2e3d12f30
test eax, eax
jne 0x2e3d48fb0
xor ebp, ebp
xor eax, eax
cmp byte [rsi + 0x10], 1
jbe 0x2e3d4a669
cmp dword [rbx + 4], ebp
jle 0x2e3d4a553
mov edx, 4
mov rcx, rbx
call fcn.2e3d12f30
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 0x2e3d4a47b
jmp 0x2e3d48fb0
mov edx, 6
mov rcx, rbx
lea rsi, [rbx + 0x1dc]
xor edi, edi
call fcn.2e3d12f30
add eax, 1
mov dword [rbx + 0x1d8], eax
cmp edi, dword [rbx + 0x1d8]
jge 0x2e3d4a5b5
mov edx, 1
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 0x10
mov rcx, rbx
mov byte [rsi], al
call fcn.2e3d12f30
mov edx, 0x10
mov rcx, rbx
mov word [rsi + 2], ax
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
mov word [rsi + 4], ax
call fcn.2e3d12f30
cmp word [rsi + 2], 0
mov byte [rsi + 1], al
jne 0x2e3d48fb0
cmp word [rsi + 4], 0
jne 0x2e3d48fb0
add rsi, 6
movzx eax, al
cmp eax, dword [rbx + 0x1c8]
jge 0x2e3d48fb0
add edi, 1
jmp 0x2e3d4a4d8
xor ebp, ebp
movzx eax, byte [rsi + 0x10]
cmp eax, ebp
jle 0x2e3d4a660
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov edx, 8
mov rcx, rbx
mov byte [rsi + rbp + 0x11], al
call fcn.2e3d12f30
movzx edx, byte [rsi + rbp + 0x11]
mov byte [rsi + rbp + 0x20], al
cmp edx, dword [rbx + 0xa8]
jge 0x2e3d48fb0
add rbp, 1
movzx eax, al
cmp eax, dword [rbx + 0x138]
jl 0x2e3d4a555
jmp 0x2e3d48fb0
mov rcx, rbx
call fcn.2e3d12d90
add eax, 1
jne 0x2e3d4a5b5
mov dword [rbx + 0x4e0], 0
mov ebp, dword [rsp + 0x2c]
xor esi, esi
add ebp, ebp
cmp dword [rbx + 4], esi
jle 0x2e3d4a715
movsxd rdi, dword [rbx + 0x94]
mov rcx, rbx
lea edx, [rdi*4]
shl rdi, 2
call fcn.2e3d11f50
mov rdx, rdi
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x360], rax
shr rdx, 1
mov r13, rax
call fcn.2e3d11f50
mov edx, ebp
mov rcx, rbx
mov qword [rbx + rsi*8 + 0x460], rax
mov r14, rax
call fcn.2e3d11f50
mov qword [rbx + rsi*8 + 0x4e8], rax
add rsi, 1
test r13, r13
sete dl
test r14, r14
sete cl
or dl, cl
jne 0x2e3d4956e
test rax, rax
je 0x2e3d4956e
mov r8, rdi
xor edx, edx
mov rcx, r13
call sub.msvcrt.dll_memset
jmp 0x2e3d4a5d4
add rdi, 1
jmp 0x2e3d4a3cc
cmp dword [rbx + 4], eax
jle 0x2e3d4a553
lea rdx, [rax + rax*2]
add rdx, qword [rsi + 8]
add rax, 1
mov byte [rdx + 2], 0
jmp 0x2e3d4a669
mov edx, 8
mov rcx, rbx
xor r13d, r13d
call fcn.2e3d12f30
add eax, 1
mov word [rsi], ax
movzx eax, word [rsi]
cmp eax, r13d
jle 0x2e3d4a458
mov eax, dword [rbx + 4]
lea rbp, [r13 + r13*2]
lea ecx, [rax - 1]
call fcn.2e3d11fd0
mov rcx, rbx
mov edx, eax
call fcn.2e3d12f30
mov rdx, qword [rsi + 8]
mov byte [rdx + rbp], al
mov eax, dword [rbx + 4]
lea ecx, [rax - 1]
call fcn.2e3d11fd0
mov rcx, rbx
mov edx, eax
call fcn.2e3d12f30
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 0x2e3d48fb0
movzx r8d, byte [rbp + 1]
cmp ecx, r8d
jle 0x2e3d48fb0
add r13, 1
cmp dl, r8b
jne 0x2e3d4a69a
jmp 0x2e3d48fb0
mov r8d, dword [rbx + 0x90]
xor edx, edx
mov rcx, rbx
call fcn.2e3d120f0
test eax, eax
je 0x2e3d48ca1
mov r8d, dword [rbx + 0x94]
mov edx, 1
mov rcx, rbx
call fcn.2e3d120f0
test eax, eax
je 0x2e3d48ca1
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 0x2e3d4ad14
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 0x2e3d4a787
add r13, 1
jmp 0x2e3d4a2f6
cmp qword [rbx + 0x68], 0
mov r12d, dword [rsp + 0x2c]
mov eax, dword [r14 + 0x1c]
je 0x2e3d4a7ec
lea eax, [rax + rax + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x2e3d48fb0
mov rcx, r13
jmp 0x2e3d496e8
cmp ebp, dword [r14 + 0x840]
je 0x2e3d4a817
mov r8d, 0x488
lea rdx, [0x2e3ee7c30]
lea rcx, str.k__c__sorted_entries
call qword [sym.imp.msvcrt.dll__assert]
mov rcx, qword [r14 + 0x830]
jmp 0x2e3d49bbe
mov edi, dword [r14 + 4]
pxor xmm0, xmm0
mov ebp, dword [r14]
pxor xmm7, xmm7
cvtsi2ss xmm0, edi
call fcn.2e3e474e0
pxor xmm1, xmm1
cvtsi2ss xmm1, ebp
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
call fcn.2e3e4cfbd
pxor xmm1, xmm1
movss xmm6, dword [0x2e3eeb1a0]
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.2e3e4d482
pxor xmm2, xmm2
movsd xmm1, qword [rsp + 0x40]
cvttsd2si eax, xmm0
cvtsi2sd xmm2, eax
comisd xmm2, xmm0
jbe 0x2e3d4a899
sub eax, 1
cmp edi, eax
jl 0x2e3d4a8a8
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.2e3e4d482
movsd xmm1, qword [rsp + 0x40]
movapd xmm2, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, edi
comisd xmm2, xmm0
jbe 0x2e3d4a920
pxor xmm0, xmm0
cvtss2sd xmm0, xmm7
call fcn.2e3e4d482
pxor xmm1, xmm1
cvttsd2si eax, xmm0
cvtsi2sd xmm1, eax
comisd xmm1, xmm0
jbe 0x2e3d4a8f9
sub eax, 1
cmp edi, eax
jge 0x2e3d499b6
mov r8d, 0x4c0
lea rdx, [0x2e3ee7c30]
lea rcx, str._int__floor_pow__float__r__dim_____entries
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d499b6
mov r8d, 0x4bf
lea rdx, [0x2e3ee7c30]
lea rcx, str.pow__float__r1__dim____entries
call qword [sym.imp.msvcrt.dll__assert]
movsd xmm1, qword [rsp + 0x40]
jmp 0x2e3d4a8d7
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x2e3d49936
imul eax, dword [r14]
mov rcx, rbx
lea edx, [rax*4]
call fcn.2e3d11f50
mov qword [r14 + 0x20], rax
test rax, rax
je 0x2e3d4aa4c
mov ebp, dword [r14 + 0x840]
xor r9d, r9d
pxor xmm1, xmm1
mov r11d, r9d
mov esi, r9d
cmp ebp, r9d
jle 0x2e3d4aa3e
test edi, edi
je 0x2e3d4a99b
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 0x2e3d4aa35
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 0x2e3d4a9ff
movaps xmm1, xmm0
add r10d, 1
cmp r10d, dword [r14]
jge 0x2e3d4a9a3
mov r8d, dword [r14 + 0x1c]
mov eax, ecx
mul r8d
mov ecx, eax
jno 0x2e3d4a9a3
cmp qword [rbx + 0x68], 0
mov r12d, dword [rsp + 0x2c]
je 0x2e3d4a7ec
lea eax, [r8 + r8 + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x2e3d48fb0
add r9, 1
jmp 0x2e3d4a97d
mov byte [r14 + 0x19], 2
mov r8d, dword [r14 + 0x1c]
jmp 0x2e3d49a2d
cmp qword [rbx + 0x68], 0
mov eax, dword [r14 + 0x1c]
je 0x2e3d4ab27
lea eax, [rax + rax + 3]
and eax, 0xfffffffc
add dword [rbx + 0x7c], eax
jmp 0x2e3d4956e
mov edx, dword [r14]
imul edx, dword [r14 + 4]
mov rcx, rbx
shl edx, 2
call fcn.2e3d11f50
mov qword [r14 + 0x20], rax
test rax, rax
je 0x2e3d4aa4c
mov ebp, dword [r14 + 4]
jmp 0x2e3d4a976
mov r8d, 0x474
lea rdx, [0x2e3ee7c30]
lea rcx, str.len___NO_CODE
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x2e3d49c31
mov dword [rax], edi
movzx eax, byte [r14 + 0x1b]
jmp 0x2e3d49d24
lea edx, [r8*4]
mov rcx, rbx
call fcn.2e3d11f50
mov qword [r14 + 0x20], rax
test rax, rax
je 0x2e3d4aa4c
xor eax, eax
pxor xmm1, xmm1
jmp 0x2e3d4ab18
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 0x2e3d4ab14
movaps xmm1, xmm0
add rax, 1
cmp dword [r14 + 0x1c], eax
jg 0x2e3d4aadf
mov r8d, dword [r14 + 0x1c]
jmp 0x2e3d49a2d
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x2e3d4956e
mov rbx, rsi
mov dword [rbx + 0x84], 0x14
xor r12d, r12d
jmp 0x2e3d48ca1
mov edx, 8
mov rcx, rbx
call fcn.2e3d12f30
mov byte [rsi + r12 + 0x41], al
movzx eax, al
cmp eax, dword [rbx + 0x98]
jl 0x2e3d49e87
jmp 0x2e3d4ab37
mov edx, 2
mov rcx, rbx
xor r13d, r13d
call fcn.2e3d12f30
mov rcx, rbx
mov edx, 4
add eax, 1
mov byte [rsi + 0x634], al
call fcn.2e3d12f30
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 0x2e3d4adaa
movzx r14d, byte [rsi + r13 + 1]
xor r12d, r12d
jmp 0x2e3d4ac04
movzx edx, byte [rsi + 0x635]
mov rcx, rbx
add r12d, 1
call fcn.2e3d12f30
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 0x2e3d4abd2
add r13, 1
jmp 0x2e3d4abbb
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.2e3d11f50
mov qword [rsi + 0x10], rax
mov rcx, rax
test rax, rax
je 0x2e3d4ad01
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 0x2e3d4ad0b
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.2e3d11f50
mov r8, qword [rsp + 0x40]
mov qword [r8], rax
mov rax, qword [rsi + 0x10]
cmp qword [rax + rdi*8], 0
je 0x2e3d4ad01
xor ecx, ecx
movsxd r9, r14d
jmp 0x2e3d4acef
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 0x2e3d4acc2
add rdi, 1
jmp 0x2e3d4ac68
mov eax, 3
jmp 0x2e3d4a375
add rbp, 1
jmp 0x2e3d4a13e
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 0x2e3d4ad74
mov eax, dword [rbx + 0x70]
cmp dword [rbx + 0x7c], eax
je 0x2e3d4ad59
mov r8d, 0x101b
lea rdx, [0x2e3ee7c30]
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 0x2e3d4956e
cmp byte [rbx + 0x44], 0
jne 0x2e3d4ad8a
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x2e3d4ad99
mov r15d, eax
sub r15d, dword [rbx + 0x30]
mov dword [rbx + 0x48], r15d
mov r12d, 1
jmp 0x2e3d48ca1
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [rbx + 0x20]
mov r15d, eax
jmp 0x2e3d4ad8a
movsxd rdx, dword [rsi + 0x638]
xor eax, eax
jmp 0x2e3d4adcf
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 0x2e3d4adb5
mov rcx, rbp
lea r9, [0x2e3d0e480]
mov r8d, 4
call sub.msvcrt.dll_qsort
mov ecx, dword [rsi + 0x638]
xor eax, eax
jmp 0x2e3d4ae02
movzx edx, word [rbp + rax*4 + 2]
mov byte [rsi + rax + 0x346], dl
add rax, 1
cmp ecx, eax
jg 0x2e3d4adf2
mov r12d, dword [rsp + 0x58]
mov eax, 2
mov r11, rbx
mov r13d, eax
cmp ecx, eax
jle 0x2e3d4ae91
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 0x2e3d4ae4e
cmp r8w, word [rsi + rax*2 + 0x152]
cmovb r12d, edx
cmovb r9d, r8d
cmp r8d, r10d
jge 0x2e3d4ae6b
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 0x2e3d4ae29
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 0x2e3d4ae13
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 0x2e3d49dca