LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/tvlabs[P]edge264/./edge264_slice.c
// Function: parse_residual_block_2x2_cavlc
static noinline void parse_residual_block_2x2_cavlc(Edge264Context *ctx) {
		static const int16_t tokens[8 * 4] = {
			133, 133, 133, 133,
			256, 256, 256, 256,
			394, 394, 394, 394,
			776, 783, 777, 772,
			784, 784, 780, 780,
			910, 910, 909, 909,
			1042, 1042, 1041, 1041,
			915, 915, 915, 915,
		};
		int leadingZeroBits = clz(ctx->t._gb.msb_cache | (size_t)1 << (SIZE_BIT - 8));
		unsigned suffix = ctx->t._gb.msb_cache >> (SIZE_BIT - 3 - leadingZeroBits) & 3;
		int token = tokens[leadingZeroBits * 4 + suffix];
		int coeff_token = token & 127;
		int v = token >> 7;
		ctx->t._gb.msb_cache = shld(ctx->t._gb.lsb_cache, ctx->t._gb.msb_cache, v);
		if (!(ctx->t._gb.lsb_cache <<= v))
			refill(&ctx->t._gb, 0);
		if (coeff_token) {
			log_mb(ctx, "    - {nC: -1, c: [");
			parse_residual_coeffs_cavlc(ctx, 0, 3, coeff_token);
		} else {
			log_mb(ctx, "    - {nC: -1}\n");
		}
	}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rdx
movq 0x18(%rdi), %rax
movq %rax, %rcx
btsq $0x38, %rcx
lzcntq %rcx, %rcx
movb $0x3d, %sil
subb %cl, %sil
shrxq %rsi, %rax, %rsi
andl $0x3, %esi
addl %esi, %esi
leal (%rsi,%rcx,8), %ecx
leaq 0xb347(%rip), %rsi      # 0x38f40
movswl (%rcx,%rsi), %ecx
movl %ecx, %ebp
andl $0x7f, %ebp
sarl $0x7, %ecx
movq %rax, (%rsp)
shldq %cl, %rdx, %rax
movq %rax, 0x18(%rdi)
shlxq %rcx, 0x10(%rdi), %rax
movq %rax, 0x10(%rdi)
testq %rax, %rax
jne 0x2dc28
movq %rbx, %rdi
callq 0x18605
movzwl 0x1cd0(%rbx), %eax
testl %ebp, %ebp
je 0x2dc75
cmpl $0xfff, %eax            # imm = 0xFFF
ja 0x2dc62
leaq (%rbx,%rax), %rdi
addq $0x1cd2, %rdi           # imm = 0x1CD2
movl $0x1000, %esi           # imm = 0x1000
subq %rax, %rsi
leaq 0xca50(%rip), %rdx      # 0x3a6a4
xorl %eax, %eax
callq 0x1070
addw %ax, 0x1cd0(%rbx)
movq %rbx, %rdi
xorl %esi, %esi
movl $0x3, %edx
movl %ebp, %ecx
callq 0x2d81f
jmp 0x2dca6
cmpl $0xfff, %eax            # imm = 0xFFF
ja 0x2dca6
leaq (%rbx,%rax), %rdi
addq $0x1cd2, %rdi           # imm = 0x1CD2
movl $0x1000, %ecx           # imm = 0x1000
subl %eax, %ecx
movzwl %cx, %esi
leaq 0xca20(%rip), %rdx      # 0x3a6b8
xorl %eax, %eax
callq 0x1070
addw %ax, 0x1cd0(%rbx)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/tvlabs[P]edge264/./edge264_residual.c
// Function: add_dc4x4
static void add_dc4x4(Edge264Context *ctx, int iYCbCr, int DCidx, uint8_t *p) {
	i32x4 r = set16((ctx->c[16 + DCidx] + 32) >> 6);
	size_t stride = ctx->t.stride[iYCbCr];
	INIT_P();
	if (ctx->t.samples_clip[iYCbCr][0] == 255) {
		i8x16 p0 = (i32x4){*(int32_t *)P(0, 0), *(int32_t *)P(0, 1)};
		i8x16 p1 = (i32x4){*(int32_t *)P(0, 2), *(int32_t *)P(0, 3)};
		i32x4 u = packus16(addlou8s16(p0, r), addlou8s16(p1, r));
		*(int32_t *)P(0, 0) = u[0];
		*(int32_t *)P(0, 1) = u[1];
		*(int32_t *)P(0, 2) = u[2];
		*(int32_t *)P(0, 3) = u[3];
	}
}

// Assembly:
movslq %esi, %rax
movq %rax, %rsi
shlq $0x4, %rsi
cmpw $0xff, 0x170(%rdi,%rsi)
jne 0x14764
movslq %edx, %rdx
movl 0x1ba0(%rdi,%rdx,4), %edx
addl $0x20, %edx
shrl $0x6, %edx
vpbroadcastw %edx, %xmm0
movzwl 0x34(%rdi,%rax,2), %eax
leaq (%rcx,%rax,8), %rdx
subq %rax, %rdx
vmovd (%rcx), %xmm1
vpinsrd $0x1, (%rcx,%rax), %xmm1, %xmm1
movl %eax, %esi
shll $0x2, %esi
subq %rsi, %rdx
vmovd (%rcx,%rax,2), %xmm2
vpinsrd $0x1, (%rdx), %xmm2, %xmm2
vpmovzxbw %xmm1, %xmm1    # xmm1 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
vpaddw %xmm1, %xmm0, %xmm1
vpmovzxbw %xmm2, %xmm2    # xmm2 = xmm2[0],zero,xmm2[1],zero,xmm2[2],zero,xmm2[3],zero,xmm2[4],zero,xmm2[5],zero,xmm2[6],zero,xmm2[7],zero
vpaddw %xmm2, %xmm0, %xmm0
vpackuswb %xmm0, %xmm1, %xmm0
vmovd %xmm0, (%rcx)
vpextrd $0x1, %xmm0, (%rcx,%rax)
vpextrd $0x2, %xmm0, (%rcx,%rax,2)
vpextrd $0x3, %xmm0, (%rdx)
retq
// File: /workspace/github_c_makefile_star2_O1/tvlabs[P]edge264/./edge264_bitstream.c
// Function: cabac_terminate
static int cabac_terminate(Edge264Context *ctx) {
	int extra = SIZE_BIT - 9 - clz(ctx->t._gb.codIRange); // [0..SIZE_BIT-9]
	ctx->t._gb.codIRange -= (size_t)2 << extra;
	if (ctx->t._gb.codIOffset >= ctx->t._gb.codIRange) {
		// reclaim the extra bits minus alignment bits, then refill the cache
		ctx->t._gb.msb_cache = (ctx->t._gb.codIOffset * 2 + 1) << (SIZE_BIT - 1 - (extra & -8));
		return refill(&ctx->t._gb, 1);
	}
	if (__builtin_expect(ctx->t._gb.codIRange < 256, 0)) {
		ctx->t._gb.codIOffset = shld(get_bytes(&ctx->t._gb, SIZE_BIT / 8 - 1), ctx->t._gb.codIOffset, SIZE_BIT - 8);
		ctx->t._gb.codIRange <<= SIZE_BIT - 8;
	}
	return 0;
}

// Assembly:
pushq %rbx
movq 0x10(%rdi), %rsi
movq 0x18(%rdi), %rcx
lzcntq %rsi, %rax
movb $0x37, %dl
subb %al, %dl
movq $-0x2, %r8
shlxq %rdx, %r8, %rdx
addq %rsi, %rdx
movq %rdx, 0x10(%rdi)
cmpq %rdx, %rcx
jae 0x167ea
xorl %ebx, %ebx
cmpq $0xff, %rdx
ja 0x16809
leaq 0x10(%rdi), %rdx
leaq 0x18(%rdi), %rsi
callq 0x124d
jmp 0x16809
leaq 0x1(,%rcx,2), %rcx
andb $0x38, %al
addb $0xf, %al
shlxq %rax, %rcx, %rax
movq %rax, 0x18(%rdi)
callq 0xeb81
movl $0x1, %ebx
movl %ebx, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/tvlabs[P]edge264/./edge264_slice.c
// Function: parse_intra_chroma_pred_mode_cabac
static void CAFUNC(parse_intra_chroma_pred_mode)
{
	static const int8_t IntraChromaModes[4][4] = {
		{IC8x8_DC_8, IC8x8_DCA_8, IC8x8_DCB_8, IC8x8_DCAB_8},
		{IC8x8_H_8 , IC8x8_DCA_8, IC8x8_H_8  , IC8x8_DCAB_8},
		{IC8x8_V_8 , IC8x8_V_8  , IC8x8_DCB_8, IC8x8_DCAB_8},
		{IC8x8_P_8 , IC8x8_DCA_8, IC8x8_DCB_8, IC8x8_DCAB_8},
	};
	
	// Do not optimise too hard to keep the code understandable here.
	int type = ctx->t.ChromaArrayType;
	if (type == 1 || type == 2) {
		#if !CABAC
			int mode = get_ue16(&ctx->t._gb, 3);
		#else
			int ctxIdx = 64 + ctx->inc.intra_chroma_pred_mode_non_zero;
			int mode = 0;
			while (mode <3 && get_ae(ctx, ctxIdx))
				mode++, ctxIdx = 67;
			mb->f.intra_chroma_pred_mode_non_zero = (mode > 0);
		#endif
		log_mb(ctx, "    intra_chroma_pred_mode: %u\n", mode);
		decode_intraChroma(IntraChromaModes[mode][ctx->unavail4x4[0] & 3], ctx->samples_mb[1], ctx->t.stride[1] >> 1, ctx->t.samples_clip_v[1]);
	}
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movb 0x2a(%rdi), %al
decb %al
cmpb $0x1, %al
ja 0x31ea7
movq %rdi, %rbx
movsbl 0x6c5(%rdi), %esi
addl $0x40, %esi
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x306b3
testl %eax, %eax
je 0x31e2c
incl %ebp
movl $0x43, %esi
cmpl $0x3, %ebp
jne 0x31e0f
movl $0x3, %ebp
testl %ebp, %ebp
movq 0x680(%rbx), %rax
setne 0x25(%rax)
movzwl 0x1cd0(%rbx), %eax
cmpq $0xfff, %rax            # imm = 0xFFF
ja 0x31e74
leaq (%rbx,%rax), %rdi
addq $0x1cd2, %rdi           # imm = 0x1CD2
movl $0x1000, %ecx           # imm = 0x1000
subl %eax, %ecx
movzwl %cx, %esi
leaq 0x8983(%rip), %rdx      # 0x3a7e7
movl %ebp, %ecx
xorl %eax, %eax
callq 0x1070
addw %ax, 0x1cd0(%rbx)
movl %ebp, %eax
movzbl 0x6d0(%rbx), %ecx
andl $0x3, %ecx
leaq 0x1b19(%rip), %rdx      # 0x339a0
leaq (%rdx,%rax,4), %rax
movsbl (%rcx,%rax), %edi
movq 0x670(%rbx), %rsi
movzwl 0x36(%rbx), %edx
shrl %edx
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x2eee8
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/minhash.cpp
// Function: rp::MinHash::random_uint32_universal_hash(unsigned long)
vector<uint32_t> MinHash::random_uint32_universal_hash(const uint64_t x) {
    
    assert(x > 0 && x < UINT64_MAX);
    
    static const unsigned w = sizeof(uint64_t)*8;
    static const unsigned M = sizeof(uint32_t)*8;
    
    vector<uint32_t> hv;
    hv.push_back(static_cast<uint32_t>(x));
    
    for(int i=0; i<sig_len; i++) {
        if(a.size()<sig_len) {
            a.push_back(urandom_64(rand_eng));
            b.push_back(urandom_32(rand_eng));
        }
        
        uint32_t h = static_cast<uint32_t>((a[i]*x+b[i]) >> (w-M));
        hv.push_back(h);
    }
    
    return hv;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
leaq -0x1(%rdx), %rax
cmpq $-0x2, %rax
jae 0xc8e2
movq %rsi, %r15
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movl %edx, (%rsp)
movq 0x8(%rdi), %rsi
cmpq 0x10(%rdi), %rsi
movq %rdx, 0x10(%rsp)
je 0xc7d6
movl %edx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rbx)
jmp 0xc7e1
movq %rsp, %rdx
movq %rbx, %rdi
callq 0xce10
movl 0x50(%r15), %eax
testl %eax, %eax
je 0xc8d0
leaq 0x38(%r15), %r12
leaq 0x30(%r15), %r13
leaq 0x48(%r15), %rbp
leaq 0x18(%r15), %rcx
movq %rcx, 0x8(%rsp)
xorl %r14d, %r14d
movq 0x8(%r15), %rcx
subq (%r15), %rcx
sarq $0x3, %rcx
movl %eax, %eax
cmpq %rax, %rcx
jae 0xc883
movq %r12, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0xcf28
movq %rax, (%rsp)
movq 0x8(%r15), %rsi
cmpq 0x10(%r15), %rsi
je 0xc840
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%r15)
jmp 0xc84b
movq %r15, %rdi
movq %rsp, %rdx
callq 0xd0ac
movq %rbp, %rdi
movq %r13, %rsi
movq %rbp, %rdx
callq 0xd1e2
movl %eax, %eax
movq %rax, (%rsp)
movq 0x20(%r15), %rsi
cmpq 0x28(%r15), %rsi
je 0xc876
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x20(%r15)
jmp 0xc883
movq 0x8(%rsp), %rdi
movq %rsp, %rdx
callq 0xd0ac
movq (%r15), %rax
movq 0x18(%r15), %rcx
movq (%rax,%r14,8), %rax
imulq 0x10(%rsp), %rax
addq (%rcx,%r14,8), %rax
shrq $0x20, %rax
movl %eax, (%rsp)
movq 0x8(%rbx), %rsi
cmpq 0x10(%rbx), %rsi
je 0xc8b5
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rbx)
jmp 0xc8c0
movq %rbx, %rdi
movq %rsp, %rdx
callq 0xd368
incq %r14
movl 0x50(%r15), %eax
cmpq %rax, %r14
jb 0xc805
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x6d67(%rip), %rdi      # 0x13650
leaq 0x6d78(%rip), %rsi      # 0x13668
leaq 0x6d7d(%rip), %rcx      # 0x13674
movl $0x22, %edx
callq 0x6200
jmp 0xc907
jmp 0xc907
jmp 0xc907
movq %rax, %r14
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xc917
callq 0x6300
movq %r14, %rdi
callq 0x65b0
nop
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/minhash.cpp
// Function: rp::MinHash::minhash_universal(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&)
vector<uint32_t> MinHash::minhash_universal(const set<string>& s_set) {

    vector<uint32_t> mh_sig(sig_len,UINT32_MAX);
    for(string s : s_set) {
        uint64_t xxh = static_cast<uint64_t>(XXH64(s.data(),s.size(),seed));
        vector<uint32_t> rh = random_uint32_universal_hash(xxh);
        for(int i=0; i<sig_len; i++) {
            if(rh[i] < mh_sig[i])
                mh_sig[i] = rh[i];
        }
    }
    
    return std::move(mh_sig);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, 0x8(%rsp)
movl 0x50(%rsi), %esi
leaq 0x10(%rsp), %rdx
movl $0xffffffff, (%rdx)     # imm = 0xFFFFFFFF
leaq 0x30(%rsp), %rdi
leaq 0x50(%rsp), %rcx
callq 0xcc9c
movq 0x18(%r14), %r12
addq $0x8, %r14
cmpq %r14, %r12
je 0xca0d
leaq 0x20(%rsp), %rbx
leaq 0x10(%rsp), %r13
leaq 0x50(%rsp), %rbp
movq %rbx, 0x10(%rsp)
movq 0x20(%r12), %rsi
movq 0x28(%r12), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x833e
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movl 0x54(%r15), %edx
callq 0xd844
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0xc788
cmpl $0x0, 0x50(%r15)
je 0xc9db
movq 0x50(%rsp), %rax
movq 0x30(%rsp), %rcx
xorl %edx, %edx
movl (%rax,%rdx,4), %esi
cmpl (%rcx,%rdx,4), %esi
jae 0xc9cf
movl %esi, (%rcx,%rdx,4)
incq %rdx
movl 0x50(%r15), %esi
cmpq %rsi, %rdx
jb 0xc9c4
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0xc9ea
callq 0x6300
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0xc9f9
callq 0x6300
movq %r12, %rdi
callq 0x6390
movq %rax, %r12
cmpq %r14, %rax
jne 0xc976
movaps 0x30(%rsp), %xmm0
movq 0x8(%rsp), %rax
movups %xmm0, (%rax)
movq 0x40(%rsp), %rcx
movq %rcx, 0x10(%rax)
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
jmp 0xca4b
jmp 0xca39
movq %rax, %r14
movq 0x10(%rsp), %rdi
cmpq %rbx, %rdi
je 0xca4b
callq 0x6300
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xca5a
callq 0x6300
movq %r14, %rdi
callq 0x65b0
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/./xxHash/xxhash.c
// Function: XXH32
XXH_PUBLIC_API unsigned int XXH32 (const void* input, size_t len, unsigned int seed)
{
#if 0
    /* Simple version, good for code maintenance, but unfortunately slow for small inputs */
    XXH32_state_t state;
    XXH32_reset(&state, seed);
    XXH32_update(&state, input, len);
    return XXH32_digest(&state);
#else
    XXH_endianess endian_detected = (XXH_endianess)XXH_CPU_LITTLE_ENDIAN;

    if (XXH_FORCE_ALIGN_CHECK) {
        if ((((size_t)input) & 3) == 0) {   /* Input is 4-bytes aligned, leverage the speed benefit */
            if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT)
                return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_aligned);
            else
                return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_aligned);
    }   }

    if ((endian_detected==XXH_littleEndian) || XXH_FORCE_NATIVE_FORMAT)
        return XXH32_endian_align(input, len, seed, XXH_littleEndian, XXH_unaligned);
    else
        return XXH32_endian_align(input, len, seed, XXH_bigEndian, XXH_unaligned);
