// File: /workspace/github_cpp_makefile_star2_O1/tokuhirom[P]nanouri/t/01_parse.c
// Function: main
int main () {
    const char * scheme;
    size_t scheme_len;
    const char * host;
    size_t host_len;
    int port;
    const char *path_query;
    int path_query_len;

#define TEST(uri, expect_scheme, expect_host, expect_port, expect_path_query) \
    do { \
        note(uri); \
        int ret = nanouri_parse_uri(uri, strlen(uri), &scheme, &scheme_len, &host, &host_len, &port, &path_query, &path_query_len); \
        ok(ret == 0, "retval"); \
        ok(strncmp(expect_scheme, scheme, scheme_len) == 0, "scheme"); \
        ok(strlen(expect_scheme) == scheme_len, "scheme_len"); \
        ok(strncmp(expect_host, host, host_len) == 0, "host"); \
        ok(strlen(expect_host) == host_len, "host_len"); \
        ok(port == expect_port, "port"); \
        ok(strncmp(expect_path_query, path_query, path_query_len) == 0, "path_query"); \
        ok(strlen(expect_path_query) == path_query_len, "path_query"); \
    } while (0)

#define TEST_ERROR(uri, expect_ret) \
    do { \
        note(uri); \
        int ret = nanouri_parse_uri(uri, strlen(uri), &scheme, &scheme_len, &host, &host_len, &port, &path_query, &path_query_len); \
        ok(ret == expect_ret, "retval"); \
    } while (0)

    TEST("http://mixi.jp:9090/foo=?bar=baz", "http", "mixi.jp", 9090, "/foo=?bar=baz");
    TEST("http://d.hatena.ne.jp", "http", "d.hatena.ne.jp", 0, "");
    TEST("http://d.hatena.ne.jp:80", "http", "d.hatena.ne.jp", 80, "");
    TEST("http://d.hatena.ne.jp/", "http", "d.hatena.ne.jp", 0, "/");
    TEST("http://livedoor.com/", "http", "livedoor.com", 0, "/");
    TEST("http://127.0.0.1:9090", "http", "127.0.0.1", 9090, "");
    TEST_ERROR("http", -2);
    TEST_ERROR("http:-", -1);

    done_testing();

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq 0x3d1e(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x1d53(%rip), %rsi      # 0x3017
leaq 0x1d59(%rip), %rbx      # 0x3024
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
leaq -0x30(%rbp), %rax
leaq -0x38(%rbp), %r10
leaq -0x2c(%rbp), %r11
leaq -0x58(%rbp), %r12
leaq -0x50(%rbp), %r13
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
movl $0x20, %esi
movq %rbx, %rdi
movq %r12, %rdx
movq %r13, %rcx
pushq %rax
pushq %r10
pushq %r11
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
leaq 0x1cfa(%rip), %rax      # 0x3014
leaq 0x1cef(%rip), %rbx      # 0x3010
movq %rbx, %rsi
cmoveq %rax, %rsi
movq %rax, %r15
movl 0x3d2b(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3d23(%rip)      # 0x505c
leaq 0x1cc4(%rip), %r14      # 0x3004
leaq 0x1cfe(%rip), %rcx      # 0x3045
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
movq (%r12), %rsi
movq (%r13), %rdx
leaq 0x1cec(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3ce8(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3ce0(%rip)      # 0x505c
leaq 0x1cce(%rip), %rcx      # 0x3051
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r13)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3cbd(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3cb5(%rip)      # 0x505c
leaq 0x1caa(%rip), %rcx      # 0x3058
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r12
movq (%r12), %rdx
leaq 0x1c95(%rip), %rdi      # 0x3063
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3c7a(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3c72(%rip)      # 0x505c
leaq 0x1c7a(%rip), %rcx      # 0x306b
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
cmpq $0x7, (%r12)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3c4f(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3c47(%rip)      # 0x505c
leaq 0x1c54(%rip), %rcx      # 0x3070
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
movl $0x2382, %eax           # imm = 0x2382
leaq -0x2c(%rbp), %rcx
cmpl %eax, (%rcx)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3c1e(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3c16(%rip)      # 0x505c
leaq 0x1c2c(%rip), %rcx      # 0x3079
movq %r14, %rdi
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r12
movslq (%r12), %rdx
leaq 0x1bca(%rip), %rdi      # 0x3037
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3bdb(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3bd3(%rip)      # 0x505c
leaq 0x1bee(%rip), %r13      # 0x307e
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0xd, (%r12)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3bad(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3ba5(%rip)      # 0x505c
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x3b0d(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x1bb4(%rip), %r12      # 0x3089
leaq 0x1b3b(%rip), %rsi      # 0x3017
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x15, %esi
movq %r12, %rdi
leaq -0x58(%rbp), %r14
movq %r14, %rdx
leaq -0x50(%rbp), %r12
movq %r12, %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movq %r15, %r13
movl 0x3b2a(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3b22(%rip)      # 0x505c
leaq 0x1ac3(%rip), %r15      # 0x3004
movq %r15, %rdi
leaq 0x1afa(%rip), %rcx      # 0x3045
xorl %eax, %eax
callq 0x1040
movq (%r14), %rsi
movq (%r12), %rdx
leaq 0x1aec(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r13, %rsi
movl 0x3ae8(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3ae0(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x1acb(%rip), %rcx      # 0x3051
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r12)
movq %rbx, %rsi
cmoveq %r13, %rsi
movq %r13, %r12
movl 0x3aba(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3ab2(%rip)      # 0x505c
movq %r15, %rdi
movq %r15, %r13
leaq 0x1aa1(%rip), %rcx      # 0x3058
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r14
movq (%r14), %rdx
leaq 0x1abd(%rip), %rdi      # 0x3090
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3a75(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3a6d(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x1a72(%rip), %rcx      # 0x306b
xorl %eax, %eax
callq 0x1040
cmpq $0xe, (%r14)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3a4b(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3a43(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x1a4d(%rip), %rcx      # 0x3070
xorl %eax, %eax
callq 0x1040
leaq -0x2c(%rbp), %rax
cmpl $0x0, (%rax)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3a1e(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3a16(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x1a29(%rip), %rcx      # 0x3079
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r15
movslq (%r15), %rdx
leaq 0x19b7(%rip), %rdi      # 0x3023
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x39dc(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x39d4(%rip)      # 0x505c
movq %r13, %rdi
leaq 0x19ec(%rip), %r14      # 0x307e
movq %r14, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0x0, (%r15)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x39af(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x39a7(%rip)      # 0x505c
movq %r13, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x390f(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x19cc(%rip), %r12      # 0x309f
leaq 0x193d(%rip), %rsi      # 0x3017
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x18, %esi
movq %r12, %rdi
leaq -0x58(%rbp), %r12
movq %r12, %rdx
leaq -0x50(%rbp), %r13
movq %r13, %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
pushq %r15
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
movq %rbx, %rsi
leaq 0x18ed(%rip), %r15      # 0x3014
cmoveq %r15, %rsi
movl 0x392b(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3923(%rip)      # 0x505c
leaq 0x18c4(%rip), %r14      # 0x3004
movq %r14, %rdi
leaq 0x18fb(%rip), %rcx      # 0x3045
xorl %eax, %eax
callq 0x1040
movq (%r12), %rsi
movq (%r13), %rdx
leaq 0x18ec(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x38e8(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x38e0(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x18cb(%rip), %rcx      # 0x3051
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r13)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x38bd(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x38b5(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x18a7(%rip), %rcx      # 0x3058
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r12
movq (%r12), %rdx
leaq 0x18c2(%rip), %rdi      # 0x3090
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x387a(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3872(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1877(%rip), %rcx      # 0x306b
xorl %eax, %eax
callq 0x1040
cmpq $0xe, (%r12)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x384f(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3847(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1851(%rip), %rcx      # 0x3070
xorl %eax, %eax
callq 0x1040
leaq -0x2c(%rbp), %rax
cmpl $0x50, (%rax)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x3822(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x381a(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x182d(%rip), %rcx      # 0x3079
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r13
movslq (%r13), %rdx
leaq 0x17ba(%rip), %rdi      # 0x3023
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x37df(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x37d7(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x17ef(%rip), %r12      # 0x307e
movq %r12, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0x0, (%r13)
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x37b1(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x37a9(%rip)      # 0x505c
movq %r14, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x3711(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x17e7(%rip), %r12      # 0x30b8
leaq 0x173f(%rip), %rsi      # 0x3017
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x16, %esi
movq %r12, %rdi
leaq -0x58(%rbp), %r15
movq %r15, %rdx
leaq -0x50(%rbp), %r13
movq %r13, %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
movq %rbx, %rsi
leaq 0x16ec(%rip), %r12      # 0x3014
cmoveq %r12, %rsi
movl 0x372a(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3722(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1701(%rip), %rcx      # 0x3045
xorl %eax, %eax
callq 0x1040
movq (%r15), %rsi
movq (%r13), %rdx
leaq 0x16f3(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x36ef(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x36e7(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x16d2(%rip), %rcx      # 0x3051
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r13)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x36c4(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x36bc(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x16ae(%rip), %rcx      # 0x3058
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r15
movq (%r15), %rdx
leaq 0x16ca(%rip), %rdi      # 0x3090
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3682(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x367a(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x167f(%rip), %rcx      # 0x306b
xorl %eax, %eax
callq 0x1040
cmpq $0xe, (%r15)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3658(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3650(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x165a(%rip), %rcx      # 0x3070
xorl %eax, %eax
callq 0x1040
leaq -0x2c(%rbp), %rax
cmpl $0x0, (%rax)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x362b(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3623(%rip)      # 0x505c
movq %r14, %rdi
movq %r14, %r15
leaq 0x1633(%rip), %rcx      # 0x3079
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r13
movslq (%r13), %rdx
leaq 0x167f(%rip), %rdi      # 0x30e2
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movq %r12, %r14
movl 0x35e2(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x35da(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x15f2(%rip), %r12      # 0x307e
movq %r12, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0x1, (%r13)
movq %rbx, %rsi
cmoveq %r14, %rsi
movl 0x35b4(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x35ac(%rip)      # 0x505c
movq %r15, %rdi
movq %r12, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x3514(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x1601(%rip), %r12      # 0x30cf
leaq 0x1542(%rip), %rsi      # 0x3017
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x14, %esi
movq %r12, %rdi
leaq -0x58(%rbp), %r13
movq %r13, %rdx
leaq -0x50(%rbp), %r12
movq %r12, %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r14, %rsi
movl 0x3534(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x352c(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x150b(%rip), %rcx      # 0x3045
xorl %eax, %eax
callq 0x1040
movq (%r13), %rsi
movq (%r12), %rdx
leaq 0x14fc(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r14, %rsi
movq %r14, %r13
movl 0x34f5(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x34ed(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x14d8(%rip), %rcx      # 0x3051
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r12)
movq %rbx, %rsi
cmoveq %r14, %rsi
movl 0x34ca(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x34c2(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x14b4(%rip), %rcx      # 0x3058
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r14
movq (%r14), %rdx
leaq 0x1524(%rip), %rdi      # 0x30e4
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r13, %rsi
movl 0x3488(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3480(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x1485(%rip), %rcx      # 0x306b
xorl %eax, %eax
callq 0x1040
cmpq $0xc, (%r14)
movq %rbx, %rsi
cmoveq %r13, %rsi
movq %r13, %r14
movl 0x345b(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3453(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x145d(%rip), %rcx      # 0x3070
xorl %eax, %eax
callq 0x1040
leaq -0x2c(%rbp), %rax
cmpl $0x0, (%rax)
movq %rbx, %rsi
cmoveq %r13, %rsi
movl 0x342e(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3426(%rip)      # 0x505c
movq %r15, %rdi
movq %r15, %r13
leaq 0x1436(%rip), %rcx      # 0x3079
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r12
movslq (%r12), %rdx
leaq 0x1482(%rip), %rdi      # 0x30e2
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r14, %rsi
movl 0x33e8(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x33e0(%rip)      # 0x505c
movq %r15, %rdi
leaq 0x13f8(%rip), %r15      # 0x307e
movq %r15, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0x1, (%r12)
movq %rbx, %rsi
cmoveq %r14, %rsi
movl 0x33ba(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x33b2(%rip)      # 0x505c
movq %r13, %rdi
movq %r13, %r14
movq %r15, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x3317(%rip), %rax      # 0x4fd8
movq (%rax), %rdi
leaq 0x1426(%rip), %r12      # 0x30f1
leaq 0x1345(%rip), %rsi      # 0x3017
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x15, %esi
movq %r12, %rdi
leaq -0x58(%rbp), %r13
movq %r13, %rdx
leaq -0x50(%rbp), %r12
movq %r12, %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
testl %eax, %eax
movq %rbx, %rsi
leaq 0x12f2(%rip), %r15      # 0x3014
cmoveq %r15, %rsi
movl 0x3330(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3328(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1307(%rip), %rcx      # 0x3045
xorl %eax, %eax
callq 0x1040
movq (%r13), %rsi
movq (%r12), %rdx
leaq 0x12f8(%rip), %rdi      # 0x304c
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r15, %rsi
movl 0x32f4(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x32ec(%rip)      # 0x505c
movq %r14, %rdi
movq %r14, %r13
leaq 0x12d4(%rip), %rcx      # 0x3051
xorl %eax, %eax
callq 0x1040
cmpq $0x4, (%r12)
movq %rbx, %rsi
cmoveq %r15, %rsi
movq %r15, %r12
movl 0x32c3(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x32bb(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x12ad(%rip), %rcx      # 0x3058
xorl %eax, %eax
callq 0x1040
leaq -0x48(%rbp), %rax
movq (%rax), %rsi
leaq -0x40(%rbp), %r15
movq (%r15), %rdx
leaq 0x1340(%rip), %rdi      # 0x3107
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3281(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3279(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x127e(%rip), %rcx      # 0x306b
xorl %eax, %eax
callq 0x1040
cmpq $0x9, (%r15)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3257(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x324f(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1259(%rip), %rcx      # 0x3070
xorl %eax, %eax
callq 0x1040
movl $0x2382, %eax           # imm = 0x2382
leaq -0x2c(%rbp), %rcx
cmpl %eax, (%rcx)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x3226(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x321e(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x1231(%rip), %rcx      # 0x3079
xorl %eax, %eax
callq 0x1040
leaq -0x38(%rbp), %rax
movq (%rax), %rsi
leaq -0x30(%rbp), %r15
movslq (%r15), %rdx
leaq 0x11bf(%rip), %rdi      # 0x3023
callq 0x1030
testl %eax, %eax
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x31e4(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x31dc(%rip)      # 0x505c
movq %r14, %rdi
leaq 0x11f4(%rip), %r14      # 0x307e
movq %r14, %rcx
xorl %eax, %eax
callq 0x1040
cmpl $0x0, (%r15)
movq %rbx, %rsi
cmoveq %r12, %rsi
movl 0x31b7(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x31af(%rip)      # 0x505c
movq %r13, %rdi
movq %r14, %rcx
xorl %eax, %eax
callq 0x1040
movq 0x3117(%rip), %r12      # 0x4fd8
movq (%r12), %rdi
leaq 0x114b(%rip), %r13      # 0x3017
movq %r13, %rsi
leaq 0x1176(%rip), %r15      # 0x304c
movq %r15, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x4, %esi
movq %r15, %rdi
leaq -0x58(%rbp), %r14
movq %r14, %rdx
leaq -0x50(%rbp), %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
cmpl $-0x2, %eax
movq %rbx, %rsi
leaq 0x10f0(%rip), %rax      # 0x3014
cmoveq %rax, %rsi
movl 0x312e(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x3126(%rip)      # 0x505c
leaq 0x10c7(%rip), %rdi      # 0x3004
leaq 0x1101(%rip), %r15      # 0x3045
movq %r15, %rcx
xorl %eax, %eax
callq 0x1040
movq (%r12), %rdi
leaq 0x11b8(%rip), %r12      # 0x3111
movq %r13, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x1060
subq $0x8, %rsp
movl $0x6, %esi
movq %r12, %rdi
movq %r14, %rdx
leaq -0x50(%rbp), %rcx
leaq -0x48(%rbp), %r8
leaq -0x40(%rbp), %r9
leaq -0x30(%rbp), %rax
pushq %rax
leaq -0x38(%rbp), %rax
pushq %rax
leaq -0x2c(%rbp), %rax
pushq %rax
callq 0x2033
addq $0x20, %rsp
cmpl $-0x1, %eax
leaq 0x1071(%rip), %rax      # 0x3014
cmoveq %rax, %rbx
movl 0x30af(%rip), %edx      # 0x505c
incl %edx
movl %edx, 0x30a7(%rip)      # 0x505c
leaq 0x1048(%rip), %rdi      # 0x3004
movq %rbx, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x1040
movl 0x308d(%rip), %esi      # 0x505c
leaq 0x1047(%rip), %rdi      # 0x301d
xorl %eax, %eax
callq 0x1040
xorl %edi, %edi
callq 0x1070