// File: /workspace/github_cpp_makefile_star2_O1/vsklad[P]cgen/./acl/sha256.hpp
// Function: acl::SHA256<bal::Literal<bal::Anf>>::execute(bal::Ref<bal::GF2NElement<32ul, bal::Literal<bal::Anf>>>*, unsigned long, bal::Ref<bal::GF2NElement<32ul, bal::Literal<bal::Anf>>> (&) [8], bal::Tracer<32ul, bal::Literal<bal::Anf>>&, unsigned int)
void execute(Ref<Word> *M,
                     const std::size_t M_size, // size in words
                     Ref<Word> (&H)[SHA256_HASH_SIZE],
                     Tracer<SHA256_WORD_SIZE, BIT>& tracer,
                     const uint32_t rounds = ROUNDS_NUMBER) {
            
            assert(M_size > 0 && (M_size % SHA256_MESSAGE_BLOCK_SIZE) == 0);
            assert(rounds > 0 && rounds <= SHA256_ROUNDS_NUMBER);
            
            const Ref<Word> K[SHA256_ROUNDS_NUMBER] = {
                0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
                0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
                0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
                0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
                0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
                0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
                0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
                0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
                0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
                0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
                0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
                0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
                0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
                0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
                0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
                0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
            };
            
            H[0] = 0x6a09e667;
            H[1] = 0xbb67ae85;
            H[2] = 0x3c6ef372;
            H[3] = 0xa54ff53a;
            H[4] = 0x510e527f;
            H[5] = 0x9b05688c;
            H[6] = 0x1f83d9ab;
            H[7] = 0x5be0cd19;
            
            for (std::size_t block_index = 0; block_index < M_size / SHA256_MESSAGE_BLOCK_SIZE; block_index++) {
                Ref<Word> W[rounds];
                
                for (unsigned int i = 0; i < _min(SHA256_MESSAGE_BLOCK_SIZE, rounds); i++) {
                    W[i] = M[i];
                    tracer.trace("M", block_index * SHA256_MESSAGE_BLOCK_SIZE + i, M[i]);
                    tracer.trace("W", block_index * SHA256_MESSAGE_BLOCK_SIZE + i, M[i]);
                };
                
                for (unsigned int i = SHA256_MESSAGE_BLOCK_SIZE; i < rounds; i++) {
                    Ref<Word> args[] = { ss1(W[i-2]), W[i-7], ss0(W[i-15]), W[i-16] };
                    W[i] = add(args);
                    tracer.trace("W", block_index * SHA256_MESSAGE_BLOCK_SIZE + i, W[i]);
                };
                
                Ref<Word> a = H[0];
                Ref<Word> b = H[1];
                Ref<Word> c = H[2];
                Ref<Word> d = H[3];
                Ref<Word> e = H[4];
                Ref<Word> f = H[5];
                Ref<Word> g = H[6];
                Ref<Word> h = H[7];
                
                for (unsigned int i = 0; i < rounds; i++) {
                    Ref<Word> args[] = { h, sl1(e), ch(e, f, g), K[i], W[i] };
                    Ref<Word> t1 = add(args);
                    Ref<Word> t2 = sl0(a) + maj(a, b, c);
                    
                    h = g;
                    g = f;
                    f = e;
                    e = d + t1;
                    d = c;
                    c = b;
                    b = a;
                    a = t1 + t2;
                    
                    tracer.trace("A", block_index * SHA256_MESSAGE_BLOCK_SIZE + i, a);
                };
                
                H[0] = a + H[0];
                H[1] = b + H[1];
                H[2] = c + H[2];
                H[3] = d + H[3];
                H[4] = e + H[4];
                H[5] = f + H[5];
                H[6] = g + H[6];
                H[7] = h + H[7];
                
                M += SHA256_MESSAGE_BLOCK_SIZE;
            };
                
            trace(tracer, "H", H);
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x338, %rsp            # imm = 0x338
movq %r9, -0x70(%rbp)
movq %rsi, -0x130(%rbp)
testq %rdx, %rdx
je 0x32ce9
movq %rdx, %r14
movl %r14d, %eax
andl $0xf, %eax
jne 0x32ce9
movq -0x70(%rbp), %rax
decl %eax
cmpl $0x40, %eax
jae 0x32d08
movq %r8, %r12
movq %rcx, %r13
movq %rdi, -0x140(%rbp)
movq $0x0, -0x360(%rbp)
xorl %edi, %edi
movl $0x428a2f98, %esi       # imm = 0x428A2F98
callq 0x30702
leaq -0x360(%rbp), %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x358(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x71374491, %esi       # imm = 0x71374491
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x350(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xb5c0fbcf, %esi       # imm = 0xB5C0FBCF
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x348(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xe9b5dba5, %esi       # imm = 0xE9B5DBA5
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x340(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x3956c25b, %esi       # imm = 0x3956C25B
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x338(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x59f111f1, %esi       # imm = 0x59F111F1
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x330(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x923f82a4, %esi       # imm = 0x923F82A4
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x328(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xab1c5ed5, %esi       # imm = 0xAB1C5ED5
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x320(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xd807aa98, %esi       # imm = 0xD807AA98
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x318(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x12835b01, %esi       # imm = 0x12835B01
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x310(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x243185be, %esi       # imm = 0x243185BE
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x308(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x550c7dc3, %esi       # imm = 0x550C7DC3
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x300(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x72be5d74, %esi       # imm = 0x72BE5D74
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2f8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x80deb1fe, %esi       # imm = 0x80DEB1FE
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2f0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x9bdc06a7, %esi       # imm = 0x9BDC06A7
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2e8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xc19bf174, %esi       # imm = 0xC19BF174
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2e0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xe49b69c1, %esi       # imm = 0xE49B69C1
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2d8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xefbe4786, %esi       # imm = 0xEFBE4786
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2d0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xfc19dc6, %esi        # imm = 0xFC19DC6
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2c8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x240ca1cc, %esi       # imm = 0x240CA1CC
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2c0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x2de92c6f, %esi       # imm = 0x2DE92C6F
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2b8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x4a7484aa, %esi       # imm = 0x4A7484AA
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2b0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x5cb0a9dc, %esi       # imm = 0x5CB0A9DC
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2a8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x76f988da, %esi       # imm = 0x76F988DA
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x2a0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x983e5152, %esi       # imm = 0x983E5152
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x298(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xa831c66d, %esi       # imm = 0xA831C66D
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x290(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xb00327c8, %esi       # imm = 0xB00327C8
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x288(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xbf597fc7, %esi       # imm = 0xBF597FC7
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x280(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xc6e00bf3, %esi       # imm = 0xC6E00BF3
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x278(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xd5a79147, %esi       # imm = 0xD5A79147
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x270(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x6ca6351, %esi        # imm = 0x6CA6351
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x268(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x14292967, %esi       # imm = 0x14292967
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x260(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x27b70a85, %esi       # imm = 0x27B70A85
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x258(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x2e1b2138, %esi       # imm = 0x2E1B2138
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x250(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x4d2c6dfc, %esi       # imm = 0x4D2C6DFC
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x248(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x53380d13, %esi       # imm = 0x53380D13
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x240(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x650a7354, %esi       # imm = 0x650A7354
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x238(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x766a0abb, %esi       # imm = 0x766A0ABB
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x230(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x81c2c92e, %esi       # imm = 0x81C2C92E
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x228(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x92722c85, %esi       # imm = 0x92722C85
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x220(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xa2bfe8a1, %esi       # imm = 0xA2BFE8A1
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x218(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xa81a664b, %esi       # imm = 0xA81A664B
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x210(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xc24b8b70, %esi       # imm = 0xC24B8B70
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x208(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xc76c51a3, %esi       # imm = 0xC76C51A3
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x200(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xd192e819, %esi       # imm = 0xD192E819
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1f8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xd6990624, %esi       # imm = 0xD6990624
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1f0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xf40e3585, %esi       # imm = 0xF40E3585
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1e8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x106aa070, %esi       # imm = 0x106AA070
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1e0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x19a4c116, %esi       # imm = 0x19A4C116
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1d8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x1e376c08, %esi       # imm = 0x1E376C08
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1d0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x2748774c, %esi       # imm = 0x2748774C
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1c8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x34b0bcb5, %esi       # imm = 0x34B0BCB5
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1c0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x391c0cb3, %esi       # imm = 0x391C0CB3
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1b8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x4ed8aa4a, %esi       # imm = 0x4ED8AA4A
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1b0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x5b9cca4f, %esi       # imm = 0x5B9CCA4F
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1a8(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x682e6ff3, %esi       # imm = 0x682E6FF3
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x1a0(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x748f82ee, %esi       # imm = 0x748F82EE
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x198(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x78a5636f, %esi       # imm = 0x78A5636F
callq 0x30702
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x190(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x84c87814, %esi       # imm = 0x84C87814
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x188(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x8cc70208, %esi       # imm = 0x8CC70208
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x180(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0x90befffa, %esi       # imm = 0x90BEFFFA
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x178(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xa4506ceb, %esi       # imm = 0xA4506CEB
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x170(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xbef9a3f7, %esi       # imm = 0xBEF9A3F7
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
leaq -0x168(%rbp), %rbx
movq $0x0, (%rbx)
xorl %edi, %edi
movl $0xc67178f2, %esi       # imm = 0xC67178F2
callq 0x307b2
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2f3bc
movq (%r13), %rdi
movl $0x6a09e667, %esi       # imm = 0x6A09E667
callq 0x30702
movq %r13, %rdi
movq %rax, %rsi
callq 0x2f3bc
movq 0x8(%r13), %rdi
movl $0xbb67ae85, %esi       # imm = 0xBB67AE85
callq 0x307b2
leaq 0x8(%r13), %rdi
movq %rdi, -0x118(%rbp)
movq %rax, %rsi
callq 0x2f3bc
movq 0x10(%r13), %rdi
movl $0x3c6ef372, %esi       # imm = 0x3C6EF372
callq 0x30702
leaq 0x10(%r13), %rdi
movq %rdi, -0x120(%rbp)
movq %rax, %rsi
callq 0x2f3bc
movq 0x18(%r13), %rdi
movl $0xa54ff53a, %esi       # imm = 0xA54FF53A
callq 0x307b2
leaq 0x18(%r13), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x2f3bc
movq 0x20(%r13), %rdi
movl $0x510e527f, %esi       # imm = 0x510E527F
callq 0x30702
leaq 0x20(%r13), %rdi
movq %rdi, -0x108(%rbp)
movq %rax, %rsi
callq 0x2f3bc
movq 0x28(%r13), %rdi
movl $0x9b05688c, %esi       # imm = 0x9B05688C
callq 0x307b2
leaq 0x28(%r13), %rdi
movq %rdi, -0x100(%rbp)
movq %rax, %rsi
callq 0x2f3bc
movq 0x30(%r13), %rdi
movl $0x1f83d9ab, %esi       # imm = 0x1F83D9AB
callq 0x30702
movq %r15, -0x110(%rbp)
leaq 0x30(%r13), %rdi
movq %rdi, -0xf8(%rbp)
movq %rax, %rsi
callq 0x2f3bc
movq 0x38(%r13), %rdi
movl $0x5be0cd19, %esi       # imm = 0x5BE0CD19
callq 0x30702
leaq 0x38(%r13), %rdi
movq %rdi, -0xf0(%rbp)
movq %rax, %rsi
callq 0x2f3bc
shrq $0x4, %r14
movq -0x70(%rbp), %rax
cmpl $0x10, %eax
movl $0x10, %ecx
cmovbl %eax, %ecx
movl %eax, %r15d
leaq (,%r15,8), %rax
movq %rax, -0xe8(%rbp)
shll $0x3, %ecx
movq %rcx, -0x158(%rbp)
movq $0x0, -0xe0(%rbp)
movq $0x0, -0xc8(%rbp)
movq %r12, -0xd0(%rbp)
movq %r13, -0x128(%rbp)
movq %r14, -0x138(%rbp)
movq %rsp, -0x148(%rbp)
movq %rsp, %rdi
leaq 0xf(,%r15,8), %rax
andq $-0x10, %rax
subq %rax, %rdi
movq %rdi, %rsp
movq %rdi, -0x38(%rbp)
xorl %esi, %esi
movq -0xe8(%rbp), %rdx
callq 0xc160
cmpl $0x0, -0x70(%rbp)
je 0x32406
movq -0xe0(%rbp), %r13
xorl %r14d, %r14d
movq -0x130(%rbp), %rax
leaq (%rax,%r14), %r12
movq -0x38(%rbp), %rcx
leaq (%rcx,%r14), %rdi
movq (%rax,%r14), %rsi
callq 0x2f3bc
movq -0xd0(%rbp), %rbx
movq (%rbx), %rax
movq %rbx, %rdi
leaq 0x185c4(%rip), %rsi     # 0x4a99b
movq %r13, %rdx
movq %r12, %rcx
callq *0x8(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
leaq 0x15524(%rip), %rsi     # 0x47911
movq %r13, %rdx
movq %r12, %rcx
callq *0x8(%rax)
addq $0x8, %r14
incq %r13
cmpq %r14, -0x158(%rbp)
jne 0x323a7
cmpl $0x11, -0x70(%rbp)
movq -0x140(%rbp), %rbx
jb 0x32549
movq -0xc8(%rbp), %r13
shlq $0x4, %r13
movq -0x38(%rbp), %rax
leaq -0x10(%rax), %rcx
movq %rcx, -0xd8(%rbp)
addq $-0x78, %rax
movq %rax, -0x150(%rbp)
movl $0x10, %r14d
movq -0xd8(%rbp), %rax
leaq (%rax,%r14,8), %rdx
leaq -0xb0(%rbp), %rdi
movq %rdi, %r12
movq %rbx, %rsi
callq 0x331aa
movq -0x38(%rbp), %rax
movq -0x38(%rax,%r14,8), %rax
movq %rax, -0xa8(%rbp)
testq %rax, %rax
je 0x3247f
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq -0x150(%rbp), %rax
leaq (%rax,%r14,8), %rdx
leaq -0xa0(%rbp), %rdi
movq %rdi, %r12
movq %rbx, %rsi
callq 0x3329c
movq -0x38(%rbp), %rax
movq -0x80(%rax,%r14,8), %rax
movq %rax, -0x98(%rbp)
testq %rax, %rax
je 0x324bc
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
leaq -0x30(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3338d
movq -0x38(%rbp), %rax
leaq (%rax,%r14,8), %rcx
movq -0x30(%rbp), %rax
movq %rax, (%rcx)
leaq (%r14,%r13), %rdx
movq -0xd0(%rbp), %rdi
movq (%rdi), %rax
leaq 0x15421(%rip), %rsi     # 0x47911
callq *0x8(%rax)
movl $0x18, %r12d
movq -0xb0(%rbp,%r12), %rax
testq %rax, %rax
je 0x32533
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32522
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32527
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0xb0(%rbp,%r12)
addq $-0x8, %r12
cmpq $-0x8, %r12
jne 0x324f9
incq %r14
cmpq %r15, %r14
jne 0x32442
movq -0x128(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x30(%rbp)
testq %rax, %rax
je 0x32567
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq -0x118(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
testq %rax, %rax
movq -0x108(%rbp), %rdx
movq -0x100(%rbp), %rsi
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %r8
leaq -0xb0(%rbp), %r14
je 0x325a8
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq -0x120(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
testq %rax, %rax
je 0x325c6
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq -0x110(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x80(%rbp)
testq %rax, %rax
je 0x325e4
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq (%rdx), %rax
movq %rax, -0x40(%rbp)
testq %rax, %rax
je 0x325fb
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq (%rsi), %rax
movq %rax, -0x58(%rbp)
testq %rax, %rax
je 0x32612
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq (%rdi), %rax
movq %rax, -0x50(%rbp)
testq %rax, %rax
je 0x32629
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq (%r8), %rax
movq %rax, -0x78(%rbp)
testq %rax, %rax
je 0x32640
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
cmpl $0x0, -0x70(%rbp)
je 0x32926
movq -0xc8(%rbp), %rax
shlq $0x4, %rax
movq %rax, -0xd8(%rbp)
xorl %r13d, %r13d
movq -0x78(%rbp), %rax
movq %rax, -0xb0(%rbp)
testq %rax, %rax
je 0x3267a
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
leaq -0xa8(%rbp), %rdi
movq %rdi, %r12
movq %rbx, %rsi
leaq -0x40(%rbp), %rdx
callq 0x3342a
movq -0x40(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq -0x50(%rbp), %r8
leaq -0xa0(%rbp), %rdi
movq %rdi, %r12
xorl %esi, %esi
callq 0x30d77
movq -0x360(%rbp,%r13,8), %rax
movq %rax, -0x98(%rbp)
testq %rax, %rax
je 0x326cc
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
movq -0x38(%rbp), %rax
movq (%rax,%r13,8), %rax
movq %rax, -0x90(%rbp)
testq %rax, %rax
je 0x326eb
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
incl 0x8(%rax,%rcx)
leaq -0x88(%rbp), %rdi
movq %r14, %rsi
callq 0x30665
leaq -0x48(%rbp), %rdi
movq %rbx, %rsi
leaq -0x30(%rbp), %rdx
callq 0x3351c
movq -0x30(%rbp), %rdx
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %r8
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
callq 0x31489
movq -0x48(%rbp), %rdx
movq -0xb8(%rbp), %rcx
leaq -0xc0(%rbp), %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb8(%rbp), %rax
testq %rax, %rax
je 0x32775
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32765
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3276a
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0xb8(%rbp)
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x327a7
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x3279a
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3279f
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x48(%rbp)
movq -0x50(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x2f3bc
movq -0x58(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x2f3bc
movq -0x40(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x2f3bc
movq -0x80(%rbp), %rdx
movq -0x88(%rbp), %rcx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
xorl %esi, %esi
callq 0x31662
movq -0x48(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x60(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0x2f3bc
movq -0x68(%rbp), %rsi
leaq -0x60(%rbp), %rdi
callq 0x2f3bc
movq -0x30(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x2f3bc
movq -0x88(%rbp), %rdx
movq -0xc0(%rbp), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x31662
movq -0x48(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0xd8(%rbp), %rax
leaq (%rax,%r13), %rdx
movq -0xd0(%rbp), %rdi
movq (%rdi), %rax
leaq 0x18b32(%rip), %rsi     # 0x4b384
leaq -0x30(%rbp), %rcx
callq *0x8(%rax)
movq -0xc0(%rbp), %rax
testq %rax, %rax
je 0x32891
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32881
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32886
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0xc0(%rbp)
movq -0x88(%rbp), %rax
testq %rax, %rax
je 0x328c9
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x328b9
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x328be
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x88(%rbp)
movl $0x20, %r14d
movq -0xb0(%rbp,%r14), %rax
testq %rax, %rax
je 0x32909
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x328f8
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x328fd
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0xb0(%rbp,%r14)
addq $-0x8, %r14
cmpq $-0x8, %r14
jne 0x328cf
incq %r13
cmpq %r15, %r13
leaq -0xb0(%rbp), %r14
jne 0x3265f
movq -0x30(%rbp), %rdx
movq -0x128(%rbp), %r12
movq (%r12), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r12)
movq -0x68(%rbp), %rdx
movq %r12, %rbx
movq 0x8(%r12), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xd0(%rbp), %r13
movq -0x120(%rbp), %r12
movq -0xb0(%rbp), %rax
movq -0x118(%rbp), %rcx
movq %rax, (%rcx)
movq -0x60(%rbp), %rdx
movq (%r12), %rcx
movq %r14, %rdi
xorl %esi, %esi
callq 0x31662
movq %r12, %rcx
movq %r14, %r12
movq -0xb0(%rbp), %rax
movq %rax, (%rcx)
movq -0x80(%rbp), %rdx
movq -0x110(%rbp), %r14
movq (%r14), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r14)
movq -0x40(%rbp), %rdx
movq -0x108(%rbp), %r14
movq (%r14), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r14)
movq -0x58(%rbp), %rdx
movq -0x100(%rbp), %r14
movq (%r14), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r14)
movq -0x50(%rbp), %rdx
movq -0xf8(%rbp), %r14
movq (%r14), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r14)
movq -0x78(%rbp), %rdx
movq -0xf0(%rbp), %r14
movq (%r14), %rcx
movq %r12, %rdi
xorl %esi, %esi
callq 0x31662
movq -0xb0(%rbp), %rax
movq %rax, (%r14)
movq -0x78(%rbp), %rax
testq %rax, %rax
movq %r13, %r12
movq %rbx, %r13
je 0x32a83
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32a76
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32a7b
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x78(%rbp)
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0x32ab5
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32aa8
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32aad
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x50(%rbp)
movq -0x58(%rbp), %rax
testq %rax, %rax
je 0x32ae7
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32ada
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32adf
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x58(%rbp)
movq -0x40(%rbp), %rax
testq %rax, %rax
je 0x32b19
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32b0c
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32b11
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x40(%rbp)
movq -0x80(%rbp), %rax
testq %rax, %rax
je 0x32b4b
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32b3e
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32b43
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x80(%rbp)
movq -0x60(%rbp), %rax
testq %rax, %rax
je 0x32b7d
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32b70
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32b75
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x32baf
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32ba2
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32ba7
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x68(%rbp)
movq -0x30(%rbp), %rax
testq %rax, %rax
je 0x32be1
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32bd4
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32bd9
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x30(%rbp)
cmpl $0x0, -0x70(%rbp)
je 0x32c30
movq -0xe8(%rbp), %r14
movq -0x38(%rbp), %rax
movq -0x8(%rax,%r14), %rax
testq %rax, %rax
je 0x32c2a
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32c18
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32c1d
decl %eax
movl %eax, 0x8(%rdi)
movq -0x38(%rbp), %rax
movq $0x0, -0x8(%rax,%r14)
addq $-0x8, %r14
jne 0x32bee
movq -0x148(%rbp), %rsp
subq $-0x80, -0x130(%rbp)
movq -0xc8(%rbp), %rcx
incq %rcx
addq $0x10, -0xe0(%rbp)
movq -0x138(%rbp), %r14
movq %rcx, -0xc8(%rbp)
cmpq %r14, %rcx
jne 0x32369
xorl %ebx, %ebx
leaq 0x18715(%rip), %r15     # 0x4b386
movq (%r12), %rax
movq %r12, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r13, %rcx
callq *0x8(%rax)
incq %rbx
addq $0x8, %r13
cmpq $0x8, %rbx
jne 0x32c71
movl $0x1f8, %ebx            # imm = 0x1F8
movq -0x360(%rbp,%rbx), %rax
testq %rax, %rax
je 0x32cd0
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32cbf
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32cc4
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x360(%rbp,%rbx)
addq $-0x8, %rbx
cmpq $-0x8, %rbx
jne 0x32c96
leaq -0x28(%rbp), %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x18fc5(%rip), %rdi     # 0x4bcb5
leaq 0x18ff6(%rip), %rsi     # 0x4bced
leaq 0x19000(%rip), %rcx     # 0x4bcfe
movl $0x3d, %edx
callq 0xc180
leaq 0x19095(%rip), %rdi     # 0x4bda4
leaq 0x18fd7(%rip), %rsi     # 0x4bced
leaq 0x18fe1(%rip), %rcx     # 0x4bcfe
movl $0x3e, %edx
callq 0xc180
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32e12
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
jmp 0x32dcb
movq %rax, %r14
leaq -0x360(%rbp), %r15
cmpq %rbx, %r15
jne 0x32de2
movq %r14, %rdi
callq 0xc4e0
addq $-0x8, %rbx
movq (%rbx), %rdi
testq %rdi, %rdi
jne 0x32dfc
leaq -0x8(%rbx), %rax
cmpq %r15, %rbx
movq %rax, %rbx
jne 0x32de6
jmp 0x32dda
movq %rbx, %rsi
callq 0xce9b
jmp 0x32dee
movq %rax, %r14
leaq -0x360(%rbp), %rbx
jmp 0x32dce
movq %rax, %r14
jmp 0x3314a
jmp 0x32e28
jmp 0x32e28
jmp 0x32e28
jmp 0x32e28
jmp 0x32e28
jmp 0x32e28
jmp 0x32e28
movq %rax, %r14
jmp 0x32faf
jmp 0x32e32
movq %rax, %r14
movl $0x18, %r12d
movq -0xb0(%rbp,%r12), %rdi
testq %rdi, %rdi
jne 0x32e57
addq $-0x8, %r12
cmpq $-0x8, %r12
jne 0x32e3b
jmp 0x33144
leaq (%r12,%rbp), %rsi
addq $-0xb0, %rsi
callq 0xce2d
jmp 0x32e48
movq %rax, %r14
jmp 0x32f45
jmp 0x32e75
jmp 0x32e75
movq %rax, %r14
movq -0xc0(%rbp), %rax
testq %rax, %rax
je 0x32f0d
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32ea4
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32ea9
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0xc0(%rbp)
jmp 0x32f0d
movq %rax, %r14
movq -0xb8(%rbp), %rdi
testq %rdi, %rdi
je 0x32ed6
leaq -0xb8(%rbp), %rsi
callq 0xcdbf
jmp 0x32ed6
movq %rax, %r14
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x32f0d
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32efb
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32f00
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x48(%rbp)
jmp 0x32f0d
movq %rax, %r14
movq -0x88(%rbp), %rax
testq %rax, %rax
je 0x32f45
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32f35
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32f3a
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x88(%rbp)
movl $0x20, %r12d
movq -0xb0(%rbp,%r12), %rdi
testq %rdi, %rdi
jne 0x32f64
addq $-0x8, %r12
cmpq $-0x8, %r12
jne 0x32f4b
jmp 0x32faf
leaq (%r12,%rbp), %rsi
addq $-0xb0, %rsi
callq 0xcdf6
jmp 0x32f58
movq %rax, %r14
leaq -0xb0(%rbp), %rax
cmpq %r12, %rax
je 0x33144
leaq -0xb0(%rbp), %rsi
movq %r12, %rdi
callq 0xcd2d
jmp 0x33144
movq %rax, %r14
leaq -0xb0(%rbp), %rsi
movq %r12, %rdi
callq 0xcd76
movq -0x78(%rbp), %rax
testq %rax, %rax
je 0x32fe1
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x32fd4
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x32fd9
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x78(%rbp)
movq -0x50(%rbp), %rax
testq %rax, %rax
je 0x33013
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x33006
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3300b
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x50(%rbp)
movq -0x58(%rbp), %rax
testq %rax, %rax
je 0x33045
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x33038
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3303d
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x58(%rbp)
movq -0x40(%rbp), %rax
testq %rax, %rax
je 0x33077
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x3306a
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x3306f
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x40(%rbp)
movq -0x80(%rbp), %rax
testq %rax, %rax
je 0x330a9
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x3309c
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x330a1
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x80(%rbp)
movq -0x60(%rbp), %rax
testq %rax, %rax
je 0x330db
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x330ce
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x330d3
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rax
testq %rax, %rax
je 0x3310d
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x33100
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x33105
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x68(%rbp)
movq -0x30(%rbp), %rax
testq %rax, %rax
je 0x33144
movq (%rax), %rcx
movq -0x20(%rcx), %rcx
leaq (%rax,%rcx), %rdi
movl 0x8(%rax,%rcx), %eax
cmpl $0x1, %eax
ja 0x33132
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x33137
decl %eax
movl %eax, 0x8(%rdi)
movq $0x0, -0x30(%rbp)
jmp 0x33144
movq %rax, %r14
cmpl $0x0, -0x70(%rbp)
jne 0x3317d
movl $0x1f8, %ebx            # imm = 0x1F8
movq -0x360(%rbp,%rbx), %rdi
testq %rdi, %rdi
jne 0x3316b
addq $-0x8, %rbx
cmpq $-0x8, %rbx
jne 0x3314f
jmp 0x32dda
leaq (%rbx,%rbp), %rsi
addq $-0x360, %rsi           # imm = 0xFCA0
callq 0xced2
jmp 0x3315c
addq $-0x8, -0x38(%rbp)
shlq $0x3, %r15
movq -0x38(%rbp), %rax
movq (%rax,%r15), %rdi
testq %rdi, %rdi
jne 0x3319b
addq $-0x8, %r15
jne 0x33186
jmp 0x3314a
movq -0x38(%rbp), %rax
leaq (%rax,%r15), %rsi
callq 0xce64
jmp 0x33193