#endif
}

// Assembly:
pushq %rbp
pushq %rbx
leaq (%rdi,%rsi), %rax
cmpq $0x10, %rsi
jb 0xd4db
leaq -0x10(%rax), %r8
leal 0x24234428(%rdx), %r10d
leal -0x7a143589(%rdx), %r9d
leal 0x61c8864f(%rdx), %ecx
imull $0x85ebca77, (%rdi), %r11d # imm = 0x85EBCA77
addl %r10d, %r11d
roll $0xd, %r11d
imull $0x85ebca77, 0x4(%rdi), %ebx # imm = 0x85EBCA77
addl %r9d, %ebx
roll $0xd, %ebx
imull $0x9e3779b1, %r11d, %r10d # imm = 0x9E3779B1
imull $0x85ebca77, 0x8(%rdi), %r11d # imm = 0x85EBCA77
addl %edx, %r11d
roll $0xd, %r11d
imull $0x85ebca77, 0xc(%rdi), %ebp # imm = 0x85EBCA77
imull $0x9e3779b1, %ebx, %r9d # imm = 0x9E3779B1
addl %ecx, %ebp
roll $0xd, %ebp
imull $0x9e3779b1, %r11d, %edx # imm = 0x9E3779B1
imull $0x9e3779b1, %ebp, %ecx # imm = 0x9E3779B1
addq $0x10, %rdi
cmpq %r8, %rdi
jbe 0xd46a
roll %r10d
roll $0x7, %r9d
addl %r10d, %r9d
roll $0xc, %edx
roll $0x12, %ecx
addl %edx, %ecx
addl %r9d, %ecx
jmp 0xd4e3
addl $0x165667b1, %edx       # imm = 0x165667B1
movl %edx, %ecx
addl %ecx, %esi
leaq 0x4(%rdi), %rcx
cmpq %rax, %rcx
jbe 0xd4f3
movq %rdi, %rcx
jmp 0xd52d
imull $0xc2b2ae3d, (%rdi), %ecx # imm = 0xC2B2AE3D
addl %esi, %ecx
roll $0x11, %ecx
imull $0x27d4eb2f, %ecx, %esi # imm = 0x27D4EB2F
leaq 0x4(%rdi), %rcx
addq $0x8, %rdi
cmpq %rax, %rdi
movq %rcx, %rdi
jbe 0xd4f3
jmp 0xd52d
movzbl (%rcx), %edx
imull $0x165667b1, %edx, %edx # imm = 0x165667B1
addl %esi, %edx
roll $0xb, %edx
imull $0x9e3779b1, %edx, %esi # imm = 0x9E3779B1
incq %rcx
cmpq %rax, %rcx
jb 0xd516
movl %esi, %eax
shrl $0xf, %eax
xorl %esi, %eax
imull $0x85ebca77, %eax, %eax # imm = 0x85EBCA77
movl %eax, %ecx
shrl $0xd, %ecx
xorl %eax, %ecx
imull $0xc2b2ae3d, %ecx, %ecx # imm = 0xC2B2AE3D
movl %ecx, %eax
shrl $0x10, %eax
xorl %ecx, %eax
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/./xxHash/xxhash.c
// Function: XXH32_reset
XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, unsigned int seed)
{
    XXH32_state_t state;   /* using a local state to memcpy() in order to avoid strict-aliasing warnings */
    memset(&state, 0, sizeof(state)-4);   /* do not write into reserved, for future removal */
    state.v1 = seed + PRIME32_1 + PRIME32_2;
    state.v2 = seed + PRIME32_2;
    state.v3 = seed + 0;
    state.v4 = seed - PRIME32_1;
    memcpy(statePtr, &state, sizeof(state));
    return XXH_OK;
}

