// File: /workspace/github_c_makefile_star2_O2/nilyang[P]redis-tdd-annotation/src/config.c
// Function: rewriteConfig
int rewriteConfig(char *path) {
    struct rewriteConfigState *state;
    sds newcontent;
    int retval;

    /* Step 1: read the old config into our rewrite state. */
    if ((state = rewriteConfigReadOldFile(path)) == NULL) return -1;

    /* Step 2: rewrite every single option, replacing or appending it inside
     * the rewrite state. */

    rewriteConfigYesNoOption(state,"daemonize",server.daemonize,0);
    rewriteConfigStringOption(state,"pidfile",server.pidfile,REDIS_DEFAULT_PID_FILE);
    rewriteConfigNumericalOption(state,"port",server.port,REDIS_SERVERPORT);
    rewriteConfigNumericalOption(state,"tcp-backlog",server.tcp_backlog,REDIS_TCP_BACKLOG);
    rewriteConfigBindOption(state);
    rewriteConfigStringOption(state,"unixsocket",server.unixsocket,NULL);
    rewriteConfigOctalOption(state,"unixsocketperm",server.unixsocketperm,REDIS_DEFAULT_UNIX_SOCKET_PERM);
    rewriteConfigNumericalOption(state,"timeout",server.maxidletime,REDIS_MAXIDLETIME);
    rewriteConfigNumericalOption(state,"tcp-keepalive",server.tcpkeepalive,REDIS_DEFAULT_TCP_KEEPALIVE);
    rewriteConfigEnumOption(state,"loglevel",server.verbosity,
        "debug", REDIS_DEBUG,
        "verbose", REDIS_VERBOSE,
        "notice", REDIS_NOTICE,
        "warning", REDIS_WARNING,
        NULL, REDIS_DEFAULT_VERBOSITY);
    rewriteConfigStringOption(state,"logfile",server.logfile,REDIS_DEFAULT_LOGFILE);
    rewriteConfigYesNoOption(state,"syslog-enabled",server.syslog_enabled,REDIS_DEFAULT_SYSLOG_ENABLED);
    rewriteConfigStringOption(state,"syslog-ident",server.syslog_ident,REDIS_DEFAULT_SYSLOG_IDENT);
    rewriteConfigSyslogfacilityOption(state);
    rewriteConfigSaveOption(state);
    rewriteConfigNumericalOption(state,"databases",server.dbnum,REDIS_DEFAULT_DBNUM);
    rewriteConfigYesNoOption(state,"stop-writes-on-bgsave-error",server.stop_writes_on_bgsave_err,REDIS_DEFAULT_STOP_WRITES_ON_BGSAVE_ERROR);
    rewriteConfigYesNoOption(state,"rdbcompression",server.rdb_compression,REDIS_DEFAULT_RDB_COMPRESSION);
    rewriteConfigYesNoOption(state,"rdbchecksum",server.rdb_checksum,REDIS_DEFAULT_RDB_CHECKSUM);
    rewriteConfigStringOption(state,"dbfilename",server.rdb_filename,REDIS_DEFAULT_RDB_FILENAME);
    rewriteConfigDirOption(state);
    rewriteConfigSlaveofOption(state);
    rewriteConfigStringOption(state,"masterauth",server.masterauth,NULL);
    rewriteConfigYesNoOption(state,"slave-serve-stale-data",server.repl_serve_stale_data,REDIS_DEFAULT_SLAVE_SERVE_STALE_DATA);
    rewriteConfigYesNoOption(state,"slave-read-only",server.repl_slave_ro,REDIS_DEFAULT_SLAVE_READ_ONLY);
    rewriteConfigNumericalOption(state,"repl-ping-slave-period",server.repl_ping_slave_period,REDIS_REPL_PING_SLAVE_PERIOD);
    rewriteConfigNumericalOption(state,"repl-timeout",server.repl_timeout,REDIS_REPL_TIMEOUT);
    rewriteConfigBytesOption(state,"repl-backlog-size",server.repl_backlog_size,REDIS_DEFAULT_REPL_BACKLOG_SIZE);
    rewriteConfigBytesOption(state,"repl-backlog-ttl",server.repl_backlog_time_limit,REDIS_DEFAULT_REPL_BACKLOG_TIME_LIMIT);
    rewriteConfigYesNoOption(state,"repl-disable-tcp-nodelay",server.repl_disable_tcp_nodelay,REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY);
    rewriteConfigNumericalOption(state,"slave-priority",server.slave_priority,REDIS_DEFAULT_SLAVE_PRIORITY);
    rewriteConfigNumericalOption(state,"min-slaves-to-write",server.repl_min_slaves_to_write,REDIS_DEFAULT_MIN_SLAVES_TO_WRITE);
    rewriteConfigNumericalOption(state,"min-slaves-max-lag",server.repl_min_slaves_max_lag,REDIS_DEFAULT_MIN_SLAVES_MAX_LAG);
    rewriteConfigStringOption(state,"requirepass",server.requirepass,NULL);
    rewriteConfigNumericalOption(state,"maxclients",server.maxclients,REDIS_MAX_CLIENTS);
    rewriteConfigBytesOption(state,"maxmemory",server.maxmemory,REDIS_DEFAULT_MAXMEMORY);
    rewriteConfigEnumOption(state,"maxmemory-policy",server.maxmemory_policy,
        "volatile-lru", REDIS_MAXMEMORY_VOLATILE_LRU,
        "allkeys-lru", REDIS_MAXMEMORY_ALLKEYS_LRU,
        "volatile-random", REDIS_MAXMEMORY_VOLATILE_RANDOM,
        "allkeys-random", REDIS_MAXMEMORY_ALLKEYS_RANDOM,
        "volatile-ttl", REDIS_MAXMEMORY_VOLATILE_TTL,
        "noeviction", REDIS_MAXMEMORY_NO_EVICTION,
        NULL, REDIS_DEFAULT_MAXMEMORY_POLICY);
    rewriteConfigNumericalOption(state,"maxmemory-samples",server.maxmemory_samples,REDIS_DEFAULT_MAXMEMORY_SAMPLES);
    rewriteConfigYesNoOption(state,"appendonly",server.aof_state != REDIS_AOF_OFF,0);
    rewriteConfigStringOption(state,"appendfilename",server.aof_filename,REDIS_DEFAULT_AOF_FILENAME);
    rewriteConfigEnumOption(state,"appendfsync",server.aof_fsync,
        "everysec", AOF_FSYNC_EVERYSEC,
        "always", AOF_FSYNC_ALWAYS,
        "no", AOF_FSYNC_NO,
        NULL, REDIS_DEFAULT_AOF_FSYNC);
    rewriteConfigYesNoOption(state,"no-appendfsync-on-rewrite",server.aof_no_fsync_on_rewrite,REDIS_DEFAULT_AOF_NO_FSYNC_ON_REWRITE);
    rewriteConfigNumericalOption(state,"auto-aof-rewrite-percentage",server.aof_rewrite_perc,REDIS_AOF_REWRITE_PERC);
    rewriteConfigBytesOption(state,"auto-aof-rewrite-min-size",server.aof_rewrite_min_size,REDIS_AOF_REWRITE_MIN_SIZE);
    rewriteConfigNumericalOption(state,"lua-time-limit",server.lua_time_limit,REDIS_LUA_TIME_LIMIT);
    rewriteConfigYesNoOption(state,"cluster-enabled",server.cluster_enabled,0);
    rewriteConfigStringOption(state,"cluster-config-file",server.cluster_configfile,REDIS_DEFAULT_CLUSTER_CONFIG_FILE);
    rewriteConfigNumericalOption(state,"cluster-node-timeout",server.cluster_node_timeout,REDIS_CLUSTER_DEFAULT_NODE_TIMEOUT);
    rewriteConfigNumericalOption(state,"cluster-migration-barrier",server.cluster_migration_barrier,REDIS_CLUSTER_DEFAULT_MIGRATION_BARRIER);
    rewriteConfigNumericalOption(state,"slowlog-log-slower-than",server.slowlog_log_slower_than,REDIS_SLOWLOG_LOG_SLOWER_THAN);
    rewriteConfigNumericalOption(state,"slowlog-max-len",server.slowlog_max_len,REDIS_SLOWLOG_MAX_LEN);
    rewriteConfigNotifykeyspaceeventsOption(state);
    rewriteConfigNumericalOption(state,"hash-max-ziplist-entries",server.hash_max_ziplist_entries,REDIS_HASH_MAX_ZIPLIST_ENTRIES);
    rewriteConfigNumericalOption(state,"hash-max-ziplist-value",server.hash_max_ziplist_value,REDIS_HASH_MAX_ZIPLIST_VALUE);
    rewriteConfigNumericalOption(state,"list-max-ziplist-entries",server.list_max_ziplist_entries,REDIS_LIST_MAX_ZIPLIST_ENTRIES);
    rewriteConfigNumericalOption(state,"list-max-ziplist-value",server.list_max_ziplist_value,REDIS_LIST_MAX_ZIPLIST_VALUE);
    rewriteConfigNumericalOption(state,"set-max-intset-entries",server.set_max_intset_entries,REDIS_SET_MAX_INTSET_ENTRIES);
    rewriteConfigNumericalOption(state,"zset-max-ziplist-entries",server.zset_max_ziplist_entries,REDIS_ZSET_MAX_ZIPLIST_ENTRIES);
    rewriteConfigNumericalOption(state,"zset-max-ziplist-value",server.zset_max_ziplist_value,REDIS_ZSET_MAX_ZIPLIST_VALUE);
    rewriteConfigNumericalOption(state,"hll-sparse-max-bytes",server.hll_sparse_max_bytes,REDIS_DEFAULT_HLL_SPARSE_MAX_BYTES);
    rewriteConfigYesNoOption(state,"activerehashing",server.activerehashing,REDIS_DEFAULT_ACTIVE_REHASHING);
    rewriteConfigClientoutputbufferlimitOption(state);
    rewriteConfigNumericalOption(state,"hz",server.hz,REDIS_DEFAULT_HZ);
    rewriteConfigYesNoOption(state,"aof-rewrite-incremental-fsync",server.aof_rewrite_incremental_fsync,REDIS_DEFAULT_AOF_REWRITE_INCREMENTAL_FSYNC);
    if (server.sentinel_mode) rewriteConfigSentinelOption(state);

    /* Step 3: remove all the orphaned lines in the old file, that is, lines
     * that were used by a config option and are no longer used, like in case
     * of multiple "save" options or duplicated options. */
    rewriteConfigRemoveOrphaned(state);

    /* Step 4: generate a new configuration file from the modified state
     * and write it into the original file. */
    newcontent = rewriteConfigGetContentFromState(state);
    retval = rewriteConfigOverwriteFile(server.configfile,newcontent);

    sdsfree(newcontent);
    rewriteConfigReleaseState(state);
    return retval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
callq 0x4450c
testq %rax, %rax
je 0x45840
movq %rax, %rbx
leaq 0x81e5e(%rip), %rbp     # 0xc6fa8
movl 0x484(%rbp), %edx
leaq 0x4aa0b(%rip), %rsi     # 0x8fb62
movq %rax, %rdi
xorl %ecx, %ecx
callq 0x44853
movq 0x48(%rbp), %rdx
leaq 0x4ab71(%rip), %rsi     # 0x8fcdd
leaq 0x45ba4(%rip), %rcx     # 0x8ad17
movq %rbx, %rdi
callq 0x448b1
movslq 0x88(%rbp), %rdx
leaq 0x4a5bd(%rip), %rsi     # 0x8f746
movl $0x18eb, %ecx           # imm = 0x18EB
movq %rbx, %rdi
callq 0x44942
movslq 0x8c(%rbp), %rdx
leaq 0x4a5a7(%rip), %rsi     # 0x8f74b
movl $0x1ff, %ecx            # imm = 0x1FF
movq %rbx, %rdi
callq 0x44942
movq %rbx, %rdi
callq 0x44e4d
movq 0x118(%rbp), %rdx
leaq 0x4a5cd(%rip), %rsi     # 0x8f794
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x448b1
movl 0x120(%rbp), %edx
leaq 0x4a5c1(%rip), %rsi     # 0x8f79f
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44991
movslq 0x468(%rbp), %rdx
leaq 0x4ac61(%rip), %rsi     # 0x8fe57
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44942
movslq 0x46c(%rbp), %rdx
leaq 0x4a506(%rip), %rsi     # 0x8f714
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44942
movl 0x464(%rbp), %edx
subq $0x8, %rsp
pushq $0x2
popq %r15
pushq $0x3
popq %r12
leaq 0x4a61a(%rip), %r10     # 0x8f84b
leaq 0x4a5db(%rip), %r11     # 0x8f813
pushq $0x1
popq %r14
leaq 0x4a5bf(%rip), %rsi     # 0x8f802
leaq 0x545ef(%rip), %rcx     # 0x99839
leaq 0x4a5ba(%rip), %r9      # 0x8f80b
movq %rbx, %rdi
movl $0x0, %r8d
movl $0x0, %eax
pushq %r15
pushq $0x0
pushq %r12
pushq %r10
pushq %r15
pushq %r11
pushq %r14
callq 0x449dd
addq $0x40, %rsp
movq 0x5d0(%rbp), %rdx
leaq 0x4a5cf(%rip), %rsi     # 0x8f853
leaq 0x48086(%rip), %rcx     # 0x8d311
movq %rbx, %rdi
callq 0x448b1
movl 0x5d8(%rbp), %edx
leaq 0x4a5d7(%rip), %rsi     # 0x8f877
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44853
movq 0x5e0(%rbp), %rdx
leaq 0x4a5ed(%rip), %rsi     # 0x8f8a5
leaq 0x45a52(%rip), %rcx     # 0x8ad11
movq %rbx, %rdi
callq 0x448b1
movq %rbx, %rdi
callq 0x44afc
movq %rbx, %rdi
callq 0x44b7f
movslq 0x480(%rbp), %rdx
leaq 0x4a632(%rip), %rsi     # 0x8f917
pushq $0x10
popq %rcx
movq %rbx, %rdi
callq 0x44942
movl 0x5bc(%rbp), %edx
leaq 0x4ac77(%rip), %rsi     # 0x8ff74
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movl 0x590(%rbp), %edx
leaq 0x4a822(%rip), %rsi     # 0x8fb37
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movl 0x594(%rbp), %edx
leaq 0x4a819(%rip), %rsi     # 0x8fb46
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movq 0x588(%rbp), %rdx
leaq 0x4a99f(%rip), %rsi     # 0x8fce5
leaq 0x459dd(%rip), %rcx     # 0x8ad2a
movq %rbx, %rdi
callq 0x448b1
movq %rbx, %rdi
callq 0x44c0d
movq %rbx, %rdi
callq 0x44c51
movq 0x648(%rbp), %rdx
leaq 0x4a792(%rip), %rsi     # 0x8fb05
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x448b1
movl 0x6a8(%rbp), %edx
leaq 0x4a786(%rip), %rsi     # 0x8fb10
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movl 0x6ac(%rbp), %edx
leaq 0x4a785(%rip), %rsi     # 0x8fb27
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movslq 0x5f8(%rbp), %rdx
leaq 0x4a650(%rip), %rsi     # 0x8fa0b
pushq $0xa
popq %r15
movq %rbx, %rdi
movq %r15, %rcx
callq 0x44942
movslq 0x65c(%rbp), %rdx
leaq 0x4a676(%rip), %rsi     # 0x8fa4e
pushq $0x3c
popq %rcx
movq %rbx, %rdi
callq 0x44942
movq 0x608(%rbp), %rdx
leaq 0x4a6a5(%rip), %rsi     # 0x8fa96
movl $0x100000, %ecx         # imm = 0x100000
movq %rbx, %rdi
callq 0x447f5
movq 0x628(%rbp), %rdx
leaq 0x4a6c4(%rip), %rsi     # 0x8fad0
movl $0xe10, %ecx            # imm = 0xE10
movq %rbx, %rdi
callq 0x447f5
movl 0x6b8(%rbp), %edx
leaq 0x4a657(%rip), %rsi     # 0x8fa7d
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44853
movslq 0x6bc(%rbp), %rdx
leaq 0x4ab52(%rip), %rsi     # 0x8ff90
pushq $0x64
popq %rcx
movq %rbx, %rdi
callq 0x44942
movslq 0x638(%rbp), %rdx
leaq 0x4ab48(%rip), %rsi     # 0x8ff9f
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44942
movslq 0x63c(%rbp), %rdx
leaq 0x4ab6b(%rip), %rsi     # 0x8ffda
movq %rbx, %rdi
movq %r15, %rcx
callq 0x44942
movq 0x40(%rbp), %rdx
leaq 0x4a81d(%rip), %rsi     # 0x8fca2
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x448b1
movslq 0x71c(%rbp), %rdx
leaq 0x4a48c(%rip), %rsi     # 0x8f929
movl $0x2710, %ecx           # imm = 0x2710
movq %rbx, %rdi
callq 0x44942
movq 0x720(%rbp), %rdx
leaq 0x4a496(%rip), %rsi     # 0x8f94e
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x447f5
movl 0x728(%rbp), %edx
subq $0x8, %rsp
pushq $0x5
popq %r11
leaq 0x4a4d7(%rip), %r15     # 0x8f9ae
leaq 0x4a4a8(%rip), %r13     # 0x8f986
leaq 0x4a4ba(%rip), %r12     # 0x8f99f
leaq 0x4a48a(%rip), %r10     # 0x8f976
leaq 0x4a465(%rip), %rsi     # 0x8f958
leaq 0x4a46f(%rip), %rcx     # 0x8f969
leaq 0x4a492(%rip), %r9      # 0x8f993
movq %rbx, %rdi
movl $0x0, %r8d
movl $0x0, %eax
pushq %r11
pushq $0x0
pushq %r11
pushq %r15
pushq %r14
pushq %r13
pushq $0x4
pushq %r12
pushq $0x2
popq %r15
pushq %r15
pushq %r10
pushq $0x3
popq %r10
pushq %r10
callq 0x449dd
addq $0x60, %rsp
movslq 0x72c(%rbp), %rdx
leaq 0x4a48e(%rip), %rsi     # 0x8f9d2
pushq $0x5
popq %rcx
movq %rbx, %rdi
callq 0x44942
xorl %edx, %edx
cmpl $0x0, 0x4d0(%rbp)
setne %dl
leaq 0x4a60d(%rip), %rsi     # 0x8fb6f
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44853
movq 0x4d8(%rbp), %rdx
leaq 0x4a600(%rip), %rsi     # 0x8fb7a
leaq 0x457b2(%rip), %rcx     # 0x8ad33
movq %rbx, %rdi
callq 0x448b1
movl 0x4d4(%rbp), %edx
subq $0x8, %rsp
leaq 0x4906c(%rip), %r10     # 0x8e606
leaq 0x4a632(%rip), %rsi     # 0x8fbd3
leaq 0x4a63e(%rip), %rcx     # 0x8fbe6
leaq 0x4a630(%rip), %r9      # 0x8fbdf
movq %rbx, %rdi
movq %r15, %r8
movl $0x0, %eax
pushq %r15
pushq $0x0
pushq $0x0
pushq %r10
pushq %r14
callq 0x449dd
addq $0x30, %rsp
movl 0x4e0(%rbp), %edx
leaq 0x4a5df(%rip), %rsi     # 0x8fbb9
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44853
movslq 0x4e4(%rbp), %rdx
leaq 0x4a62b(%rip), %rsi     # 0x8fc1d
movq %rbx, %rdi
pushq $0x64
popq %rcx
callq 0x44942
movq 0x4e8(%rbp), %rdx
leaq 0x4a65f(%rip), %rsi     # 0x8fc6a
movl $0x4000000, %ecx        # imm = 0x4000000
movq %rbx, %rdi
callq 0x447f5
movq 0x800(%rbp), %rdx
leaq 0x4a8a8(%rip), %rsi     # 0x8fece
movl $0x1388, %ecx           # imm = 0x1388
movq %rbx, %rdi
callq 0x44942
movl 0x7bc(%rbp), %edx
leaq 0x4a7e6(%rip), %rsi     # 0x8fe26
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x44853
movq 0x7c8(%rbp), %rdx
leaq 0x4a7de(%rip), %rsi     # 0x8fe36
leaq 0x456e3(%rip), %rcx     # 0x8ad42
movq %rbx, %rdi
callq 0x448b1
movq 0x7c0(%rbp), %rdx
leaq 0x4a7d5(%rip), %rsi     # 0x8fe4a
movl $0x3a98, %ecx           # imm = 0x3A98
movq %rbx, %rdi
callq 0x44942
movslq 0x7d8(%rbp), %rdx
leaq 0x4a7f9(%rip), %rsi     # 0x8fe89
pushq $0x1
popq %rcx
movq %rbx, %rdi
callq 0x44942
movq 0x3b8(%rbp), %rdx
leaq 0x4a834(%rip), %rsi     # 0x8fedd
movl $0x2710, %ecx           # imm = 0x2710
movq %rbx, %rdi
callq 0x44942
movq 0x3c0(%rbp), %rdx
leaq 0x4a831(%rip), %rsi     # 0x8fef5
movl $0x80, %ecx
movq %rbx, %rdi
callq 0x44942
movq %rbx, %rdi
callq 0x44ccf
movq 0x758(%rbp), %rdx
leaq 0x4a635(%rip), %rsi     # 0x8fd1c
movl $0x200, %ecx            # imm = 0x200
movq %rbx, %rdi
callq 0x44942
movq 0x760(%rbp), %rdx
leaq 0x4a633(%rip), %rsi     # 0x8fd35
pushq $0x40
popq %r12
movq %rbx, %rdi
movq %r12, %rcx
callq 0x44942
movq 0x768(%rbp), %rdx
leaq 0x4a62d(%rip), %rsi     # 0x8fd4c
movl $0x200, %ecx            # imm = 0x200
movq %rbx, %rdi
callq 0x44942
movq 0x770(%rbp), %rdx
leaq 0x4a62b(%rip), %rsi     # 0x8fd65
movq %rbx, %rdi
movq %r12, %rcx
callq 0x44942
movq 0x778(%rbp), %rdx
leaq 0x4a629(%rip), %rsi     # 0x8fd7c
movl $0x200, %ecx            # imm = 0x200
movq %rbx, %rdi
callq 0x44942
movq 0x780(%rbp), %rdx
leaq 0x4a625(%rip), %rsi     # 0x8fd93
movl $0x80, %ecx
movq %rbx, %rdi
callq 0x44942
movq 0x788(%rbp), %rdx
leaq 0x4a623(%rip), %rsi     # 0x8fdac
movq %rbx, %rdi
movq %r12, %rcx
callq 0x44942
movq 0x790(%rbp), %rdx
leaq 0x4a621(%rip), %rsi     # 0x8fdc3
movl $0xbb8, %ecx            # imm = 0xBB8
movq %rbx, %rdi
callq 0x44942
movl 0x38(%rbp), %edx
leaq 0x4a399(%rip), %rsi     # 0x8fb52
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
movq %rbx, %rdi
callq 0x44d4a
movslq 0x8(%rbp), %rdx
leaq 0x4a395(%rip), %rsi     # 0x8fb6c
movq %rbx, %rdi
pushq $0xa
popq %rcx
callq 0x44942
movl 0x550(%rbp), %edx
leaq 0x4a495(%rip), %rsi     # 0x8fc84
movq %rbx, %rdi
movl %r14d, %ecx
callq 0x44853
cmpl $0x0, 0x84(%rbp)
je 0x4580b
movq %rbx, %rdi
callq 0x57ff4
movq %rbx, %rdi
callq 0x44f93
movq %rbx, %rdi
callq 0x44ef0
movq %rax, %r14
movq (%rbp), %rdi
movq %rax, %rsi
callq 0x45036
movl %eax, %ebp
movq %r14, %rdi
callq 0x271f7
movq %rbx, %rdi
callq 0x44f69
movl %ebp, %eax
jmp 0x45843
pushq $-0x1
popq %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq