// File: ctSkennerton[P]fxtract/util/subref_t.c
// Function: main
int main(void)
{
    plan_tests(9);

    MEMREF  act, x = strref("hello, world");
#   define S(s) ((s) ? (s) : "(null)")
#   define TRY(p, l, exp) \
        if (!ok(!refcmp(act = subref(x,p,l), strref(exp)), "(%d, %d): %s", p, l, S(exp))) \
            fprintf(stderr, "act[%"FSIZE"d]: %.*s\n", act.len, (int)act.len, S(act.ptr))

    TRY(  0,  5, "hello");
    TRY(  2,  3, "llo");
    TRY( -5,  2, "wo");
    TRY( -5, 99, "world");
    TRY(-12,  2, "he");
    TRY(  0, -1, x.ptr);    // (len) is unsigned, so (-1) is just a very big positive number.
    TRY(  0,  0, NULL);
    TRY(  1,  0, NULL);
    TRY(-13,  2, NULL);

    return exit_status();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x340, %rsp            # imm = 0x340
movl $0x0, -0x4(%rbp)
movl $0x9, %edi
callq 0x72b0
leaq 0x4b81(%rip), %rdi      # 0x8004
callq 0x44a0
movq %rax, -0x28(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
xorl %edx, %edx
movl $0x5, %ecx
callq 0x6010
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq 0x4b3e(%rip), %rdi      # 0x8011
callq 0x44a0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x58(%rbp), %rdx
movq -0x50(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x3560
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4b0a(%rip), %r9       # 0x8017
leaq 0x4b08(%rip), %r11      # 0x801c
leaq 0x4b0c(%rip), %r10      # 0x8027
leaq 0x4aef(%rip), %rax      # 0x8011
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x22, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x5, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3631
jmp 0x35be
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4aa9(%rip), %r9       # 0x8017
leaq 0x4aa7(%rip), %r11      # 0x801c
leaq 0x4aab(%rip), %r10      # 0x8027
leaq 0x4a8e(%rip), %rax      # 0x8011
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x22, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x5, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3631
movq 0x7a1b(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x1f0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x1dc(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x35f8
movq -0x18(%rbp), %rax
movq %rax, -0x1f8(%rbp)
jmp 0x3608
leaq 0x4a35(%rip), %rax      # 0x8034
movq %rax, -0x1f8(%rbp)
jmp 0x3608
movl -0x1dc(%rbp), %ecx
movq -0x1e8(%rbp), %rdx
movq -0x1f0(%rbp), %rdi
movq -0x1f8(%rbp), %r8
leaq 0x4a11(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x2, %edx
movl $0x3, %ecx
callq 0x6010
movq %rax, -0x78(%rbp)
movq %rdx, -0x70(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq 0x499c(%rip), %rdi      # 0x8013
callq 0x44a0
movq %rax, -0x88(%rbp)
movq %rdx, -0x80(%rbp)
movq -0x68(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x88(%rbp), %rdx
movq -0x80(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x370a
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4960(%rip), %r9       # 0x8017
leaq 0x495e(%rip), %r11      # 0x801c
leaq 0x4962(%rip), %r10      # 0x8027
leaq 0x4947(%rip), %rax      # 0x8013
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x23, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x2, 0x18(%rsp)
movl $0x3, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x37db
jmp 0x3768
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x48ff(%rip), %r9       # 0x8017
leaq 0x48fd(%rip), %r11      # 0x801c
leaq 0x4901(%rip), %r10      # 0x8027
leaq 0x48e6(%rip), %rax      # 0x8013
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x23, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x2, 0x18(%rsp)
movl $0x3, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x37db
movq 0x7871(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x210(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x208(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x1fc(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x37a2
movq -0x18(%rbp), %rax
movq %rax, -0x218(%rbp)
jmp 0x37b2
leaq 0x488b(%rip), %rax      # 0x8034
movq %rax, -0x218(%rbp)
jmp 0x37b2
movl -0x1fc(%rbp), %ecx
movq -0x208(%rbp), %rdx
movq -0x210(%rbp), %rdi
movq -0x218(%rbp), %r8
leaq 0x4867(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
movl $0x2, %ecx
callq 0x6010
movq %rax, -0xa8(%rbp)
movq %rdx, -0xa0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x4818(%rip), %rdi      # 0x804b
callq 0x44a0
movq %rax, -0xb8(%rbp)
movq %rdx, -0xb0(%rbp)
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rsi
movq -0xb8(%rbp), %rdx
movq -0xb0(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x38d2
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4798(%rip), %r9       # 0x8017
leaq 0x4796(%rip), %r11      # 0x801c
leaq 0x479a(%rip), %r10      # 0x8027
leaq 0x47b7(%rip), %rax      # 0x804b
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x24, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffffb, 0x18(%rsp) # imm = 0xFFFFFFFB
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x39a3
jmp 0x3930
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4737(%rip), %r9       # 0x8017
leaq 0x4735(%rip), %r11      # 0x801c
leaq 0x4739(%rip), %r10      # 0x8027
leaq 0x4756(%rip), %rax      # 0x804b
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x24, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffffb, 0x18(%rsp) # imm = 0xFFFFFFFB
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x39a3
movq 0x76a9(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x230(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x21c(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x396a
movq -0x18(%rbp), %rax
movq %rax, -0x238(%rbp)
jmp 0x397a
leaq 0x46c3(%rip), %rax      # 0x8034
movq %rax, -0x238(%rbp)
jmp 0x397a
movl -0x21c(%rbp), %ecx
movq -0x228(%rbp), %rdx
movq -0x230(%rbp), %rdi
movq -0x238(%rbp), %r8
leaq 0x469f(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
movl $0x63, %ecx
callq 0x6010
movq %rax, -0xd8(%rbp)
movq %rdx, -0xd0(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq 0x4610(%rip), %rdi      # 0x800b
callq 0x44a0
movq %rax, -0xe8(%rbp)
movq %rdx, -0xe0(%rbp)
movq -0xc8(%rbp), %rdi
movq -0xc0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
movq -0xe0(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x3a9a
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x45d0(%rip), %r9       # 0x8017
leaq 0x45ce(%rip), %r11      # 0x801c
leaq 0x45d2(%rip), %r10      # 0x8027
leaq 0x45af(%rip), %rax      # 0x800b
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x25, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffffb, 0x18(%rsp) # imm = 0xFFFFFFFB
movl $0x63, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3b6b
jmp 0x3af8
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x456f(%rip), %r9       # 0x8017
leaq 0x456d(%rip), %r11      # 0x801c
leaq 0x4571(%rip), %r10      # 0x8027
leaq 0x454e(%rip), %rax      # 0x800b
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x25, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffffb, 0x18(%rsp) # imm = 0xFFFFFFFB
movl $0x63, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3b6b
movq 0x74e1(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x250(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x23c(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x3b32
movq -0x18(%rbp), %rax
movq %rax, -0x258(%rbp)
jmp 0x3b42
leaq 0x44fb(%rip), %rax      # 0x8034
movq %rax, -0x258(%rbp)
jmp 0x3b42
movl -0x23c(%rbp), %ecx
movq -0x248(%rbp), %rdx
movq -0x250(%rbp), %rdi
movq -0x258(%rbp), %r8
leaq 0x44d7(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0xfffffff4, %edx       # imm = 0xFFFFFFF4
movl $0x2, %ecx
callq 0x6010
movq %rax, -0x108(%rbp)
movq %rdx, -0x100(%rbp)
movq -0x108(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x100(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq 0x448b(%rip), %rdi      # 0x804e
callq 0x44a0
movq %rax, -0x118(%rbp)
movq %rdx, -0x110(%rbp)
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x118(%rbp), %rdx
movq -0x110(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x3c62
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4408(%rip), %r9       # 0x8017
leaq 0x4406(%rip), %r11      # 0x801c
leaq 0x440a(%rip), %r10      # 0x8027
leaq 0x442a(%rip), %rax      # 0x804e
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x26, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffff4, 0x18(%rsp) # imm = 0xFFFFFFF4
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3d33
jmp 0x3cc0
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x43a7(%rip), %r9       # 0x8017
leaq 0x43a5(%rip), %r11      # 0x801c
leaq 0x43a9(%rip), %r10      # 0x8027
leaq 0x43c9(%rip), %rax      # 0x804e
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x26, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffff4, 0x18(%rsp) # imm = 0xFFFFFFF4
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3d33
movq 0x7319(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x270(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x25c(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x3cfa
movq -0x18(%rbp), %rax
movq %rax, -0x278(%rbp)
jmp 0x3d0a
leaq 0x4333(%rip), %rax      # 0x8034
movq %rax, -0x278(%rbp)
jmp 0x3d0a
movl -0x25c(%rbp), %ecx
movq -0x268(%rbp), %rdx
movq -0x270(%rbp), %rdi
movq -0x278(%rbp), %r8
leaq 0x430f(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
xorl %edx, %edx
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
callq 0x6010
movq %rax, -0x138(%rbp)
movq %rdx, -0x130(%rbp)
movq -0x138(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x130(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0x28(%rbp), %rdi
callq 0x44a0
movq %rax, -0x148(%rbp)
movq %rdx, -0x140(%rbp)
movq -0x128(%rbp), %rdi
movq -0x120(%rbp), %rsi
movq -0x148(%rbp), %rdx
movq -0x140(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x3e4f
cmpq $0x0, -0x28(%rbp)
je 0x3dd6
movq -0x28(%rbp), %rax
movq %rax, -0x280(%rbp)
jmp 0x3de6
leaq 0x4257(%rip), %rax      # 0x8034
movq %rax, -0x280(%rbp)
jmp 0x3de6
movq -0x280(%rbp), %rax
xorl %edi, %edi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x4217(%rip), %r9       # 0x8017
leaq 0x4215(%rip), %r11      # 0x801c
leaq 0x4219(%rip), %r10      # 0x8027
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x27, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3f44
jmp 0x3ed1
cmpq $0x0, -0x28(%rbp)
je 0x3e63
movq -0x28(%rbp), %rax
movq %rax, -0x288(%rbp)
jmp 0x3e73
leaq 0x41ca(%rip), %rax      # 0x8034
movq %rax, -0x288(%rbp)
jmp 0x3e73
movq -0x288(%rbp), %rax
xorl %edi, %edi
xorl %ecx, %ecx
movl %ecx, %r8d
leaq 0x418f(%rip), %r9       # 0x8017
leaq 0x418d(%rip), %r11      # 0x801c
leaq 0x4191(%rip), %r10      # 0x8027
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x27, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0xffffffff, 0x20(%rsp) # imm = 0xFFFFFFFF
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x3f44
movq 0x7108(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x2a0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x28c(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x3f0b
movq -0x18(%rbp), %rax
movq %rax, -0x2a8(%rbp)
jmp 0x3f1b
leaq 0x4122(%rip), %rax      # 0x8034
movq %rax, -0x2a8(%rbp)
jmp 0x3f1b
movl -0x28c(%rbp), %ecx
movq -0x298(%rbp), %rdx
movq -0x2a0(%rbp), %rdi
movq -0x2a8(%rbp), %r8
leaq 0x40fe(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x6010
movq %rax, -0x168(%rbp)
movq %rdx, -0x160(%rbp)
movq -0x168(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x160(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x150(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x44a0
movq %rax, -0x178(%rbp)
movq %rdx, -0x170(%rbp)
movq -0x158(%rbp), %rdi
movq -0x150(%rbp), %rsi
movq -0x178(%rbp), %rdx
movq -0x170(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x4032
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x4038(%rip), %r9       # 0x8017
leaq 0x4036(%rip), %r11      # 0x801c
leaq 0x403a(%rip), %r10      # 0x8027
leaq 0x4040(%rip), %rax      # 0x8034
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x28, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x4103
jmp 0x4090
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x3fd7(%rip), %r9       # 0x8017
leaq 0x3fd5(%rip), %r11      # 0x801c
leaq 0x3fd9(%rip), %r10      # 0x8027
leaq 0x3fdf(%rip), %rax      # 0x8034
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x28, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x4103
movq 0x6f49(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x2c0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x2ac(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x40ca
movq -0x18(%rbp), %rax
movq %rax, -0x2c8(%rbp)
jmp 0x40da
leaq 0x3f63(%rip), %rax      # 0x8034
movq %rax, -0x2c8(%rbp)
jmp 0x40da
movl -0x2ac(%rbp), %ecx
movq -0x2b8(%rbp), %rdx
movq -0x2c0(%rbp), %rdi
movq -0x2c8(%rbp), %r8
leaq 0x3f3f(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x6010
movq %rax, -0x198(%rbp)
movq %rdx, -0x190(%rbp)
movq -0x198(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x190(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x180(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x44a0
movq %rax, -0x1a8(%rbp)
movq %rdx, -0x1a0(%rbp)
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rsi
movq -0x1a8(%rbp), %rdx
movq -0x1a0(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x41f4
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x3e76(%rip), %r9       # 0x8017
leaq 0x3e74(%rip), %r11      # 0x801c
leaq 0x3e78(%rip), %r10      # 0x8027
leaq 0x3e7e(%rip), %rax      # 0x8034
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x29, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x1, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x42c5
jmp 0x4252
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x3e15(%rip), %r9       # 0x8017
leaq 0x3e13(%rip), %r11      # 0x801c
leaq 0x3e17(%rip), %r10      # 0x8027
leaq 0x3e1d(%rip), %rax      # 0x8034
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x29, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0x1, 0x18(%rsp)
movl $0x0, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x42c5
movq 0x6d87(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x2e0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x2cc(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x428c
movq -0x18(%rbp), %rax
movq %rax, -0x2e8(%rbp)
jmp 0x429c
leaq 0x3da1(%rip), %rax      # 0x8034
movq %rax, -0x2e8(%rbp)
jmp 0x429c
movl -0x2cc(%rbp), %ecx
movq -0x2d8(%rbp), %rdx
movq -0x2e0(%rbp), %rdi
movq -0x2e8(%rbp), %r8
leaq 0x3d7d(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
movq -0x28(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl $0xfffffff3, %edx       # imm = 0xFFFFFFF3
movl $0x2, %ecx
callq 0x6010
movq %rax, -0x1c8(%rbp)
movq %rdx, -0x1c0(%rbp)
movq -0x1c8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1b0(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x44a0
movq %rax, -0x1d8(%rbp)
movq %rdx, -0x1d0(%rbp)
movq -0x1b8(%rbp), %rdi
movq -0x1b0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
movq -0x1d0(%rbp), %rcx
callq 0x5cf0
cmpl $0x0, %eax
jne 0x43b9
xorl %edi, %edi
movl $0x1, %esi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x3cb1(%rip), %r9       # 0x8017
leaq 0x3caf(%rip), %r11      # 0x801c
leaq 0x3cb3(%rip), %r10      # 0x8027
leaq 0x3cb9(%rip), %rax      # 0x8034
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x2a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffff3, 0x18(%rsp) # imm = 0xFFFFFFF3
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x448a
jmp 0x4417
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %r8d
leaq 0x3c50(%rip), %r9       # 0x8017
leaq 0x3c4e(%rip), %r11      # 0x801c
leaq 0x3c52(%rip), %r10      # 0x8027
leaq 0x3c58(%rip), %rax      # 0x8034
movq %r8, %rsi
movq %r8, %rdx
movq %r8, %rcx
movq %r11, (%rsp)
movl $0x2a, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movl $0xfffffff3, 0x18(%rsp) # imm = 0xFFFFFFF3
movl $0x2, 0x20(%rsp)
movq %rax, 0x28(%rsp)
movb $0x0, %al
callq 0x65d0
cmpl $0x0, %eax
jne 0x448a
movq 0x6bc2(%rip), %rax      # 0xafe0
movq (%rax), %rax
movq %rax, -0x300(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq -0x10(%rbp), %rax
movl %eax, -0x2ec(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x4451
movq -0x18(%rbp), %rax
movq %rax, -0x308(%rbp)
jmp 0x4461
leaq 0x3bdc(%rip), %rax      # 0x8034
movq %rax, -0x308(%rbp)
jmp 0x4461
movl -0x2ec(%rbp), %ecx
movq -0x2f8(%rbp), %rdx
movq -0x300(%rbp), %rdi
movq -0x308(%rbp), %r8
leaq 0x3bb8(%rip), %rsi      # 0x803b
movb $0x0, %al
callq 0x3280
callq 0x7600
addq $0x340, %rsp            # imm = 0x340
popq %rbp
retq
nopl (%rax,%rax)