// Assembly:
leal 0x24234428(%rsi), %eax
leal -0x7a143589(%rsi), %ecx
movq $0x0, (%rdi)
movl %eax, 0x8(%rdi)
movl %ecx, 0xc(%rdi)
movl %esi, 0x10(%rdi)
addl $0x61c8864f, %esi       # imm = 0x61C8864F
movl %esi, 0x14(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rdi)
movl $0x0, 0x28(%rdi)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/./xxHash/xxhash.c
// Function: XXH32_digest
FORCE_INLINE U32 XXH32_digest_endian (const XXH32_state_t* state, XXH_endianess endian)
{
    const BYTE * p = (const BYTE*)state->mem32;
    const BYTE* const bEnd = (const BYTE*)(state->mem32) + state->memsize;
    U32 h32;

    if (state->large_len) {
        h32 = XXH_rotl32(state->v1, 1) + XXH_rotl32(state->v2, 7) + XXH_rotl32(state->v3, 12) + XXH_rotl32(state->v4, 18);
    } else {
        h32 = state->v3 /* == seed */ + PRIME32_5;
    }

    h32 += state->total_len_32;

    while (p+4<=bEnd) {
        h32 += XXH_readLE32(p, endian) * PRIME32_3;
        h32  = XXH_rotl32(h32, 17) * PRIME32_4;
        p+=4;
    }

    while (p<bEnd) {
        h32 += (*p) * PRIME32_5;
        h32  = XXH_rotl32(h32, 11) * PRIME32_1;
        p++;
    }

    h32 ^= h32 >> 15;
    h32 *= PRIME32_2;
    h32 ^= h32 >> 13;
    h32 *= PRIME32_3;
    h32 ^= h32 >> 16;

    return h32;
}

// Assembly:
movl 0x28(%rdi), %edx
cmpl $0x0, 0x4(%rdi)
je 0xd7b9
movdqu 0x8(%rdi), %xmm0
movdqa 0x5f71(%rip), %xmm1     # 0x136e0
pshufd $0xf5, %xmm0, %xmm2     # xmm2 = xmm0[1,1,3,3]
pmuludq %xmm1, %xmm0
pshufd $0xed, %xmm0, %xmm3     # xmm3 = xmm0[1,3,2,3]
pshufd $0xf5, %xmm1, %xmm1     # xmm1 = xmm1[1,1,3,3]
pmuludq %xmm2, %xmm1
pshufd $0xed, %xmm1, %xmm2     # xmm2 = xmm1[1,3,2,3]
punpckldq %xmm2, %xmm3    # xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
pshufd $0xe8, %xmm0, %xmm0     # xmm0 = xmm0[0,2,2,3]
pshufd $0xe8, %xmm1, %xmm1     # xmm1 = xmm1[0,2,2,3]
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
por %xmm3, %xmm0
pshufd $0xee, %xmm0, %xmm1     # xmm1 = xmm0[2,3,2,3]
paddd %xmm0, %xmm1
pshufd $0x55, %xmm1, %xmm0     # xmm0 = xmm1[1,1,1,1]
paddd %xmm1, %xmm0
movd %xmm0, %eax
jmp 0xd7c1
movl $0x165667b1, %eax       # imm = 0x165667B1
addl 0x10(%rdi), %eax
leaq 0x18(%rdi), %rsi
leaq (%rdi,%rdx), %rcx
addq $0x18, %rcx
addl (%rdi), %eax
cmpl $0x4, %edx
jae 0xd7d9
movq %rsi, %rdx
jmp 0xd813
imull $0xc2b2ae3d, (%rsi), %edx # imm = 0xC2B2AE3D
addl %eax, %edx
roll $0x11, %edx
imull $0x27d4eb2f, %edx, %eax # imm = 0x27D4EB2F
leaq 0x4(%rsi), %rdx
addq $0x8, %rsi
cmpq %rcx, %rsi
movq %rdx, %rsi
jbe 0xd7d9
jmp 0xd813
movzbl (%rdx), %esi
imull $0x165667b1, %esi, %esi # imm = 0x165667B1
addl %eax, %esi
roll $0xb, %esi
imull $0x9e3779b1, %esi, %eax # imm = 0x9E3779B1
incq %rdx
cmpq %rcx, %rdx
jb 0xd7fc
movl %eax, %ecx
shrl $0xf, %ecx
xorl %eax, %ecx
imull $0x85ebca77, %ecx, %eax # imm = 0x85EBCA77
movl %eax, %ecx
shrl $0xd, %ecx
xorl %eax, %ecx
imull $0xc2b2ae3d, %ecx, %ecx # imm = 0xC2B2AE3D
movl %ecx, %eax
shrl $0x10, %eax
xorl %ecx, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/./xxHash/xxhash.c
// Function: XXH64_reset
XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, unsigned long long seed)
{
    XXH64_state_t state;   /* using a local state to memcpy() in order to avoid strict-aliasing warnings */
    memset(&state, 0, sizeof(state)-8);   /* do not write into reserved, for future removal */
    state.v1 = seed + PRIME64_1 + PRIME64_2;
    state.v2 = seed + PRIME64_2;
    state.v3 = seed + 0;
    state.v4 = seed - PRIME64_1;
    memcpy(statePtr, &state, sizeof(state));
    return XXH_OK;
}

// Assembly:
movabsq $0x60ea27eeadc0b5d6, %rax # imm = 0x60EA27EEADC0B5D6
addq %rsi, %rax
movabsq $-0x3d4d51c2d82b14b1, %rcx # imm = 0xC2B2AE3D27D4EB4F
addq %rsi, %rcx
movabsq $0x61c8864e7a143579, %rdx # imm = 0x61C8864E7A143579
addq %rsi, %rdx
xorl %r8d, %r8d
movq %r8, (%rdi)
movq %rax, 0x8(%rdi)
movq %rcx, 0x10(%rdi)
movq %rsi, 0x18(%rdi)
movq %rdx, 0x20(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rdi)
movups %xmm0, 0x38(%rdi)
movq %r8, 0x48(%rdi)
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/lsh.cpp
// Function: rp::LSH::LSH(unsigned int, unsigned int, unsigned int, unsigned int)
LSH::LSH(const unsigned minhash_sig_len, const unsigned lsh_bands,
             const unsigned ngram_len, const unsigned seed) {
        this->minhash_sig_len = minhash_sig_len;
        this->lsh_bands = lsh_bands;
        this->ngram_len = ngram_len;
        this->seed = seed;
        
        mh = MinHash(minhash_sig_len,seed);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %r8d, %ebp
movl %ecx, %r12d
movl %edx, %r13d
movl %esi, %r15d
movq %rdi, %rbx
addq $0x10, %rdi
xorl %r14d, %r14d
movq %rdi, 0x8(%rsp)
movl $0x64, %esi
xorl %edx, %edx
callq 0xc72c
leaq 0x70(%rbx), %rax
movl %r14d, 0x70(%rbx)
movq %r14, 0x78(%rbx)
movq %rax, 0x80(%rbx)
movq %rax, 0x88(%rbx)
movq %r14, 0x90(%rbx)
leaq 0xa0(%rbx), %rax
movl %r14d, 0xa0(%rbx)
movq %r14, 0xa8(%rbx)
movq %rax, 0xb0(%rbx)
movq %rax, 0xb8(%rbx)
movq %r14, 0xc0(%rbx)
leaq 0xd0(%rbx), %rax
movl %r14d, 0xd0(%rbx)
movq %r14, 0xd8(%rbx)
movq %rax, 0xe0(%rbx)
movq %rax, 0xe8(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0xf0(%rbx)
movups %xmm0, 0x100(%rbx)
movups %xmm0, 0x110(%rbx)
movups %xmm0, 0x120(%rbx)
movups %xmm0, 0x130(%rbx)
movl %r15d, (%rbx)
movl %r13d, 0x4(%rbx)
movl %r12d, 0x8(%rbx)
movl %ebp, 0xc(%rbx)
leaq 0x10(%rsp), %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0xc72c
movq 0x10(%rbx), %rdi
movaps 0x10(%rsp), %xmm0
movq 0x20(%rsp), %rax
movq %rdi, 0x10(%rsp)
movups 0x18(%rbx), %xmm1
movups %xmm0, 0x10(%rbx)
movq %rax, 0x20(%rbx)
movups %xmm1, 0x18(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
testq %rdi, %rdi
je 0xdf55
callq 0x6300
movq 0x28(%rbx), %rdi
movups 0x28(%rsp), %xmm0
movq 0x38(%rsp), %rax
movq %rdi, 0x28(%rsp)
movups 0x30(%rbx), %xmm1
movups %xmm0, 0x28(%rbx)
movq %rax, 0x38(%rbx)
movaps %xmm1, 0x30(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, 0x28(%rsp)
movq $0x0, 0x38(%rsp)
testq %rdi, %rdi
je 0xdf94
callq 0x6300
movq 0x60(%rsp), %rax
movq %rax, 0x60(%rbx)
movaps 0x40(%rsp), %xmm0
movaps 0x50(%rsp), %xmm1
movups %xmm1, 0x50(%rbx)
movups %xmm0, 0x40(%rbx)
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xdfbe
callq 0x6300
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0xdfcd
callq 0x6300
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rsp), %r14
movq %rax, %r15
movq 0x128(%rbx), %rdi
testq %rdi, %rdi
je 0xdff5
callq 0x6300
movq 0x110(%rbx), %rdi
testq %rdi, %rdi
je 0xe006
callq 0x6300
leaq 0xf8(%rbx), %rdi
leaq 0xc8(%rbx), %r12
leaq 0x98(%rbx), %r13
addq $0x68, %rbx
callq 0x7b2a
movq %r12, %rdi
callq 0x8006
movq %r13, %rdi
callq 0x7ff2
movq %rbx, %rdi
callq 0x7ff2
movq %r14, %rdi
callq 0xfd92
movq %r15, %rdi
callq 0x65b0
// File: /workspace/github_c_makefile_star2_O1/perdisci[P]LSH/lsh.cpp
// Function: rp::LSH::candidate_probability(unsigned int, unsigned int, float)
float LSH::candidate_probability(unsigned minhash_sig_len, unsigned lsh_bands, float jaccard_sim) {
        unsigned r = minhash_sig_len/lsh_bands;
        unsigned b = lsh_bands;
        float s = jaccard_sim;
        return 1 - std::pow((1 - std::pow(s,r)),b);
    }

// Assembly:
pushq %rbx
movl %edx, %ebx
movl %esi, %eax
xorl %edx, %edx
divl %ebx
cvtss2sd %xmm0, %xmm0
cvtsi2sd %rax, %xmm1
callq 0x6590
movsd 0x3993(%rip), %xmm2     # 0x136f8
subsd %xmm0, %xmm2
movl %ebx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
movapd %xmm2, %xmm0
callq 0x6590
movsd 0x3974(%rip), %xmm1     # 0x136f8
subsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
popq %rbx
retq
nop
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_index_get_path
const void table_index_get_path(TableIndex *index, uint64_t column, char* buff)
{
    int   dir_len;
    dir_len = strlen(index->dir);
    strcpy(buff, index->dir);
    buff[dir_len] = '/';
    sprintf(buff + dir_len + 1, "column%lu.index", column);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
movq (%rdi), %r15
movq %r15, %rdi
callq 0x1090
movq %rax, %r12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1050
movslq %r12d, %rax
leaq (%rbx,%rax), %rdi
incq %rdi
movb $0x2f, -0x1(%rdi)
leaq 0x2171(%rip), %rsi      # 0x498d
movq %r14, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x1170
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_search_range
TableRows *table_search_range(Table *table, uint64_t column, uint64_t min_value, uint64_t max_value, uint64_t limit)
{
    TableRows *rows;

    table_lock(table);

    if(table_index_is_exist(table->indexs, column))
        rows = table_search_by_index(table, column, min_value, max_value, limit);
    else
        rows = table_search_by_exhaustion(table, column, min_value, max_value, limit);

    table_unlock(table);

    return rows;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %r8, %r12
movq %rcx, 0x8(%rsp)
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %rbx
callq 0x2a02
movq %rbx, 0x10(%rsp)
movq 0x8(%rbx), %r15
movq %r14, %rbx
movl 0x8(%r15,%r14,8), %ebp
movl $0x10, %edi
callq 0x1120
movq %rax, %r14
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
testl %ebp, %ebp
je 0x292f
movq %r15, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x3226
movq %rax, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq 0x8(%rsp), %rcx
callq 0x188c
movq %rax, %r15
movq %rax, %rdi
callq 0x1561
testq %rax, %rax
je 0x290b
movq %rax, %r12
xorl %r13d, %r13d
movq %r15, %rdi
movq %r13, %rsi
callq 0x1565
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rcx
movq 0x18(%rcx), %rcx
cmpq %rax, (%rcx)
jbe 0x29e3
movq 0x8(%rcx), %rcx
movq (%rcx,%rax,8), %rbp
movq (%r14), %rbx
movq 0x8(%r14), %rdi
leaq 0x1(%rbx), %rax
movq %rax, (%r14)
leaq 0x8(,%rbx,8), %rsi
callq 0x1130
movq %rax, 0x8(%r14)
movq %rbp, (%rax,%rbx,8)
incq %r13
cmpq %r13, %r12
jne 0x28b7
movq %r15, %rdi
callq 0x154b
movq 0x10(%rsp), %rdi
callq 0x2a31
movq %r14, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testq %r12, %r12
movq 0x8(%rsp), %r15
je 0x2913
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x2913
movq %r13, %rsi
xorl %r13d, %r13d
movq %rbx, 0x20(%rsp)
movq %rdi, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x18(%rax), %rax
cmpq %r13, (%rax)
jbe 0x29e3
movq 0x8(%rax), %rax
movq (%rax,%r13,8), %rbp
movq (%rbp,%rbx,8), %rax
cmpq %rsi, %rax
setb %cl
cmpq %r15, %rax
seta %al
orb %cl, %al
jne 0x29cd
movq (%r14), %rbx
movq 0x8(%r14), %rdi
leaq 0x1(%rbx), %rax
movq %rax, (%r14)
movq %r12, 0x8(%rsp)
movq %rsi, %r12
leaq 0x8(,%rbx,8), %rsi
callq 0x1130
movq 0x18(%rsp), %rdi
movq %r12, %rsi
movq 0x8(%rsp), %r12
movq %rax, 0x8(%r14)
movq %rbp, (%rax,%rbx,8)
movq 0x20(%rsp), %rbx
decq %r12
incq %r13
cmpq %rdi, %r13
jae 0x2913
testq %r12, %r12
jne 0x295e
jmp 0x2913
leaq 0x1f52(%rip), %rdi      # 0x493c
leaq 0x1f60(%rip), %rsi      # 0x4951
leaq 0x1f61(%rip), %rcx      # 0x4959
movl $0x8a, %edx
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_search
TableRows *table_search(Table *table, uint64_t column, uint64_t value, uint64_t limit)
{
    TableRows *rows;

    table_lock(table);

    rows = table_search_range(table, column, value, value, limit);

    table_unlock(table);

    return rows;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
callq 0x2a02
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x2831
movq %rax, %rbx
movq %r12, %rdi
callq 0x2a31
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_append
void table_append(Table *table, TableRow *row)
{
    uint64_t rowid;
    
    table_lock(table);
    
    rowid = table_content_append_row(table->content, row);
    table_index_update(table->indexs, row, rowid);

    table_unlock(table);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x2a02
movq 0x10(%rbx), %rax
movq 0x18(%rax), %r12
movq (%r12), %r15
movq 0x8(%r12), %rdi
leaq 0x1(%r15), %rax
movq %rax, (%r12)
leaq 0x8(,%r15,8), %rsi
callq 0x1130
movq %rax, 0x8(%r12)
movq %r14, (%rax,%r15,8)
movq 0x8(%rbx), %r12
xorl %r13d, %r13d
cmpq $0x1, 0x8(%r12,%r13,8)
jne 0x2b1a
movq (%r14,%r13,8), %rbp
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x3226
movq %rax, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x169f
incq %r13
cmpq $0x64, %r13
jne 0x2af3
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2a31
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_create_index
int table_create_index(Table *table, uint64_t column)
{
    TableRows *rows;
    int rtv;
    
    table_lock(table);
    
    rows = table_content_get_all_rows(table->content);
    rtv = table_index_create(table->indexs, column, rows);
    
    table_unlock(table);
    return rtv;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x2a02
movq 0x8(%rbx), %r12
cmpq $0x0, 0x8(%r12,%r14,8)
je 0x2b8e
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
cmpq $0x0, 0x328(%r12,%r14,8)
jne 0x2bf0
leaq 0x1ea3(%rip), %rdi      # 0x4a19
leaq 0x1dd4(%rip), %rsi      # 0x4951
leaq 0x1eb8(%rip), %rcx      # 0x4a3c
movl $0x19d, %edx            # imm = 0x19D
callq 0x10d0
movq 0x10(%rbx), %rax
movq 0x18(%rax), %r13
movq $0x1, 0x8(%r12,%r14,8)
movq %r12, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x3226
cmpq $0x0, 0x328(%r12,%r14,8)
je 0x2c28
movq (%r13), %rbp
testq %rbp, %rbp
je 0x2bee
movq %rax, %r15
xorl %r12d, %r12d
cmpq %r12, (%r13)
jbe 0x2c09
movq 0x8(%r13), %rax
movq (%rax,%r12,8), %rax
movq (%rax,%r14,8), %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x169f
incq %r12
cmpq %r12, %rbp
jne 0x2bc9
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x2a31
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1d2c(%rip), %rdi      # 0x493c
leaq 0x1d3a(%rip), %rsi      # 0x4951
leaq 0x1d3b(%rip), %rcx      # 0x4959
movl $0x8a, %edx
callq 0x10d0
leaq 0x1dea(%rip), %rdi      # 0x4a19
leaq 0x1d1b(%rip), %rsi      # 0x4951
leaq 0x1dff(%rip), %rcx      # 0x4a3c
movl $0x1a4, %edx            # imm = 0x1A4
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_close
void table_close(Table *table)
{
    pthread_mutex_destroy(&table->mutex);
    table_flush(table);
    table_index_destory(table->indexs);
    table_content_destory(table->content);
    free(table->dir);
    free(table);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
addq $0x18, %rdi
callq 0x10b0
movq %rbx, %rdi
callq 0x2f7b
movq 0x8(%rbx), %r14
movl $0x65, %r15d
movq (%r14,%r15,8), %rdi
testq %rdi, %rdi
je 0x3191
cmpq $0x1, -0x320(%r14,%r15,8)
jne 0x3207
callq 0x1be2
incq %r15
cmpq $0xc9, %r15
jne 0x3178
movq %r14, %rdi
callq 0x1030
movq 0x10(%rbx), %r14
movq 0x18(%r14), %r15
cmpq $0x0, (%r15)
je 0x31cb
xorl %r12d, %r12d
movq 0x8(%r15), %rax
movq (%rax,%r12,8), %rdi
callq 0x1030
incq %r12
cmpq %r12, (%r15)
ja 0x31b6
movq 0x8(%r15), %rdi
callq 0x1030
movq %r15, %rdi
callq 0x1030
movq (%r14), %rdi
callq 0x1030
movq %r14, %rdi
callq 0x1030
movq (%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x1030
leaq 0x19e4(%rip), %rdi      # 0x4bf2
leaq 0x173c(%rip), %rsi      # 0x4951
leaq 0x1a15(%rip), %rcx      # 0x4c31
movl $0x1c8, %edx            # imm = 0x1C8
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_index_get
static BTree *table_index_get(TableIndex *index, uint64_t column, int is_creat)
{
    BTree        *bt;
    BTreeOpenFlag flag;
    char          full_name[64];

    if (index->index_trees[column] == NULL)
    {
        table_index_get_path(index, column, full_name);

        flag.file = full_name;
        flag.order = 101;
        if (is_creat)
        {
            flag.create_if_missing = 1;
            flag.error_if_exist = 1;
        }
        else
        {
            flag.create_if_missing = 0;
            flag.error_if_exist = 0;
        }
        

        bt = bt_open(flag);
        assert(bt != NULL);
        index->index_trees[column] = bt;
    }


    return index->index_trees[column];
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x78, %rsp
movq %rsi, %rbx
movq %rdi, %r14
cmpq $0x0, 0x328(%rdi,%rsi,8)
jne 0x3298
movl %edx, %ebp
leaq 0x30(%rsp), %r15
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x27e0
movq %r15, 0x18(%rsp)
movq $0x65, 0x20(%rsp)
xorl %eax, %eax
testl %ebp, %ebp
setne %al
movl %eax, 0x28(%rsp)
movl %eax, 0x2c(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x18(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x1923
testq %rax, %rax
je 0x32ab
movq %rax, 0x328(%r14,%rbx,8)
movq 0x328(%r14,%rbx,8), %rax
addq $0x78, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x170d(%rip), %rdi      # 0x49bf
leaq 0x1698(%rip), %rsi      # 0x4951
leaq 0x170a(%rip), %rcx      # 0x49ca
movl $0x17c, %edx            # imm = 0x17C
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O1/CkTD[P]btree/table.c
// Function: table_content_get_path
static char *table_content_get_path(const char *dir)
{
    int   len;
    char *full_path;
    const char *fixed_name = "/table";  // 6 characters
    len = strlen(dir);
    full_path = (char *)malloc(len + 7);
    strcpy(full_path, dir);
    strcpy(full_path + len, fixed_name);
    return full_path;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x1090
movq %rax, %r14
addl $0x7, %eax
movslq %eax, %rdi
callq 0x1120
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1050
movslq %r14d, %rax
movl $0x6261742f, (%r15,%rax) # imm = 0x6261742F
movl $0x656c62, 0x3(%r15,%rax) # imm = 0x656C62
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O1/nmmmnu[P]HM2/test_hm.c
// Function: hm_memtable_test
void hm_memtable_test(){
	hm_memtable_t *v = hm_memtable_createa();

	_hm_memtable_test_dump(v);
	_hm_memtable_test_overwrite(v);
	_hm_memtable_test_remove(v);

	hm_memtable_destroy(v);
	free(v);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
xorl %eax, %eax
callq 0x1e2a
movq %rax, %rbx
movq %rax, %rdi
callq 0x1652
movq %rax, %r14
movq %rbx, %rdi
callq 0x1ebf
movq %rax, %r15
testq %rax, %rax
je 0x1438
movq %r15, %rdi
callq 0x1ee8
testq %rax, %rax
je 0x1438
movq %rax, %rdi
callq 0x195f
movq %r15, %rdi
callq 0x1f02
jmp 0x1421
movq %r15, %rdi
callq 0x1ee3
movq %rbx, %rdi
callq 0x1ebb
cmpq %r14, %rax
leaq 0xbf4(%rip), %r15       # 0x2046
leaq 0xbf0(%rip), %r14       # 0x2049
movq %r14, %rcx
cmoveq %r15, %rcx
leaq 0xbb3(%rip), %r12       # 0x201a
leaq 0xc19(%rip), %r13       # 0x2087
leaq 0xc20(%rip), %rdx       # 0x2095
movq %r12, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x1050
leaq 0xc13(%rip), %rdx       # 0x209c
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x1050
leaq 0xc00(%rip), %rdx       # 0x20a0
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1652
leaq 0xc1f(%rip), %r15       # 0x20de
leaq 0xc1e(%rip), %rsi       # 0x20e4
movq %r15, %rdi
movl $0x8, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1e90
leaq 0xbeb(%rip), %rbp       # 0x20d2
movq %r15, %rdi
movq %rbp, %rsi
movl $0xb, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1e90
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e95
movq %rax, %rdi
callq 0x18c0
movq %rax, %rdi
movq %rbp, %rsi
callq 0x1070
testl %eax, %eax
movq %r14, %rcx
leaq 0xb18(%rip), %r15       # 0x2046
cmoveq %r15, %rcx
leaq 0xbb4(%rip), %rdx       # 0x20ed
movq %r12, %rdi
movq %r12, %rbp
movq %r13, %rsi
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1652
leaq 0xb66(%rip), %rsi       # 0x20be
movq %rbx, %rdi
callq 0x1eb1
leaq 0xb4b(%rip), %rsi       # 0x20b2
movq %rbx, %rdi
callq 0x1eb1
leaq 0xb51(%rip), %rsi       # 0x20c7
movq %rbx, %rdi
callq 0x1eb1
leaq 0xb20(%rip), %rsi       # 0x20a5
movq %rbx, %rdi
callq 0x1e95
movq %rax, %rdi
callq 0x18c0
leaq 0xb10(%rip), %rsi       # 0x20ac
movq %rax, %rdi
callq 0x1070
testl %eax, %eax
movq %r14, %rcx
cmoveq %r15, %rcx
movq %r15, %r12
leaq 0xb40(%rip), %r15       # 0x20f7
movq %rbp, %r13
movq %rbp, %rdi
leaq 0xac3(%rip), %rbp       # 0x2087
movq %rbp, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1eb6
cmpq $0x1, %rax
movq %r14, %rcx
cmoveq %r12, %rcx
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
leaq 0xaa7(%rip), %rsi       # 0x20a5
callq 0x1eb1
movq %rbx, %rdi
callq 0x1eb6
testq %rax, %rax
cmoveq %r12, %r14
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1e78
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O1/nmmmnu[P]HM2/test_hm.c
// Function: hm_memtable_populate
static size_t _hm_memtable_populate(hm_memtable_t *v){
	hm_memtable_removeall(v);

	hm_pair_t *p;
	size_t size = 0;

	// go to empty list
	p = hm_pair_create("3 city", "Sofia");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go first
	p = hm_pair_create("1 name", "Niki");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go middle
	p = hm_pair_create("2 age", "22");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go last
	p = hm_pair_create("4 os", "Linux");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);

	return size;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
callq 0x1e8b
leaq 0xa3b(%rip), %rdi       # 0x20a5
leaq 0xa3b(%rip), %rsi       # 0x20ac
movl $0x5, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rax, %r14
movq %rax, %rdi
callq 0x18a2
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1e90
leaq 0xa15(%rip), %rdi       # 0x20b2
leaq 0xa15(%rip), %rsi       # 0x20b9
movl $0x4, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rax, %r12
movq %rax, %rdi
callq 0x18a2
movq %rax, %r14
addq %r15, %r14
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1e90
leaq 0x9eb(%rip), %rdi       # 0x20be
leaq 0x9ea(%rip), %rsi       # 0x20c4
movl $0x2, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rax, %r15
movq %rax, %rdi
callq 0x18a2
movq %rax, %r12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e90
leaq 0x9c1(%rip), %rdi       # 0x20c7
leaq 0x9bf(%rip), %rsi       # 0x20cc
movl $0x5, %edx
xorl %ecx, %ecx
callq 0x1748
movq %rax, %r15
movq %rax, %rdi
callq 0x18a2
movq %rax, %r13
addq %r12, %r13
addq %r14, %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1e90
movq %r13, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O1/albinoloverats[P]hide/src/webp.c
// Function: init
extern image_type_t *init(void)
{
	static image_type_t webp;
	webp.type = "WEBP";
	webp.is_type = is_webp;
	webp.read = read_webp;
	webp.write = write_webp;
	webp.info = info_webp;
	webp.free = free_webp;
	return &webp;
}

// Assembly:
leaq 0xe3d(%rip), %rax       # 0x2000
movq %rax, 0x2ebe(%rip)      # 0x4088
leaq 0x2eb7(%rip), %rax      # 0x4088
leaq 0x40(%rip), %rcx        # 0x1218
movq %rcx, 0x2eb1(%rip)      # 0x4090
leaq 0x95(%rip), %rcx        # 0x127b
movq %rcx, 0x2eab(%rip)      # 0x4098
leaq 0x22e(%rip), %rcx       # 0x1422
movq %rcx, 0x2ea5(%rip)      # 0x40a0
leaq 0x36f(%rip), %rcx       # 0x1571
movq %rcx, 0x2e9f(%rip)      # 0x40a8
leaq 0x37b(%rip), %rcx       # 0x158b
movq %rcx, 0x2e99(%rip)      # 0x40b0
retq
// File: /workspace/github_c_makefile_star2_O1/albinoloverats[P]hide/src/webp.c
// Function: is_webp
static bool is_webp(char *file_name)
{
	FILE *fp = fopen(file_name, "rb");
	if (!fp)
		return false;

	uint8_t header[1024];
	fread(header, 1, sizeof header, fp);
	fclose(fp);

	return WebPGetInfo(header, sizeof header, NULL, NULL);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
leaq 0xddc(%rip), %rsi       # 0x2005
callq 0x1090
testq %rax, %rax
je 0x126e
movq %rax, %rbx
movq %rsp, %r14
movl $0x1, %esi
movl $0x400, %edx            # imm = 0x400
movq %r14, %rdi
movq %rax, %rcx
callq 0x1050
movq %rbx, %rdi
callq 0x1060
movl $0x400, %esi            # imm = 0x400
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1070
testl %eax, %eax
setne %al
jmp 0x1270
xorl %eax, %eax
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/albinoloverats[P]hide/src/webp.c
// Function: write_webp
static int write_webp(image_info_t image_info, void (*progress_update)(uint64_t, uint64_t))
{
	errno = EXIT_SUCCESS;

	FILE *fp = fopen(image_info.file, "wb");
	if (!fp)
		return errno;

	uint8_t *raw = NULL;
	uint64_t l = image_info.width * image_info.bpp;
	uint8_t *img = malloc(l * image_info.height);
	for (uint64_t y = 0; y < image_info.height; y++)
	{
		memcpy(img + y * l, image_info.buffer[y], l);
		free(image_info.buffer[y]);
		if (progress_update)
			progress_update(y, image_info.height);
	}
	free(image_info.buffer);

	size_t (*webpencode)(const uint8_t *, int, int, int, uint8_t **) = image_info.bpp == 4 ? WebPEncodeLosslessRGBA : WebPEncodeLosslessRGB;
	l = webpencode(img, image_info.width, image_info.height, l, &raw);

	fwrite(raw, 1, l, fp);
	free(raw);
	free(img);
	fclose(fp);

	return errno;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r13
callq 0x1040
movq %rax, %rbx
movl $0x0, (%rax)
movq 0x70(%rsp), %rdi
leaq 0xbbb(%rip), %rsi       # 0x2008
callq 0x1090
testq %rax, %rax
je 0x1503
movq %rax, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
leaq 0x70(%rsp), %rcx
movq $0x0, 0x30(%rsp)
movq 0x28(%rcx), %r12
movq 0x30(%rcx), %rax
movzwl 0x38(%rcx), %ebp
movq %rbp, 0x28(%rsp)
movq %rax, 0x8(%rsp)
imulq %rax, %rbp
movq %rbp, %rdi
imulq %r12, %rdi
callq 0x10b0
movq %rax, 0x20(%rsp)
testq %r12, %r12
je 0x14e4
leaq 0x70(%rsp), %rax
movq 0x40(%rax), %r14
xorl %ebx, %ebx
movq 0x20(%rsp), %r15
movq (%r14,%rbx,8), %rsi
movq %r15, %rdi
movq %rbp, %rdx
callq 0x10a0
movq (%r14,%rbx,8), %rdi
callq 0x1030
testq %r13, %r13
je 0x14d9
movq %rbx, %rdi
movq %r12, %rsi
callq *%r13
incq %rbx
addq %rbp, %r15
cmpq %rbx, %r12
jne 0x14b3
leaq 0x70(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x1030
cmpw $0x4, 0x28(%rsp)
jne 0x1507
movq 0x2ac7(%rip), %rax      # 0x3fc8
jmp 0x150e
movl (%rbx), %eax
jmp 0x1562
movq 0x2ada(%rip), %rax      # 0x3fe8
movq 0x18(%rsp), %r14
movq 0x10(%rsp), %r15
movq 0x8(%rsp), %rsi
leaq 0x30(%rsp), %rbx
movq 0x20(%rsp), %r13
movq %r13, %rdi
movl %r12d, %edx
movl %ebp, %ecx
movq %rbx, %r8
callq *%rax
movq (%rbx), %rdi
movl $0x1, %esi
movq %rax, %rdx
movq %r15, %rcx
callq 0x10e0
movq (%rbx), %rdi
callq 0x1030
movq %r13, %rdi
callq 0x1030
movq %r15, %rdi
callq 0x1060
movl (%r14), %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O1/jalalium[P]graph_algorithms_task/src_path/aux_funcs.c
// Function: append
t_vect	*append(t_vect *src, int add)
{
	t_vect		*copy = (t_vect*)malloc(sizeof(t_vect));

	init_vector(copy);
	for (int i = 0;i < src->used; i++)
		push_back(copy, src->tab[i]);
	push_back(copy, add);
	return copy;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %esi, %ebx
movq %rdi, %r15
movl $0x18, %edi
callq 0x1080
movq %rax, %r14
movq %rax, %rdi
callq 0x1c90
cmpq $0x0, 0x10(%r15)
je 0x1271
xorl %r12d, %r12d
movq (%r15), %rax
movl (%rax,%r12,4), %esi
movq %r14, %rdi
callq 0x1d36
incq %r12
cmpq %r12, 0x10(%r15)
ja 0x1259
movq %r14, %rdi
movl %ebx, %esi
callq 0x1d36
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O1/jalalium[P]graph_algorithms_task/src_path/free.c
// Function: free_paths
void	free_paths(t_graph *g)
{
	for (int i = 0; i < g->paths->size; i++)
		free(g->paths->path[i].tab);
	free(g->paths->path);
	free(g->paths);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %rax
cmpq $0x0, 0x8(%rax)
je 0x133f
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rax), %rax
movq (%rax,%r14), %rdi
callq 0x1030
incq %r15
movq 0x8(%rbx), %rax
addq $0x18, %r14
cmpq %r15, 0x8(%rax)
ja 0x1322
movq (%rax), %rdi
callq 0x1030
movq 0x8(%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O1/jalalium[P]graph_algorithms_task/src_path/free.c
// Function: free_graph
void	free_graph(t_graph *g)
{
	for (int i = 0; i < g->vertx; i++)
		free(g->adj[i].tab);
	free(g->adj);
	free_paths(g);
	free(g);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpl $0x0, 0x10(%rdi)
jle 0x138f
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rbx), %rax
movq (%rax,%r14), %rdi
callq 0x1030
incq %r15
movslq 0x10(%rbx), %rax
addq $0x18, %r14
cmpq %rax, %r15
jl 0x1373
movq (%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
callq 0x1304
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1030
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O1/jalalium[P]graph_algorithms_task/src_path/graph.c
// Function: get_dimensions
int		get_dimensions(t_graph *new)
{
	int n, m, dir, node;

	scanf("%d %d %d %d", &n, &m, &dir, &node);
	if (!valid_dimensions(n,m,new))
	{
		free(new);
		return 0;
	}
	if (!valid_params(dir, node, new))
	{
		free(new);
		return 0;
	}
	if (!init_adj(new))
		return 0;
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq 0xb5e(%rip), %rdi       # 0x2044
xorl %r14d, %r14d
leaq -0x30(%rbp), %r15
leaq -0x2c(%rbp), %r12
leaq -0x28(%rbp), %rcx
leaq -0x24(%rbp), %r8
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x1090
movl (%r15), %edi
movl (%r12), %esi
movq %rbx, %rdx
callq 0x1c6d
testl %eax, %eax
je 0x1538
movl -0x28(%rbp), %edi
movl -0x24(%rbp), %esi
movq %rbx, %rdx
callq 0x1bcc
movq %rbx, %rdi
testl %eax, %eax
je 0x1542
callq 0x1454
movl %eax, %r14d
jmp 0x154a
movq %rbx, %rdi
callq 0x1030
jmp 0x154a
callq 0x1030
xorl %r14d, %r14d
movl %r14d, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq