File inc_ransom_e16ac4475e24bbe97e50d7940df71079ea2f1dfd1f2bff6a649c09f7503d087c.elf
Function:
    00400bc0
    00400bc0 struct ELF_VERNAUX
    00400bc0 vna_hash uint32 0x09691a75
    00400bc4 vna_flags uint16 0x0000
    00400bc6 vna_other int 4
    00400bc8 vna_name int 551
    00400bcc vna_next int 0x400bd0
    00400bd0
    00400bd0 struct ELF_VERNAUX
    00400bd0 vna_hash uint32 0x09691972
    00400bd4 vna_flags uint16 0x0000
    00400bd6 vna_other int 2
    00400bd8 vna_name int 563
    00400bdc vna_next int 0
    00400be0
    00400be0 struct ELF64_RELA
    00400be0 r_offset uint64 0x6107c8
    00400be8 r_info uint64 0x0000000700000006
    00400bf0 r_addend int64 0x0
    00400bf8
    00400bf8 struct ELF64_RELA
    00400bf8 r_offset uint64 0x6107e8
    00400c00 r_info uint64 0x0000000100000007
    00400c08 r_addend int64 0x0
    00400c10
    00400c10 struct ELF64_RELA
    00400c10 r_offset uint64 0x6107f0
    00400c18 r_info uint64 0x0000000200000007
    00400c20 r_addend int64 0x0
    00400c28
    00400c28 struct ELF64_RELA
    00400c28 r_offset uint64 0x6107f8
    00400c30 r_info uint64 0x0000000300000007
    00400c38 r_addend int64 0x0
    00400c40
    00400c40 struct ELF64_RELA
    00400c40 r_offset uint64 0x610800
    00400c48 r_info uint64 0x0000000400000007
    00400c50 r_addend int64 0x0
    00400c58
    00400c58 struct ELF64_RELA
    00400c58 r_offset uint64 0x610808
    00400c60 r_info uint64 0x0000000500000007
    00400c68 r_addend int64 0x0
    00400c70
    00400c70 struct ELF64_RELA
    00400c70 r_offset uint64 0x610810
    00400c78 r_info uint64 0x0000000600000007
    00400c80 r_addend int64 0x0
    00400c88
    00400c88 struct ELF64_RELA
    00400c88 r_offset uint64 0x610818
    00400c90 r_info uint64 0x0000000900000007
    00400c98 r_addend int64 0x0
    00400ca0
    00400ca0 struct ELF64_RELA
    00400ca0 r_offset uint64 0x610820
    00400ca8 r_info uint64 0x0000000a00000007
    00400cb0 r_addend int64 0x0
    00400cb8
    00400cb8 struct ELF64_RELA
    00400cb8 r_offset uint64 0x610828
    00400cc0 r_info uint64 0x0000000b00000007
    00400cc8 r_addend int64 0x0
    00400cd0
    00400cd0 struct ELF64_RELA
    00400cd0 r_offset uint64 0x610830
    00400cd8 r_info uint64 0x0000000c00000007
    00400ce0 r_addend int64 0x0
    00400ce8
    00400ce8 struct ELF64_RELA
    00400ce8 r_offset uint64 0x610838
    00400cf0 r_info uint64 0x0000000d00000007
    00400cf8 r_addend int64 0x0
    00400d00
    00400d00 struct ELF64_RELA
    00400d00 r_offset uint64 0x610840
    00400d08 r_info uint64 0x0000000e00000007
    00400d10 r_addend int64 0x0
    00400d18
    00400d18 struct ELF64_RELA
    00400d18 r_offset uint64 0x610848
    00400d20 r_info uint64 0x0000000f00000007
    00400d28 r_addend int64 0x0
    00400d30
    00400d30 struct ELF64_RELA
    00400d30 r_offset uint64 0x610850
    00400d38 r_info uint64 0x0000001000000007
    00400d40 r_addend int64 0x0
    00400d48
    00400d48 struct ELF64_RELA
    00400d48 r_offset uint64 0x610858
    00400d50 r_info uint64 0x0000001100000007
    00400d58 r_addend int64 0x0
    00400d60
    00400d60 struct ELF64_RELA
    00400d60 r_offset uint64 0x610860
    00400d68 r_info uint64 0x0000001200000007
    00400d70 r_addend int64 0x0
    00400d78
    00400d78 struct ELF64_RELA
    00400d78 r_offset uint64 0x610868
    00400d80 r_info uint64 0x0000001300000007
    00400d88 r_addend int64 0x0
    00400d90
    00400d90 struct ELF64_RELA
    00400d90 r_offset uint64 0x610870
    00400d98 r_info uint64 0x0000001400000007
    00400da0 r_addend int64 0x0
    00400da8
    00400da8 struct ELF64_RELA
    00400da8 r_offset uint64 0x610878
    00400db0 r_info uint64 0x0000001500000007
    00400db8 r_addend int64 0x0
    00400dc0
    00400dc0 struct ELF64_RELA
    00400dc0 r_offset uint64 0x610880
    00400dc8 r_info uint64 0x0000001600000007
    00400dd0 r_addend int64 0x0
    00400dd8
    00400dd8 struct ELF64_RELA
    00400dd8 r_offset uint64 0x610888
    00400de0 r_info uint64 0x0000001700000007
    00400de8 r_addend int64 0x0
    00400df0
    00400df0 struct ELF64_RELA
    00400df0 r_offset uint64 0x610890
    00400df8 r_info uint64 0x0000001800000007
    00400e00 r_addend int64 0x0
    00400e08
    00400e08 struct ELF64_RELA
    00400e08 r_offset uint64 0x610898
    00400e10 r_info uint64 0x0000001900000007
    00400e18 r_addend int64 0x0
    00400e20
    00400e20 struct ELF64_RELA
    00400e20 r_offset uint64 0x6108a0
    00400e28 r_info uint64 0x0000001a00000007
    00400e30 r_addend int64 0x0
    00400e38
    00400e38 struct ELF64_RELA
    00400e38 r_offset uint64 0x6108a8
    00400e40 r_info uint64 0x0000001b00000007
    00400e48 r_addend int64 0x0
    00400e50
    00400e50 struct ELF64_RELA
    00400e50 r_offset uint64 0x6108b0
    00400e58 r_info uint64 0x0000001c00000007
    00400e60 r_addend int64 0x0
    00400e68
    00400e68 struct ELF64_RELA
    00400e68 r_offset uint64 0x6108b8
    00400e70 r_info uint64 0x0000001d00000007
    00400e78 r_addend int64 0x0
    00400e80
    00400e80 struct ELF64_RELA
    00400e80 r_offset uint64 0x6108c0
    00400e88 r_info uint64 0x0000001e00000007
    00400e90 r_addend int64 0x0
    00400e98
    00400e98 struct ELF64_RELA
    00400e98 r_offset uint64 0x6108c8
    00400ea0 r_info uint64 0x0000001f00000007
    00400ea8 r_addend int64 0x0
    00400eb0
    00400eb0 struct ELF64_RELA
    00400eb0 r_offset uint64 0x6108d0
    00400eb8 r_info uint64 0x0000002000000007
    00400ec0 r_addend int64 0x0
    00400ec8
    00400ec8 struct ELF64_RELA
    00400ec8 r_offset uint64 0x6108d8
    00400ed0 r_info uint64 0x0000002100000007
    00400ed8 r_addend int64 0x0
    00400ee0
    00400ee0 struct ELF64_RELA
    00400ee0 r_offset uint64 0x6108e0
    00400ee8 r_info uint64 0x0000002200000007
    00400ef0 r_addend int64 0x0
    00400ef8
    00400ef8 struct ELF64_RELA
    00400ef8 r_offset uint64 0x6108e8
    00400f00 r_info uint64 0x0000002300000007
    00400f08 r_addend int64 0x0
    00400f10
    00400f10 struct ELF64_RELA
    00400f10 r_offset uint64 0x6108f0
    00400f18 r_info uint64 0x0000002400000007
    00400f20 r_addend int64 0x0
    00400f28
    00400f28 struct ELF64_RELA
    00400f28 r_offset uint64 0x6108f8
    00400f30 r_info uint64 0x0000002500000007
    00400f38 r_addend int64 0x0
    00400f40
    00400f40 struct ELF64_RELA
    00400f40 r_offset uint64 0x610900
    00400f48 r_info uint64 0x0000002600000007
    00400f50 r_addend int64 0x0
    00400f58
    00400f58 struct ELF64_RELA
    00400f58 r_offset uint64 0x610908
    00400f60 r_info uint64 0x0000002700000007
    00400f68 r_addend int64 0x0
    00400f70
    00400f70 struct ELF64_RELA
    00400f70 r_offset uint64 0x610910
    00400f78 r_info uint64 0x0000002800000007
    00400f80 r_addend int64 0x0
    00400f88
    00400f88 struct ELF64_RELA
    00400f88 r_offset uint64 0x610918
    00400f90 r_info uint64 0x0000002900000007
    00400f98 r_addend int64 0x0
    00400fa0
    00400fa0 struct ELF64_RELA
    00400fa0 r_offset uint64 0x610920
    00400fa8 r_info uint64 0x0000002a00000007
    00400fb0 r_addend int64 0x0
    00400fb8
    00400fb8 struct ELF64_RELA
    00400fb8 r_offset uint64 0x610928
    00400fc0 r_info uint64 0x0000002b00000007
    00400fc8 r_addend int64 0x0
    00400fd0
    00400fd0 struct ELF64_RELA
    00400fd0 r_offset uint64 0x610930
    00400fd8 r_info uint64 0x0000002c00000007
    00400fe0 r_addend int64 0x0
    00400fe8
    00400fe8 struct ELF64_RELA
    00400fe8 r_offset uint64 0x610938
    00400ff0 r_info uint64 0x0000002d00000007
    00400ff8 r_addend int64 0x0
    00401000
    00401000 struct ELF64_RELA
    00401000 r_offset uint64 0x610940
    00401008 r_info uint64 0x0000002e00000007
    00401010 r_addend int64 0x0
    00401018
    00401018 struct ELF64_RELA
    00401018 r_offset uint64 0x610948
    00401020 r_info uint64 0x0000002f00000007
    00401028 r_addend int64 0x0
    00401030
    00401030 struct ELF64_RELA
    00401030 r_offset uint64 0x610950
    00401038 r_info uint64 0x0000003000000007
    00401040 r_addend int64 0x0
    00401048
    00401048 struct ELF64_RELA
    00401048 r_offset uint64 0x610958
    00401050 r_info uint64 0x0000003100000007
    00401058 r_addend int64 0x0
    00401060
    00401060 struct ELF64_RELA
    00401060 r_offset uint64 0x610960
    00401068 r_info uint64 0x0000003200000007
    00401070 r_addend int64 0x0
    00401078
    00401078 struct ELF64_RELA
    00401078 r_offset uint64 0x610968
    00401080 r_info uint64 0x0000003300000007
    00401088 r_addend int64 0x0
    00401090
    00401090 struct ELF64_RELA
    00401090 r_offset uint64 0x610970
    00401098 r_info uint64 0x0000003400000007
    004010a0 r_addend int64 0x0
    004010a8
    004010a8 struct ELF64_RELA
    004010a8 r_offset uint64 0x610978
    004010b0 r_info uint64 0x0000003500000007
    004010b8 r_addend int64 0x0
    004010c0
    004010c0 struct ELF64_RELA
    004010c0 r_offset uint64 0x610980
    004010c8 r_info uint64 0x0000003600000007
    004010d0 r_addend int64 0x0
    004010d8
    004010d8_init:
    004010d8sub rsp, 8
    004010dccall fn_40146c
    004010e1call frame_dummy
    004010e6call __do_global_ctors_aux
    004010ebadd rsp, 8
    004010efret
    004010d8
    004010f0
    004010f0fn_4010f0:
    004010f0push [rip+0x20f6e2]
    004010f6jmp [rip+0x20f6e4]
    004010f0
    004010fc
    004010fc // align 0x10
    00401100
    00401100pthread_cond_destroy@plt:
    00401100jmp [rip+0x20f6e2]
    00401106push 0
    0040110bjmp 0x4010f0
    00401100
    00401110
    00401110printf@plt:
    00401110jmp [rip+0x20f6da]
    00401116push 1
    0040111bjmp 0x4010f0
    00401110
    00401120
    00401120memset@plt:
    00401120jmp [rip+0x20f6d2]
    00401126push 2
    0040112bjmp 0x4010f0
    00401120
    00401130
    00401130snprintf@plt:
    00401130jmp [rip+0x20f6ca]
    00401136push 3
    0040113bjmp 0x4010f0
    00401130
    00401140
    00401140setsid@plt:
    00401140jmp [rip+0x20f6c2]
    00401146push 4
    0040114bjmp 0x4010f0
    00401140
    00401150
    00401150close@plt:
    00401150jmp [rip+0x20f6ba]
    00401156push 5
    0040115bjmp 0x4010f0
    00401150
    00401160
    00401160puts@plt:
    00401160jmp [rip+0x20f6b2]
    00401166push 6
    0040116bjmp 0x4010f0
    00401160
    00401170
    00401170pthread_cond_signal@plt:
    00401170jmp [rip+0x20f6aa]
    00401176push 7
    0040117bjmp 0x4010f0
    00401170
    00401180
    00401180exit@plt:
    00401180jmp [rip+0x20f6a2]
    00401186push 8
    0040118bjmp 0x4010f0
    00401180
    00401190
    00401190execl@plt:
    00401190jmp [rip+0x20f69a]
    00401196push 9
    0040119bjmp 0x4010f0
    00401190
    004011a0
    004011a0malloc@plt:
    004011a0jmp [rip+0x20f692]
    004011a6push 10
    004011abjmp 0x4010f0
    004011a0
    004011b0
    004011b0fopen@plt:
    004011b0jmp [rip+0x20f68a]
    004011b6push 11
    004011bbjmp 0x4010f0
    004011b0
    004011c0
    004011c0__libc_start_main@plt:
    004011c0jmp [rip+0x20f682]
    004011c6push 12
    004011cbjmp 0x4010f0
    004011c0
    004011d0
    004011d0sysconf@plt:
    004011d0jmp [rip+0x20f67a]
    004011d6push 13
    004011dbjmp 0x4010f0
    004011d0
    004011e0
    004011e0pthread_mutex_init@plt:
    004011e0jmp [rip+0x20f672]
    004011e6push 14
    004011ebjmp 0x4010f0
    004011e0
    004011f0
    004011f0free@plt:
    004011f0jmp [rip+0x20f66a]
    004011f6push 15
    004011fbjmp 0x4010f0
    004011f0
    00401200
    00401200pthread_create@plt:
    00401200jmp [rip+0x20f662]
    00401206push 16
    0040120bjmp 0x4010f0
    00401200
    00401210
    00401210opendir@plt:
    00401210jmp [rip+0x20f65a]
    00401216push 17
    0040121bjmp 0x4010f0
    00401210
    00401220
    00401220pthread_cond_init@plt:
    00401220jmp [rip+0x20f652]
    00401226push 18
    0040122bjmp 0x4010f0
    00401220
    00401230
    00401230readdir@plt:
    00401230jmp [rip+0x20f64a]
    00401236push 19
    0040123bjmp 0x4010f0
    00401230
    00401240
    00401240pthread_join@plt:
    00401240jmp [rip+0x20f642]
    00401246push 20
    0040124bjmp 0x4010f0
    00401240
    00401250
    00401250usleep@plt:
    00401250jmp [rip+0x20f63a]
    00401256push 21
    0040125bjmp 0x4010f0
    00401250
    00401260
    00401260strstr@plt:
    00401260jmp [rip+0x20f632]
    00401266push 22
    0040126bjmp 0x4010f0
    00401260
    00401270
    00401270strcat@plt:
    00401270jmp [rip+0x20f62a]
    00401276push 23
    0040127bjmp 0x4010f0
    00401270
    00401280
    00401280pthread_exit@plt:
    00401280jmp [rip+0x20f622]
    00401286push 24
    0040128bjmp 0x4010f0
    00401280
    00401290
    00401290atoi@plt:
    00401290jmp [rip+0x20f61a]
    00401296push 25
    0040129bjmp 0x4010f0
    00401290
    004012a0
    004012a0memcpy@plt:
    004012a0jmp [rip+0x20f612]
    004012a6push 26
    004012abjmp 0x4010f0
    004012a0
    004012b0
    004012b0signal@plt:
    004012b0jmp [rip+0x20f60a]
    004012b6push 27
    004012bbjmp 0x4010f0
    004012b0
    004012c0
    004012c0waitpid@plt:
    004012c0jmp [rip+0x20f602]
    004012c6push 28
    004012cbjmp 0x4010f0
    004012c0
    004012d0
    004012d0fread@plt:
    004012d0jmp [rip+0x20f5fa]
    004012d6push 29
    004012dbjmp 0x4010f0
    004012d0
    004012e0
    004012e0__errno_location@plt:
    004012e0jmp [rip+0x20f5f2]
    004012e6push 30
    004012ebjmp 0x4010f0
    004012e0
    004012f0
    004012f0strcmp@plt:
    004012f0jmp [rip+0x20f5ea]
    004012f6push 31
    004012fbjmp 0x4010f0
    004012f0
    00401300
    00401300strcpy@plt:
    00401300jmp [rip+0x20f5e2]
    00401306push 32
    0040130bjmp 0x4010f0
    00401300
    00401310
    00401310strtok@plt:
    00401310jmp [rip+0x20f5da]
    00401316push 33
    0040131bjmp 0x4010f0
    00401310
    00401320
    00401320nanosleep@plt:
    00401320jmp [rip+0x20f5d2]
    00401326push 34
    0040132bjmp 0x4010f0
    00401320
    00401330
    00401330pthread_cond_wait@plt:
    00401330jmp [rip+0x20f5ca]
    00401336push 35
    0040133bjmp 0x4010f0
    00401330
    00401340
    00401340calloc@plt:
    00401340jmp [rip+0x20f5c2]
    00401346push 36
    0040134bjmp 0x4010f0
    00401340
    00401350
    00401350fclose@plt:
    00401350jmp [rip+0x20f5ba]
    00401356push 37
    0040135bjmp 0x4010f0
    00401350
    00401360
    00401360remove@plt:
    00401360jmp [rip+0x20f5b2]
    00401366push 38
    0040136bjmp 0x4010f0
    00401360
    00401370
    00401370__lxstat@plt:
    00401370jmp [rip+0x20f5aa]
    00401376push 39
    0040137bjmp 0x4010f0
    00401370
    00401380
    00401380fseeko@plt:
    00401380jmp [rip+0x20f5a2]
    00401386push 40
    0040138bjmp 0x4010f0
    00401380
    00401390
    00401390closedir@plt:
    00401390jmp [rip+0x20f59a]
    00401396push 41
    0040139bjmp 0x4010f0
    00401390
    004013a0
    004013a0fork@plt:
    004013a0jmp [rip+0x20f592]
    004013a6push 42
    004013abjmp 0x4010f0
    004013a0
    004013b0
    004013b0fwrite@plt:
    004013b0jmp [rip+0x20f58a]
    004013b6push 43
    004013bbjmp 0x4010f0
    004013b0
    004013c0
    004013c0pthread_mutex_lock@plt:
    004013c0jmp [rip+0x20f582]
    004013c6push 44
    004013cbjmp 0x4010f0
    004013c0
    004013d0
    004013d0perror@plt:
    004013d0jmp [rip+0x20f57a]
    004013d6push 45
    004013dbjmp 0x4010f0
    004013d0
    004013e0
    004013e0pthread_mutex_destroy@plt:
    004013e0jmp [rip+0x20f572]
    004013e6push 46
    004013ebjmp 0x4010f0
    004013e0
    004013f0
    004013f0pthread_cond_broadcast@plt:
    004013f0jmp [rip+0x20f56a]
    004013f6push 47
    004013fbjmp 0x4010f0
    004013f0
    00401400
    00401400pthread_mutex_unlock@plt:
    00401400jmp [rip+0x20f562]
    00401406push 48
    0040140bjmp 0x4010f0
    00401400
    00401410
    00401410umask@plt:
    00401410jmp [rip+0x20f55a]
    00401416push 49
    0040141bjmp 0x4010f0
    00401410
    00401420
    00401420open@plt:
    00401420jmp [rip+0x20f552]
    00401426push 50
    0040142bjmp 0x4010f0
    00401420
    00401430
    00401430rename@plt:
    00401430jmp [rip+0x20f54a]
    00401436push 51
    0040143bjmp 0x4010f0
    00401430
    00401440
    00401440_start:
    00401440xor ebp, ebp
    00401442mov r9, rdx
    00401445pop rsi
    00401446mov rdx, rsp
    00401449and rsp, -16
    0040144dpush rax
    0040144epush rsp
    0040144fmov r8, 0x40d840
    00401456mov rcx, 0x40d850
    0040145dmov rdi, 0x401524
    00401464call __libc_start_main@plt
    00401469hlt
    00401440
    0040146a
    0040146a 90 90 ..
    0040146c
    0040146cfn_40146c:
    0040146csub rsp, 8
    00401470mov rax, [rip+0x20f351]
    00401477test rax, rax
    0040147aje 0x40147e
    0040147ccall rax
    0040147e
    0040147eloc_40147e:
    0040147eadd rsp, 8
    00401482ret
    0040146c
    00401483
    00401483 // align 0x10
    00401490
    00401490__do_global_dtors_aux:
    00401490push rbp
    00401491mov rbp, rsp
    00401494push rbx
    00401495sub rsp, 8
    00401499cmp [rip+0x20f520], 0
    004014a0jne 0x4014ed
    004014a2mov ebx, 0x610618
    004014a7mov rax, [rip+0x20f51a]
    004014aesub rbx, 0x610610
    004014b5sar rbx, 3
    004014b9sub rbx, 1
    004014bdcmp rax, rbx
    004014c0jae 0x4014e6
    004014c2nop [rax+rax]
    004014c8
    004014c8loc_4014c8:
    004014c8add rax, 1
    004014ccmov [rip+0x20f4f5], rax
    004014d3call [8*rax+0x610610]
    004014damov rax, [rip+0x20f4e7]
    004014e1cmp rax, rbx
    004014e4jb 0x4014c8
    004014e6
    004014e6loc_4014e6:
    004014e6mov [rip+0x20f4d3], 1
    004014ed
    004014edloc_4014ed:
    004014edadd rsp, 8
    004014f1pop rbx
    004014f2pop rbp
    004014f3ret
    00401490
    004014f4
    004014f4 // align 0x10
    00401500
    00401500frame_dummy:
    00401500cmp [rip+0x20f118], 0
    00401500
    00401508
    00401508 55 48 89 e5 74 12 b8 00 UH..t...
    00401510 00 00 00 48 85 c0 74 08 5d bf 20 06 61 00 ff e0 ...H..t.]. .a...
    00401520 5d c3 90 90 ]...
    00401524
    00401524main:
    00401524push rbp
    00401525mov rbp, rsp
    00401528sub rsp, 32
    0040152cmov [rbp-20], edi
    0040152fmov [rbp-32], rsi
    00401533mov rdx, [rbp-32]
    00401537mov eax, [rbp-20]
    0040153amov rsi, rdx
    0040153dmov edi, eax
    0040153fcall ParseArgs
    00401544mov eax, [rip+0x20f4aa]
    0040154atest eax, eax
    0040154cjne 0x401566
    0040154emov rax, [rip+0x20f493]
    00401555test rax, rax
    00401558jne 0x401581
    0040155amov rax, [rip+0x20f477]
    00401561test rax, rax
    00401564jne 0x401581
    00401566
    00401566loc_401566:
    00401566mov rdx, [rbp-32]
    0040156amov eax, [rbp-20]
    0040156dmov rsi, rdx
    00401570mov edi, eax
    00401572call PrintHelp
    00401577mov eax, 0
    0040157cjmp 0x401704
    00401581
    00401581loc_401581:
    00401581mov eax, [rip+0x20f449]
    00401587test eax, eax
    00401589je 0x401595
    0040158bmov eax, 0
    00401590call PrintArgs
    00401595
    00401595loc_401595:
    00401595mov eax, [rip+0x20f465]
    0040159btest eax, eax
    0040159dje 0x4015a9
    0040159fmov eax, 0
    004015a4call ForkProcess
    004015a9
    004015a9loc_4015a9:
    004015a9mov eax, [rip+0x20f44d]
    004015aftest eax, eax
    004015b1je 0x4015e3
    004015b3mov [rbp-4], 0
    004015bajmp 0x4015ca
    004015bc
    004015bcloc_4015bc:
    004015bcmov edi, 1000
    004015c1call Sleep
    004015c6add [rbp-4], 1
    004015ca
    004015caloc_4015ca:
    004015camov eax, [rip+0x20f42c]
    004015d0shl eax, 2
    004015d3mov edx, eax
    004015d5shl edx, 4
    004015d8mov ecx, edx
    004015dasub ecx, eax
    004015dcmov eax, ecx
    004015decmp eax, [rbp-4]
    004015e1jg 0x4015bc
    004015e3
    004015e3loc_4015e3:
    004015e3mov eax, 0
    004015e8call PrepareThreads
    004015edmov eax, 0
    004015f2call DecodeStrings
    004015f7mov eax, [rip+0x20f3fb]
    004015fdtest eax, eax
    004015ffje 0x401615
    00401601mov eax, 0
    00401606call KillEsxi
    0040160bmov eax, 0
    00401610call RemoveSnapshots
    00401615
    00401615loc_401615:
    00401615mov rax, [rip+0x20f3cc]
    0040161ctest rax, rax
    0040161fje 0x401692
    00401621mov [rbp-8], 0
    00401628jmp 0x401683
    0040162a
    0040162aloc_40162a:
    0040162amov eax, [rip+0x20f3a0]
    00401630test eax, eax
    00401632je 0x401660
    00401634mov rax, [rip+0x20f3ad]
    0040163bmov edx, [rbp-8]
    0040163emovsxd rdx, edx
    00401641shl rdx, 3
    00401645add rax, rdx
    00401648mov rdx, [rax]
    0040164bmov eax, 0x40d944
    00401650mov rsi, rdx
    00401653mov rdi, rax
    00401656mov eax, 0
    0040165bcall printf@plt
    00401660
    00401660loc_401660:
    00401660mov rax, [rip+0x20f381]
    00401667mov edx, [rbp-8]
    0040166amovsxd rdx, edx
    0040166dshl rdx, 3
    00401671add rax, rdx
    00401674mov rax, [rax]
    00401677mov rdi, rax
    0040167acall RecursiveSearch
    0040167fadd [rbp-8], 1
    00401683
    00401683loc_401683:
    00401683mov edx, [rbp-8]
    00401686mov eax, [rip+0x20f364]
    0040168ccmp edx, eax
    0040168ejb 0x40162a
    00401690jmp 0x4016e1
    00401692
    00401692loc_401692:
    00401692mov rax, [rip+0x20f33f]
    00401699test rax, rax
    0040169cje 0x4016e1
    0040169emov [rbp-12], 0
    004016a5jmp 0x4016d4
    004016a7
    004016a7loc_4016a7:
    004016a7mov rax, [rip+0x20f32a]
    004016aemov edx, [rbp-12]
    004016b1movsxd rdx, edx
    004016b4shl rdx, 3
    004016b8add rax, rdx
    004016bbmov rdx, [rax]
    004016bemov rax, [rip+0x20f343]
    004016c5mov rsi, rdx
    004016c8mov rdi, rax
    004016cbcall queue_put_wait
    004016d0add [rbp-12], 1
    004016d4
    004016d4loc_4016d4:
    004016d4mov edx, [rbp-12]
    004016d7mov eax, [rip+0x20f303]
    004016ddcmp edx, eax
    004016dfjb 0x4016a7
    004016e1
    004016e1loc_4016e1:
    004016e1mov eax, [rip+0x20f31d]
    004016e7test eax, eax
    004016e9je 0x4016f5
    004016ebmov eax, 0
    004016f0call SetupMotd
    004016f5
    004016f5loc_4016f5:
    004016f5mov eax, 0
    004016facall WaitForThreads
    004016ffmov eax, 0
    00401704
    00401704loc_401704:
    00401704leave
    00401705ret
    00401524
    00401706
    00401706 90 90 ..
    00401708
    00401708queue_lock_internal:
    00401708push rbp
    00401709mov rbp, rsp
    0040170csub rsp, 16
    00401710mov [rbp-8], rdi
    00401714cmp [rbp-8], 0
    00401719jne 0x401722
    0040171bmov eax, -1
    00401720jmp 0x401742
    00401722
    00401722loc_401722:
    00401722mov rax, [rbp-8]
    00401726mov rax, [rax+32]
    0040172amov rdi, rax
    0040172dcall pthread_mutex_lock@plt
    00401732test eax, eax
    00401734je 0x40173d
    00401736mov eax, -2
    0040173bjmp 0x401742
    0040173d
    0040173dloc_40173d:
    0040173dmov eax, 0
    00401742
    00401742loc_401742:
    00401742leave
    00401743ret
    00401708
    00401744
    00401744queue_unlock_internal:
    00401744push rbp
    00401745mov rbp, rsp
    00401748sub rsp, 16
    0040174cmov [rbp-8], rdi
    00401750cmp [rbp-8], 0
    00401755jne 0x40175e
    00401757mov eax, -1
    0040175cjmp 0x40177e
    0040175e
    0040175eloc_40175e:
    0040175emov rax, [rbp-8]
    00401762mov rax, [rax+32]
    00401766mov rdi, rax
    00401769call pthread_mutex_unlock@plt
    0040176etest eax, eax
    00401770je 0x401779
    00401772mov eax, -2
    00401777jmp 0x40177e
    00401779
    00401779loc_401779:
    00401779mov eax, 0
    0040177e
    0040177eloc_40177e:
    0040177eleave
    0040177fret
    00401744
    00401780
    00401780queue_destroy_internal:
    00401780push rbp
    00401781mov rbp, rsp
    00401784sub rsp, 48
    00401788mov [rbp-24], rdi
    0040178cmov eax, esi
    0040178emov [rbp-40], rdx
    00401792mov [rbp-28], al
    00401795mov [rbp-4], 0
    0040179cmov rax, [rbp-24]
    004017a0mov esi, 0
    004017a5mov rdi, rax
    004017a8call queue_set_new_data
    004017admovsx eax, al
    004017b0mov [rbp-4], eax
    004017b3mov rax, [rbp-24]
    004017b7mov rdi, rax
    004017bacall queue_lock_internal
    004017bfmovsx eax, al
    004017c2mov [rbp-4], eax
    004017c5movzx ecx, [rbp-28]
    004017c9mov rdx, [rbp-40]
    004017cdmov rax, [rbp-24]
    004017d1mov esi, ecx
    004017d3mov rdi, rax
    004017d6call queue_flush_internal
    004017dbmovsx eax, al
    004017demov [rbp-4], eax
    004017e1mov rax, [rbp-24]
    004017e5mov rax, [rax+40]
    004017e9mov rdi, rax
    004017eccall pthread_cond_destroy@plt
    004017f1mov [rbp-4], eax
    004017f4mov rax, [rbp-24]
    004017f8mov rax, [rax+40]
    004017fcmov rdi, rax
    004017ffcall free@plt
    00401804mov rax, [rbp-24]
    00401808mov rax, [rax+48]
    0040180cmov rdi, rax
    0040180fcall pthread_cond_destroy@plt
    00401814mov [rbp-4], eax
    00401817mov rax, [rbp-24]
    0040181bmov rax, [rax+48]
    0040181fmov rdi, rax
    00401822call free@plt
    00401827mov rax, [rbp-24]
    0040182bmov rdi, rax
    0040182ecall queue_unlock_internal
    00401833movsx eax, al
    00401836mov [rbp-4], eax
    00401839jmp 0x401845
    0040183b
    0040183bloc_40183b:
    0040183bmov edi, 0x186a0
    00401840call usleep@plt
    00401845
    00401845loc_401845:
    00401845mov rax, [rbp-24]
    00401849mov rax, [rax+32]
    0040184dmov rdi, rax
    00401850call pthread_mutex_destroy@plt
    00401855mov [rbp-4], eax
    00401858cmp [rbp-4], 16
    0040185cje 0x40183b
    0040185emov rax, [rbp-24]
    00401862mov rax, [rax+32]
    00401866mov rdi, rax
    00401869call free@plt
    0040186emov rax, [rbp-24]
    00401872mov rdi, rax
    00401875call free@plt
    0040187amov eax, [rbp-4]
    0040187dleave
    0040187eret
    00401780
    0040187f
    0040187fqueue_flush_internal:
    0040187fpush rbp
    00401880mov rbp, rsp
    00401883sub rsp, 48
    00401887mov [rbp-24], rdi
    0040188bmov eax, esi
    0040188dmov [rbp-40], rdx
    00401891mov [rbp-28], al
    00401894cmp [rbp-24], 0
    00401899jne 0x4018a5
    0040189bmov eax, -1
    004018a0jmp 0x401942
    004018a5
    004018a5loc_4018a5:
    004018a5mov rax, [rbp-24]
    004018a9mov rax, [rax]
    004018acmov [rbp-8], rax
    004018b0mov [rbp-16], 0
    004018b8jmp 0x401915
    004018ba
    004018baloc_4018ba:
    004018bamov rax, [rbp-8]
    004018bemov rax, [rax+8]
    004018c2mov [rbp-16], rax
    004018c6cmp [rbp-28], 0
    004018caje 0x4018e4
    004018cccmp [rbp-40], 0
    004018d1jne 0x4018e4
    004018d3mov rax, [rbp-8]
    004018d7mov rax, [rax]
    004018damov rdi, rax
    004018ddcall free@plt
    004018e2jmp 0x401901
    004018e4
    004018e4loc_4018e4:
    004018e4cmp [rbp-28], 0
    004018e8je 0x401901
    004018eacmp [rbp-40], 0
    004018efje 0x401901
    004018f1mov rax, [rbp-8]
    004018f5mov rax, [rax]
    004018f8mov rdx, [rbp-40]
    004018fcmov rdi, rax
    004018ffcall rdx
    00401901
    00401901loc_401901:
    00401901mov rax, [rbp-8]
    00401905mov rdi, rax
    00401908call free@plt
    0040190dmov rax, [rbp-16]
    00401911mov [rbp-8], rax
    00401915
    00401915loc_401915:
    00401915cmp [rbp-8], 0
    0040191ajne 0x4018ba
    0040191cmov rax, [rbp-24]
    00401920mov [rax], 0
    00401927mov rax, [rbp-24]
    0040192bmov [rax+8], 0
    00401933mov rax, [rbp-24]
    00401937mov [rax+16], 0
    0040193dmov eax, 0
    00401942
    00401942loc_401942:
    00401942leave
    00401943ret
    0040187f
    00401944
    00401944queue_put_internal:
    00401944push rbp
    00401945mov rbp, rsp
    00401948sub rsp, 64
    0040194cmov [rbp-40], rdi
    00401950mov [rbp-48], rsi
    00401954mov [rbp-56], rdx
    00401958cmp [rbp-40], 0
    0040195djne 0x401969
    0040195fmov eax, -1
    00401964jmp 0x401cb1
    00401969
    00401969loc_401969:
    00401969mov rax, [rbp-40]
    0040196dmovzx eax, [rax+20]
    00401971test al, al
    00401973jne 0x40197f
    00401975mov eax, -4
    0040197ajmp 0x401cb1
    0040197f
    0040197floc_40197f:
    0040197fmov rax, [rbp-40]
    00401983movzx eax, [rax+16]
    00401987cmp ax, -2
    0040198bje 0x4019b7
    0040198dmov rax, [rbp-40]
    00401991movzx eax, [rax+18]
    00401995test ax, ax
    00401998je 0x401a39
    0040199emov rax, [rbp-40]
    004019a2movzx edx, [rax+16]
    004019a6mov rax, [rbp-40]
    004019aamovzx eax, [rax+18]
    004019aecmp dx, ax
    004019b1jne 0x401a39
    004019b7
    004019b7loc_4019b7:
    004019b7cmp [rbp-56], 0
    004019bcjne 0x4019e6
    004019bemov eax, -7
    004019c3jmp 0x401cb1
    004019c8
    004019c8loc_4019c8:
    004019c8mov rax, [rbp-40]
    004019ccmov rdx, [rax+32]
    004019d0mov rax, [rbp-40]
    004019d4mov rax, [rax+48]
    004019d8mov rcx, [rbp-56]
    004019dcmov rsi, rdx
    004019dfmov rdi, rax
    004019e2call rcx
    004019e4jmp 0x4019e7
    004019e6
    004019e6loc_4019e6:
    004019e6nop
    004019e7
    004019e7loc_4019e7:
    004019e7mov rax, [rbp-40]
    004019ebmovzx eax, [rax+16]
    004019efcmp ax, -2
    004019f3je 0x401a17
    004019f5mov rax, [rbp-40]
    004019f9movzx eax, [rax+18]
    004019fdtest ax, ax
    00401a00je 0x401a23
    00401a02mov rax, [rbp-40]
    00401a06movzx edx, [rax+16]
    00401a0amov rax, [rbp-40]
    00401a0emovzx eax, [rax+18]
    00401a12cmp dx, ax
    00401a15jne 0x401a23
    00401a17
    00401a17loc_401a17:
    00401a17mov rax, [rbp-40]
    00401a1bmovzx eax, [rax+20]
    00401a1ftest al, al
    00401a21jne 0x4019c8
    00401a23
    00401a23loc_401a23:
    00401a23mov rax, [rbp-40]
    00401a27movzx eax, [rax+20]
    00401a2btest al, al
    00401a2djne 0x401a39
    00401a2fmov eax, -4
    00401a34jmp 0x401cb1
    00401a39
    00401a39loc_401a39:
    00401a39mov edi, 16
    00401a3ecall malloc@plt
    00401a43mov [rbp-24], rax
    00401a47cmp [rbp-24], 0
    00401a4cjne 0x401a58
    00401a4emov eax, -3
    00401a53jmp 0x401cb1
    00401a58
    00401a58loc_401a58:
    00401a58mov rax, [rbp-24]
    00401a5cmov rdx, [rbp-48]
    00401a60mov [rax], rdx
    00401a63mov rax, [rbp-24]
    00401a67mov [rax+8], 0
    00401a6fmov rax, [rbp-40]
    00401a73movzx eax, [rax+21]
    00401a77test al, al
    00401a79je 0x401a87
    00401a7bmov rax, [rbp-40]
    00401a7fmov rax, [rax]
    00401a82test rax, rax
    00401a85jne 0x401ac2
    00401a87
    00401a87loc_401a87:
    00401a87mov rax, [rbp-40]
    00401a8bmov rax, [rax+8]
    00401a8ftest rax, rax
    00401a92jne 0x401aa1
    00401a94mov rax, [rbp-40]
    00401a98mov rdx, [rbp-24]
    00401a9cmov [rax], rdx
    00401a9fjmp 0x401ab1
    00401aa1
    00401aa1loc_401aa1:
    00401aa1mov rax, [rbp-40]
    00401aa5mov rax, [rax+8]
    00401aa9mov rdx, [rbp-24]
    00401aadmov [rax+8], rdx
    00401ab1
    00401ab1loc_401ab1:
    00401ab1mov rax, [rbp-40]
    00401ab5mov rdx, [rbp-24]
    00401ab9mov [rax+8], rdx
    00401abdjmp 0x401c89
    00401ac2
    00401ac2loc_401ac2:
    00401ac2mov rax, [rbp-40]
    00401ac6mov rax, [rax]
    00401ac9mov [rbp-8], rax
    00401acdmov [rbp-16], 0
    00401ad5mov rax, [rbp-40]
    00401ad9movzx eax, [rax+22]
    00401addtest al, al
    00401adfje 0x401b07
    00401ae1mov rax, [rbp-40]
    00401ae5mov rcx, [rax+24]
    00401ae9mov rax, [rbp-8]
    00401aedmov rax, [rax]
    00401af0mov rdx, [rbp-48]
    00401af4mov rsi, rdx
    00401af7mov rdi, rax
    00401afacall rcx
    00401afctest eax, eax
    00401afejs 0x401b07
    00401b00mov eax, 1
    00401b05jmp 0x401b0c
    00401b07
    00401b07loc_401b07:
    00401b07mov eax, 0
    00401b0c
    00401b0cloc_401b0c:
    00401b0cmov [rbp-28], eax
    00401b0fmov rax, [rbp-40]
    00401b13movzx eax, [rax+22]
    00401b17test al, al
    00401b19jne 0x401b41
    00401b1bmov rax, [rbp-40]
    00401b1fmov rcx, [rax+24]
    00401b23mov rax, [rbp-8]
    00401b27mov rax, [rax]
    00401b2amov rdx, [rbp-48]
    00401b2emov rsi, rdx
    00401b31mov rdi, rax
    00401b34call rcx
    00401b36test eax, eax
    00401b38jg 0x401b41
    00401b3amov eax, 1
    00401b3fjmp 0x401b46
    00401b41
    00401b41loc_401b41:
    00401b41mov eax, 0
    00401b46
    00401b46loc_401b46:
    00401b46mov [rbp-32], eax
    00401b49cmp [rbp-28], 0
    00401b4djne 0x401c63
    00401b53cmp [rbp-32], 0
    00401b57jne 0x401c63
    00401b5dmov rax, [rbp-40]
    00401b61mov rax, [rax]
    00401b64mov [rbp-8], rax
    00401b68mov rax, [rbp-8]
    00401b6cmov rax, [rax+8]
    00401b70mov [rbp-16], rax
    00401b74jmp 0x401c21
    00401b79
    00401b79loc_401b79:
    00401b79mov rax, [rbp-40]
    00401b7dmovzx eax, [rax+22]
    00401b81test al, al
    00401b83je 0x401bc3
    00401b85mov rax, [rbp-40]
    00401b89mov rcx, [rax+24]
    00401b8dmov rax, [rbp-8]
    00401b91mov rax, [rax]
    00401b94mov rdx, [rbp-48]
    00401b98mov rsi, rdx
    00401b9bmov rdi, rax
    00401b9ecall rcx
    00401ba0test eax, eax
    00401ba2jg 0x401bc3
    00401ba4mov rax, [rbp-40]
    00401ba8mov rcx, [rax+24]
    00401bacmov rax, [rbp-16]
    00401bb0mov rdx, [rax]
    00401bb3mov rax, [rbp-48]
    00401bb7mov rsi, rdx
    00401bbamov rdi, rax
    00401bbdcall rcx
    00401bbftest eax, eax
    00401bc1jle 0x401c36
    00401bc3
    00401bc3loc_401bc3:
    00401bc3mov rax, [rbp-40]
    00401bc7movzx eax, [rax+22]
    00401bcbtest al, al
    00401bcdjne 0x401c0d
    00401bcfmov rax, [rbp-40]
    00401bd3mov rcx, [rax+24]
    00401bd7mov rax, [rbp-8]
    00401bdbmov rax, [rax]
    00401bdemov rdx, [rbp-48]
    00401be2mov rsi, rdx
    00401be5mov rdi, rax
    00401be8call rcx
    00401beatest eax, eax
    00401becjs 0x401c0d
    00401beemov rax, [rbp-40]
    00401bf2mov rcx, [rax+24]
    00401bf6mov rax, [rbp-16]
    00401bfamov rdx, [rax]
    00401bfdmov rax, [rbp-48]
    00401c01mov rsi, rdx
    00401c04mov rdi, rax
    00401c07call rcx
    00401c09test eax, eax
    00401c0bjns 0x401c35
    00401c0d
    00401c0dloc_401c0d:
    00401c0dmov rax, [rbp-16]
    00401c11mov [rbp-8], rax
    00401c15mov rax, [rbp-16]
    00401c19mov rax, [rax+8]
    00401c1dmov [rbp-16], rax
    00401c21
    00401c21loc_401c21:
    00401c21cmp [rbp-8], 0
    00401c26je 0x401c36
    00401c28cmp [rbp-16], 0
    00401c2djne 0x401b79
    00401c33jmp 0x401c36
    00401c35
    00401c35loc_401c35:
    00401c35nop
    00401c36
    00401c36loc_401c36:
    00401c36mov rax, [rbp-8]
    00401c3amov rdx, [rbp-24]
    00401c3emov [rax+8], rdx
    00401c42mov rax, [rbp-24]
    00401c46mov rdx, [rbp-16]
    00401c4amov [rax+8], rdx
    00401c4ecmp [rbp-16], 0
    00401c53jne 0x401c89
    00401c55mov rax, [rbp-40]
    00401c59mov rdx, [rbp-24]
    00401c5dmov [rax+8], rdx
    00401c61jmp 0x401c89
    00401c63
    00401c63loc_401c63:
    00401c63cmp [rbp-28], 0
    00401c67jne 0x401c6f
    00401c69cmp [rbp-32], 0
    00401c6dje 0x401c89
    00401c6f
    00401c6floc_401c6f:
    00401c6fmov rax, [rbp-40]
    00401c73mov rdx, [rax]
    00401c76mov rax, [rbp-24]
    00401c7amov [rax+8], rdx
    00401c7emov rax, [rbp-40]
    00401c82mov rdx, [rbp-24]
    00401c86mov [rax], rdx
    00401c89
    00401c89loc_401c89:
    00401c89mov rax, [rbp-40]
    00401c8dmovzx eax, [rax+16]
    00401c91lea edx, [rax+1]
    00401c94mov rax, [rbp-40]
    00401c98mov [rax+16], dx
    00401c9cmov rax, [rbp-40]
    00401ca0mov rax, [rax+40]
    00401ca4mov rdi, rax
    00401ca7call pthread_cond_signal@plt
    00401cacmov eax, 0
    00401cb1
    00401cb1loc_401cb1:
    00401cb1leave
    00401cb2ret
    00401944
    00401cb3
    00401cb3queue_get_internal:
    00401cb3push rbp
    00401cb4mov rbp, rsp
    00401cb7sub rsp, 64
    00401cbbmov [rbp-24], rdi
    00401cbfmov [rbp-32], rsi
    00401cc3mov [rbp-40], rdx
    00401cc7mov [rbp-48], rcx
    00401ccbmov [rbp-56], r8
    00401ccfcmp [rbp-24], 0
    00401cd4jne 0x401ceb
    00401cd6mov rax, [rbp-32]
    00401cdamov [rax], 0
    00401ce1mov eax, -1
    00401ce6jmp 0x401e96
    00401ceb
    00401cebloc_401ceb:
    00401cebmov rax, [rbp-24]
    00401cefmovzx eax, [rax+16]
    00401cf3test ax, ax
    00401cf6jne 0x401d6f
    00401cf8cmp [rbp-40], 0
    00401cfdjne 0x401d32
    00401cffmov rax, [rbp-32]
    00401d03mov [rax], 0
    00401d0amov eax, -7
    00401d0fjmp 0x401e96
    00401d14
    00401d14loc_401d14:
    00401d14mov rax, [rbp-24]
    00401d18mov rdx, [rax+32]
    00401d1cmov rax, [rbp-24]
    00401d20mov rax, [rax+40]
    00401d24mov rcx, [rbp-40]
    00401d28mov rsi, rdx
    00401d2bmov rdi, rax
    00401d2ecall rcx
    00401d30jmp 0x401d33
    00401d32
    00401d32loc_401d32:
    00401d32nop
    00401d33
    00401d33loc_401d33:
    00401d33mov rax, [rbp-24]
    00401d37movzx eax, [rax+16]
    00401d3btest ax, ax
    00401d3ejne 0x401d4c
    00401d40mov rax, [rbp-24]
    00401d44movzx eax, [rax+20]
    00401d48test al, al
    00401d4ajne 0x401d14
    00401d4c
    00401d4cloc_401d4c:
    00401d4cmov rax, [rbp-24]
    00401d50movzx eax, [rax+16]
    00401d54test ax, ax
    00401d57jne 0x401d6f
    00401d59mov rax, [rbp-24]
    00401d5dmovzx eax, [rax+20]
    00401d61test al, al
    00401d63jne 0x401d6f
    00401d65mov eax, -4
    00401d6ajmp 0x401e96
    00401d6f
    00401d6floc_401d6f:
    00401d6fmov [rbp-8], 0
    00401d77mov rax, [rbp-24]
    00401d7bmov rax, [rax]
    00401d7emov [rbp-16], rax
    00401d82jmp 0x401d98
    00401d84
    00401d84loc_401d84:
    00401d84mov rax, [rbp-16]
    00401d88mov [rbp-8], rax
    00401d8cmov rax, [rbp-16]
    00401d90mov rax, [rax+8]
    00401d94mov [rbp-16], rax
    00401d98
    00401d98loc_401d98:
    00401d98cmp [rbp-48], 0
    00401d9dje 0x401dbe
    00401d9fcmp [rbp-16], 0
    00401da4je 0x401dbe
    00401da6mov rdx, [rbp-56]
    00401daamov rax, [rbp-16]
    00401daemov rcx, [rbp-48]
    00401db2mov rsi, rdx
    00401db5mov rdi, rax
    00401db8call rcx
    00401dbatest eax, eax
    00401dbcjne 0x401d84
    00401dbe
    00401dbeloc_401dbe:
    00401dbecmp [rbp-16], 0
    00401dc3je 0x401e22
    00401dc5cmp [rbp-8], 0
    00401dcajne 0x401e22
    00401dccmov rax, [rbp-16]
    00401dd0mov rdx, [rax+8]
    00401dd4mov rax, [rbp-24]
    00401dd8mov [rax], rdx
    00401ddbmov rax, [rbp-24]
    00401ddfmov rax, [rax]
    00401de2test rax, rax
    00401de5jne 0x401df3
    00401de7mov rax, [rbp-24]
    00401debmov [rax+8], 0
    00401df3
    00401df3loc_401df3:
    00401df3mov rax, [rbp-24]
    00401df7movzx eax, [rax+16]
    00401dfblea edx, [rax-1]
    00401dfemov rax, [rbp-24]
    00401e02mov [rax+16], dx
    00401e06mov rax, [rbp-16]
    00401e0amov rdx, [rax]
    00401e0dmov rax, [rbp-32]
    00401e11mov [rax], rdx
    00401e14mov rax, [rbp-16]
    00401e18mov rdi, rax
    00401e1bcall free@plt
    00401e20jmp 0x401e81
    00401e22
    00401e22loc_401e22:
    00401e22cmp [rbp-16], 0
    00401e27je 0x401e6f
    00401e29cmp [rbp-8], 0
    00401e2eje 0x401e6f
    00401e30mov rax, [rbp-16]
    00401e34mov rdx, [rax+8]
    00401e38mov rax, [rbp-8]
    00401e3cmov [rax+8], rdx
    00401e40mov rax, [rbp-24]
    00401e44movzx eax, [rax+16]
    00401e48lea edx, [rax-1]
    00401e4bmov rax, [rbp-24]
    00401e4fmov [rax+16], dx
    00401e53mov rax, [rbp-16]
    00401e57mov rdx, [rax]
    00401e5amov rax, [rbp-32]
    00401e5emov [rax], rdx
    00401e61mov rax, [rbp-16]
    00401e65mov rdi, rax
    00401e68call free@plt
    00401e6djmp 0x401e81
    00401e6f
    00401e6floc_401e6f:
    00401e6fmov rax, [rbp-32]
    00401e73mov [rax], 0
    00401e7amov eax, -5
    00401e7fjmp 0x401e96
    00401e81
    00401e81loc_401e81:
    00401e81mov rax, [rbp-24]
    00401e85mov rax, [rax+48]
    00401e89mov rdi, rax
    00401e8ccall pthread_cond_signal@plt
    00401e91mov eax, 0
    00401e96
    00401e96loc_401e96:
    00401e96leave
    00401e97ret
    00401cb3
    00401e98
    00401e98queue_create:
    00401e98push rbp
    00401e99mov rbp, rsp
    00401e9csub rsp, 16
    00401ea0mov edi, 56
    00401ea5call malloc@plt
    00401eaamov [rbp-8], rax
    00401eaecmp [rbp-8], 0
    00401eb3je 0x40204c
    00401eb9mov edi, 40
    00401ebecall malloc@plt
    00401ec3mov rdx, rax
    00401ec6mov rax, [rbp-8]
    00401ecamov [rax+32], rdx
    00401ecemov rax, [rbp-8]
    00401ed2mov rax, [rax+32]
    00401ed6test rax, rax
    00401ed9jne 0x401ef1
    00401edbmov rax, [rbp-8]
    00401edfmov rdi, rax
    00401ee2call free@plt
    00401ee7mov eax, 0
    00401eecjmp 0x402050
    00401ef1
    00401ef1loc_401ef1:
    00401ef1mov rax, [rbp-8]
    00401ef5mov rax, [rax+32]
    00401ef9mov esi, 0
    00401efemov rdi, rax
    00401f01call pthread_mutex_init@plt
    00401f06mov edi, 48
    00401f0bcall malloc@plt
    00401f10mov rdx, rax
    00401f13mov rax, [rbp-8]
    00401f17mov [rax+40], rdx
    00401f1bmov rax, [rbp-8]
    00401f1fmov rax, [rax+40]
    00401f23test rax, rax
    00401f26jne 0x401f5e
    00401f28mov rax, [rbp-8]
    00401f2cmov rax, [rax+32]
    00401f30mov rdi, rax
    00401f33call pthread_mutex_destroy@plt
    00401f38mov rax, [rbp-8]
    00401f3cmov rax, [rax+32]
    00401f40mov rdi, rax
    00401f43call free@plt
    00401f48mov rax, [rbp-8]
    00401f4cmov rdi, rax
    00401f4fcall free@plt
    00401f54mov eax, 0
    00401f59jmp 0x402050
    00401f5e
    00401f5eloc_401f5e:
    00401f5emov rax, [rbp-8]
    00401f62mov rax, [rax+40]
    00401f66mov esi, 0
    00401f6bmov rdi, rax
    00401f6ecall pthread_cond_init@plt
    00401f73mov edi, 48
    00401f78call malloc@plt
    00401f7dmov rdx, rax
    00401f80mov rax, [rbp-8]
    00401f84mov [rax+48], rdx
    00401f88mov rax, [rbp-8]
    00401f8cmov rax, [rax+48]
    00401f90test rax, rax
    00401f93jne 0x401fe8
    00401f95mov rax, [rbp-8]
    00401f99mov rax, [rax+40]
    00401f9dmov rdi, rax
    00401fa0call pthread_cond_destroy@plt
    00401fa5mov rax, [rbp-8]
    00401fa9mov rax, [rax+40]
    00401fadmov rdi, rax
    00401fb0call free@plt
    00401fb5mov rax, [rbp-8]
    00401fb9mov rax, [rax+32]
    00401fbdmov rdi, rax
    00401fc0call pthread_mutex_destroy@plt
    00401fc5mov rax, [rbp-8]
    00401fc9mov rax, [rax+32]
    00401fcdmov rdi, rax
    00401fd0call free@plt
    00401fd5mov rax, [rbp-8]
    00401fd9mov rdi, rax
    00401fdccall free@plt
    00401fe1mov eax, 0
    00401fe6jmp 0x402050
    00401fe8
    00401fe8loc_401fe8:
    00401fe8mov rax, [rbp-8]
    00401fecmov rax, [rax+48]
    00401ff0mov esi, 0
    00401ff5mov rdi, rax
    00401ff8call pthread_cond_init@plt
    00401ffdmov rax, [rbp-8]
    00402001mov [rax], 0
    00402008mov rax, [rbp-8]
    0040200cmov [rax+8], 0
    00402014mov rax, [rbp-8]
    00402018mov [rax+16], 0
    0040201emov rax, [rbp-8]
    00402022mov [rax+18], 0
    00402028mov rax, [rbp-8]
    0040202cmov [rax+20], 1
    00402030mov rax, [rbp-8]
    00402034mov [rax+21], 0
    00402038mov rax, [rbp-8]
    0040203cmov [rax+22], 1
    00402040mov rax, [rbp-8]
    00402044mov [rax+24], 0
    0040204c
    0040204cloc_40204c:
    0040204cmov rax, [rbp-8]
    00402050
    00402050loc_402050:
    00402050leave
    00402051ret
    00401e98
    00402052
    00402052queue_create_limited:
    00402052push rbp
    00402053mov rbp, rsp
    00402056sub rsp, 32
    0040205amov eax, edi
    0040205cmov [rbp-20], ax
    00402060call queue_create
    00402065mov [rbp-8], rax
    00402069cmp [rbp-8], 0
    0040206eje 0x40207c
    00402070mov rax, [rbp-8]
    00402074movzx edx, [rbp-20]
    00402078mov [rax+18], dx
    0040207c
    0040207cloc_40207c:
    0040207cmov rax, [rbp-8]
    00402080leave
    00402081ret
    00402052
    00402082
    00402082queue_create_sorted:
    00402082push rbp
    00402083mov rbp, rsp
    00402086sub rsp, 32
    0040208amov eax, edi
    0040208cmov [rbp-32], rsi
    00402090mov [rbp-20], al
    00402093cmp [rbp-32], 0
    00402098jne 0x4020a1
    0040209amov eax, 0
    0040209fjmp 0x4020d4
    004020a1
    004020a1loc_4020a1:
    004020a1call queue_create
    004020a6mov [rbp-8], rax
    004020aacmp [rbp-8], 0
    004020afje 0x4020d0
    004020b1mov rax, [rbp-8]
    004020b5mov [rax+21], 1
    004020b9mov rax, [rbp-8]
    004020bdmovzx edx, [rbp-20]
    004020c1mov [rax+22], dl
    004020c4mov rax, [rbp-8]
    004020c8mov rdx, [rbp-32]
    004020ccmov [rax+24], rdx
    004020d0
    004020d0loc_4020d0:
    004020d0mov rax, [rbp-8]
    004020d4
    004020d4loc_4020d4:
    004020d4leave
    004020d5ret
    00402082
    004020d6
    004020d6queue_create_limited_sorted:
    004020d6push rbp
    004020d7mov rbp, rsp
    004020dasub rsp, 32
    004020demov ecx, edi
    004020e0mov eax, esi
    004020e2mov [rbp-32], rdx
    004020e6mov [rbp-20], cx
    004020eamov [rbp-24], al
    004020edcmp [rbp-32], 0
    004020f2jne 0x4020fb
    004020f4mov eax, 0
    004020f9jmp 0x40213a
    004020fb
    004020fbloc_4020fb:
    004020fbcall queue_create
    00402100mov [rbp-8], rax
    00402104cmp [rbp-8], 0
    00402109je 0x402136
    0040210bmov rax, [rbp-8]
    0040210fmovzx edx, [rbp-20]
    00402113mov [rax+18], dx
    00402117mov rax, [rbp-8]
    0040211bmov [rax+21], 1
    0040211fmov rax, [rbp-8]
    00402123movzx edx, [rbp-24]
    00402127mov [rax+22], dl
    0040212amov rax, [rbp-8]
    0040212emov rdx, [rbp-32]
    00402132mov [rax+24], rdx
    00402136
    00402136loc_402136:
    00402136mov rax, [rbp-8]
    0040213a
    0040213aloc_40213a:
    0040213aleave
    0040213bret
    004020d6
    0040213c
    0040213cqueue_destroy:
    0040213cpush rbp
    0040213dmov rbp, rsp
    00402140sub rsp, 16
    00402144mov [rbp-8], rdi
    00402148cmp [rbp-8], 0
    0040214djne 0x402156
    0040214fmov eax, -1
    00402154jmp 0x40216c
    00402156
    00402156loc_402156:
    00402156mov rax, [rbp-8]
    0040215amov edx, 0
    0040215fmov esi, 0
    00402164mov rdi, rax
    00402167call queue_destroy_internal
    0040216c
    0040216cloc_40216c:
    0040216cleave
    0040216dret
    0040213c
    0040216e
    0040216equeue_destroy_complete:
    0040216epush rbp
    0040216fmov rbp, rsp
    00402172sub rsp, 16
    00402176mov [rbp-8], rdi
    0040217amov [rbp-16], rsi
    0040217ecmp [rbp-8], 0
    00402183jne 0x40218c
    00402185mov eax, -1
    0040218ajmp 0x4021a1
    0040218c
    0040218cloc_40218c:
    0040218cmov rdx, [rbp-16]
    00402190mov rax, [rbp-8]
    00402194mov esi, 1
    00402199mov rdi, rax
    0040219ccall queue_destroy_internal
    004021a1
    004021a1loc_4021a1:
    004021a1leave
    004021a2ret
    0040216e
    004021a3
    004021a3queue_flush:
    004021a3push rbp
    004021a4mov rbp, rsp
    004021a7sub rsp, 32
    004021abmov [rbp-24], rdi
    004021afcmp [rbp-24], 0
    004021b4jne 0x4021bd
    004021b6mov eax, -1
    004021bbjmp 0x402208
    004021bd
    004021bdloc_4021bd:
    004021bdmov rax, [rbp-24]
    004021c1mov rdi, rax
    004021c4call queue_lock_internal
    004021c9test al, al
    004021cbje 0x4021d4
    004021cdmov eax, -2
    004021d2jmp 0x402208
    004021d4
    004021d4loc_4021d4:
    004021d4mov rax, [rbp-24]
    004021d8mov edx, 0
    004021ddmov esi, 0
    004021e2mov rdi, rax
    004021e5call queue_flush_internal
    004021eamov [rbp-1], al
    004021edmov rax, [rbp-24]
    004021f1mov rdi, rax
    004021f4call queue_unlock_internal
    004021f9test al, al
    004021fbje 0x402204
    004021fdmov eax, -2
    00402202jmp 0x402208
    00402204
    00402204loc_402204:
    00402204movzx eax, [rbp-1]
    00402208
    00402208loc_402208:
    00402208leave
    00402209ret
    004021a3
    0040220a
    0040220aqueue_flush_complete:
    0040220apush rbp
    0040220bmov rbp, rsp
    0040220esub rsp, 32
    00402212mov [rbp-24], rdi
    00402216mov [rbp-32], rsi
    0040221acmp [rbp-24], 0
    0040221fjne 0x402228
    00402221mov eax, -1
    00402226jmp 0x402272
    00402228
    00402228loc_402228:
    00402228mov rax, [rbp-24]
    0040222cmov rdi, rax
    0040222fcall queue_lock_internal
    00402234test al, al
    00402236je 0x40223f
    00402238mov eax, -2
    0040223djmp 0x402272
    0040223f
    0040223floc_40223f:
    0040223fmov rdx, [rbp-32]
    00402243mov rax, [rbp-24]
    00402247mov esi, 1
    0040224cmov rdi, rax
    0040224fcall queue_flush_internal
    00402254mov [rbp-1], al
    00402257mov rax, [rbp-24]
    0040225bmov rdi, rax
    0040225ecall queue_unlock_internal
    00402263test al, al
    00402265je 0x40226e
    00402267mov eax, -2
    0040226cjmp 0x402272
    0040226e
    0040226eloc_40226e:
    0040226emovzx eax, [rbp-1]
    00402272
    00402272loc_402272:
    00402272leave
    00402273ret
    0040220a
    00402274
    00402274queue_elements:
    00402274push rbp
    00402275mov rbp, rsp
    00402278sub rsp, 32
    0040227cmov [rbp-24], rdi
    00402280mov [rbp-2], -1
    00402286cmp [rbp-24], 0
    0040228bjne 0x402293
    0040228dmovzx eax, [rbp-2]
    00402291jmp 0x4022d0
    00402293
    00402293loc_402293:
    00402293mov rax, [rbp-24]
    00402297mov rdi, rax
    0040229acall queue_lock_internal
    0040229ftest al, al
    004022a1je 0x4022a9
    004022a3movzx eax, [rbp-2]
    004022a7jmp 0x4022d0
    004022a9
    004022a9loc_4022a9:
    004022a9mov rax, [rbp-24]
    004022admovzx eax, [rax+16]
    004022b1mov [rbp-2], ax
    004022b5mov rax, [rbp-24]
    004022b9mov rdi, rax
    004022bccall queue_unlock_internal
    004022c1test al, al
    004022c3je 0x4022cc
    004022c5mov eax, -2
    004022cajmp 0x4022d0
    004022cc
    004022ccloc_4022cc:
    004022ccmovzx eax, [rbp-2]
    004022d0
    004022d0loc_4022d0:
    004022d0leave
    004022d1ret
    00402274
    004022d2
    004022d2queue_empty:
    004022d2push rbp
    004022d3mov rbp, rsp
    004022d6sub rsp, 32
    004022damov [rbp-24], rdi
    004022decmp [rbp-24], 0
    004022e3jne 0x4022ec
    004022e5mov eax, -1
    004022eajmp 0x402341
    004022ec
    004022ecloc_4022ec:
    004022ecmov rax, [rbp-24]
    004022f0mov rdi, rax
    004022f3call queue_lock_internal
    004022f8test al, al
    004022faje 0x402303
    004022fcmov eax, -2
    00402301jmp 0x402341
    00402303
    00402303loc_402303:
    00402303mov rax, [rbp-24]
    00402307mov rax, [rax]
    0040230atest rax, rax
    0040230dje 0x40231c
    0040230fmov rax, [rbp-24]
    00402313mov rax, [rax+8]
    00402317test rax, rax
    0040231ajne 0x402322
    0040231c
    0040231cloc_40231c:
    0040231cmov [rbp-1], 1
    00402320jmp 0x402326
    00402322
    00402322loc_402322:
    00402322mov [rbp-1], 0
    00402326
    00402326loc_402326:
    00402326mov rax, [rbp-24]
    0040232amov rdi, rax
    0040232dcall queue_unlock_internal
    00402332test al, al
    00402334je 0x40233d
    00402336mov eax, -2
    0040233bjmp 0x402341
    0040233d
    0040233dloc_40233d:
    0040233dmovzx eax, [rbp-1]
    00402341
    00402341loc_402341:
    00402341leave
    00402342ret
    004022d2
    00402343
    00402343queue_set_new_data:
    00402343push rbp
    00402344mov rbp, rsp
    00402347sub rsp, 16
    0040234bmov [rbp-8], rdi
    0040234fmov eax, esi
    00402351mov [rbp-12], al
    00402354cmp [rbp-8], 0
    00402359jne 0x402362
    0040235bmov eax, -1
    00402360jmp 0x4023cc
    00402362
    00402362loc_402362:
    00402362mov rax, [rbp-8]
    00402366mov rdi, rax
    00402369call queue_lock_internal
    0040236etest al, al
    00402370je 0x402379
    00402372mov eax, -2
    00402377jmp 0x4023cc
    00402379
    00402379loc_402379:
    00402379mov rax, [rbp-8]
    0040237dmovzx edx, [rbp-12]
    00402381mov [rax+20], dl
    00402384mov rax, [rbp-8]
    00402388mov rdi, rax
    0040238bcall queue_unlock_internal
    00402390test al, al
    00402392je 0x40239b
    00402394mov eax, -2
    00402399jmp 0x4023cc
    0040239b
    0040239bloc_40239b:
    0040239bmov rax, [rbp-8]
    0040239fmovzx eax, [rax+20]
    004023a3test al, al
    004023a5jne 0x4023c7
    004023a7mov rax, [rbp-8]
    004023abmov rax, [rax+40]
    004023afmov rdi, rax
    004023b2call pthread_cond_broadcast@plt
    004023b7mov rax, [rbp-8]
    004023bbmov rax, [rax+48]
    004023bfmov rdi, rax
    004023c2call pthread_cond_broadcast@plt
    004023c7
    004023c7loc_4023c7:
    004023c7mov eax, 0
    004023cc
    004023ccloc_4023cc:
    004023ccleave
    004023cdret
    00402343
    004023ce
    004023cequeue_get_new_data:
    004023cepush rbp
    004023cfmov rbp, rsp
    004023d2sub rsp, 32
    004023d6mov [rbp-24], rdi
    004023dacmp [rbp-24], 0
    004023dfjne 0x4023e8
    004023e1mov eax, 0
    004023e6jmp 0x402425
    004023e8
    004023e8loc_4023e8:
    004023e8mov rax, [rbp-24]
    004023ecmov rdi, rax
    004023efcall queue_lock_internal
    004023f4test al, al
    004023f6je 0x4023ff
    004023f8mov eax, 0
    004023fdjmp 0x402425
    004023ff
    004023ffloc_4023ff:
    004023ffmov rax, [rbp-24]
    00402403movzx eax, [rax+20]
    00402407mov [rbp-1], al
    0040240amov rax, [rbp-24]
    0040240emov rdi, rax
    00402411call queue_unlock_internal
    00402416test al, al
    00402418je 0x402421
    0040241amov eax, 0
    0040241fjmp 0x402425
    00402421
    00402421loc_402421:
    00402421movzx eax, [rbp-1]
    00402425
    00402425loc_402425:
    00402425leave
    00402426ret
    004023ce
    00402427
    00402427queue_put:
    00402427push rbp
    00402428mov rbp, rsp
    0040242bsub rsp, 32
    0040242fmov [rbp-24], rdi
    00402433mov [rbp-32], rsi
    00402437cmp [rbp-24], 0
    0040243cjne 0x402445
    0040243emov eax, -1
    00402443jmp 0x402492
    00402445
    00402445loc_402445:
    00402445mov rax, [rbp-24]
    00402449mov rdi, rax
    0040244ccall queue_lock_internal
    00402451test al, al
    00402453je 0x40245c
    00402455mov eax, -2
    0040245ajmp 0x402492
    0040245c
    0040245cloc_40245c:
    0040245cmov rcx, [rbp-32]
    00402460mov rax, [rbp-24]
    00402464mov edx, 0
    00402469mov rsi, rcx
    0040246cmov rdi, rax
    0040246fcall queue_put_internal
    00402474mov [rbp-1], al
    00402477mov rax, [rbp-24]
    0040247bmov rdi, rax
    0040247ecall queue_unlock_internal
    00402483test al, al
    00402485je 0x40248e
    00402487mov eax, -2
    0040248cjmp 0x402492
    0040248e
    0040248eloc_40248e:
    0040248emovzx eax, [rbp-1]
    00402492
    00402492loc_402492:
    00402492leave
    00402493ret
    00402427
    00402494
    00402494queue_put_wait:
    00402494push rbp
    00402495mov rbp, rsp
    00402498sub rsp, 32
    0040249cmov [rbp-24], rdi
    004024a0mov [rbp-32], rsi
    004024a4cmp [rbp-24], 0
    004024a9jne 0x4024b2
    004024abmov eax, -1
    004024b0jmp 0x4024ff
    004024b2
    004024b2loc_4024b2:
    004024b2mov rax, [rbp-24]
    004024b6mov rdi, rax
    004024b9call queue_lock_internal
    004024betest al, al
    004024c0je 0x4024c9
    004024c2mov eax, -2
    004024c7jmp 0x4024ff
    004024c9
    004024c9loc_4024c9:
    004024c9mov rcx, [rbp-32]
    004024cdmov rax, [rbp-24]
    004024d1mov edx, 0x401330
    004024d6mov rsi, rcx
    004024d9mov rdi, rax
    004024dccall queue_put_internal
    004024e1mov [rbp-1], al
    004024e4mov rax, [rbp-24]
    004024e8mov rdi, rax
    004024ebcall queue_unlock_internal
    004024f0test al, al
    004024f2je 0x4024fb
    004024f4mov eax, -2
    004024f9jmp 0x4024ff
    004024fb
    004024fbloc_4024fb:
    004024fbmovzx eax, [rbp-1]
    004024ff
    004024ffloc_4024ff:
    004024ffleave
    00402500ret
    00402494
    00402501
    00402501queue_get:
    00402501push rbp
    00402502mov rbp, rsp
    00402505sub rsp, 32
    00402509mov [rbp-24], rdi
    0040250dmov [rbp-32], rsi
    00402511mov rax, [rbp-32]
    00402515mov [rax], 0
    0040251ccmp [rbp-24], 0
    00402521jne 0x40252a
    00402523mov eax, -1
    00402528jmp 0x40257f
    0040252a
    0040252aloc_40252a:
    0040252amov rax, [rbp-24]
    0040252emov rdi, rax
    00402531call queue_lock_internal
    00402536test al, al
    00402538je 0x402541
    0040253amov eax, -2
    0040253fjmp 0x40257f
    00402541
    00402541loc_402541:
    00402541mov rsi, [rbp-32]
    00402545mov rax, [rbp-24]
    00402549mov r8l, 0
    0040254fmov ecx, 0
    00402554mov edx, 0
    00402559mov rdi, rax
    0040255ccall queue_get_internal
    00402561mov [rbp-1], al
    00402564mov rax, [rbp-24]
    00402568mov rdi, rax
    0040256bcall queue_unlock_internal
    00402570test al, al
    00402572je 0x40257b
    00402574mov eax, -2
    00402579jmp 0x40257f
    0040257b
    0040257bloc_40257b:
    0040257bmovzx eax, [rbp-1]
    0040257f
    0040257floc_40257f:
    0040257fleave
    00402580ret
    00402501
    00402581
    00402581queue_get_wait:
    00402581push rbp
    00402582mov rbp, rsp
    00402585sub rsp, 32
    00402589mov [rbp-24], rdi
    0040258dmov [rbp-32], rsi
    00402591mov rax, [rbp-32]
    00402595mov [rax], 0
    0040259ccmp [rbp-24], 0
    004025a1jne 0x4025aa
    004025a3mov eax, -1
    004025a8jmp 0x4025ff
    004025aa
    004025aaloc_4025aa:
    004025aamov rax, [rbp-24]
    004025aemov rdi, rax
    004025b1call queue_lock_internal
    004025b6test al, al
    004025b8je 0x4025c1
    004025bamov eax, -2
    004025bfjmp 0x4025ff
    004025c1
    004025c1loc_4025c1:
    004025c1mov rsi, [rbp-32]
    004025c5mov rax, [rbp-24]
    004025c9mov r8l, 0
    004025cfmov ecx, 0
    004025d4mov edx, 0x401330
    004025d9mov rdi, rax
    004025dccall queue_get_internal
    004025e1mov [rbp-1], al
    004025e4mov rax, [rbp-24]
    004025e8mov rdi, rax
    004025ebcall queue_unlock_internal
    004025f0test al, al
    004025f2je 0x4025fb
    004025f4mov eax, -2
    004025f9jmp 0x4025ff
    004025fb
    004025fbloc_4025fb:
    004025fbmovzx eax, [rbp-1]
    004025ff
    004025ffloc_4025ff:
    004025ffleave
    00402600ret
    00402581
    00402601
    00402601queue_get_filtered:
    00402601push rbp
    00402602mov rbp, rsp
    00402605sub rsp, 48
    00402609mov [rbp-24], rdi
    0040260dmov [rbp-32], rsi
    00402611mov [rbp-40], rdx
    00402615mov [rbp-48], rcx
    00402619mov rax, [rbp-32]
    0040261dmov [rax], 0
    00402624cmp [rbp-24], 0
    00402629jne 0x402632
    0040262bmov eax, -1
    00402630jmp 0x40268a
    00402632
    00402632loc_402632:
    00402632mov rax, [rbp-24]
    00402636mov rdi, rax
    00402639call queue_lock_internal
    0040263etest al, al
    00402640je 0x402649
    00402642mov eax, -2
    00402647jmp 0x40268a
    00402649
    00402649loc_402649:
    00402649mov rcx, [rbp-48]
    0040264dmov rdx, [rbp-40]
    00402651mov rsi, [rbp-32]
    00402655mov rax, [rbp-24]
    00402659mov r8, rcx
    0040265cmov rcx, rdx
    0040265fmov edx, 0
    00402664mov rdi, rax
    00402667call queue_get_internal
    0040266cmov [rbp-1], al
    0040266fmov rax, [rbp-24]
    00402673mov rdi, rax
    00402676call queue_unlock_internal
    0040267btest al, al
    0040267dje 0x402686
    0040267fmov eax, -2
    00402684jmp 0x40268a
    00402686
    00402686loc_402686:
    00402686movzx eax, [rbp-1]
    0040268a
    0040268aloc_40268a:
    0040268aleave
    0040268bret
    00402601
    0040268c
    0040268cqueue_flush_put:
    0040268cpush rbp
    0040268dmov rbp, rsp
    00402690sub rsp, 48
    00402694mov [rbp-24], rdi
    00402698mov [rbp-32], rsi
    0040269cmov [rbp-40], rdx
    004026a0cmp [rbp-24], 0
    004026a5jne 0x4026ae
    004026a7mov eax, -1
    004026acjmp 0x402714
    004026ae
    004026aeloc_4026ae:
    004026aemov rax, [rbp-24]
    004026b2mov rdi, rax
    004026b5call queue_lock_internal
    004026batest al, al
    004026bcje 0x4026c5
    004026bemov eax, -2
    004026c3jmp 0x402714
    004026c5
    004026c5loc_4026c5:
    004026c5mov rax, [rbp-24]
    004026c9mov edx, 0
    004026cemov esi, 0
    004026d3mov rdi, rax
    004026d6call queue_flush_internal
    004026dbmov [rbp-1], al
    004026demov rcx, [rbp-40]
    004026e2mov rax, [rbp-24]
    004026e6mov edx, 0
    004026ebmov rsi, rcx
    004026eemov rdi, rax
    004026f1call queue_put_internal
    004026f6mov [rbp-1], al
    004026f9mov rax, [rbp-24]
    004026fdmov rdi, rax
    00402700call queue_unlock_internal
    00402705test al, al
    00402707je 0x402710
    00402709mov eax, -2
    0040270ejmp 0x402714
    00402710
    00402710loc_402710:
    00402710movzx eax, [rbp-1]
    00402714
    00402714loc_402714:
    00402714leave
    00402715ret
    0040268c
    00402716
    00402716queue_flush_complete_put:
    00402716push rbp
    00402717mov rbp, rsp
    0040271asub rsp, 48
    0040271emov [rbp-24], rdi
    00402722mov [rbp-32], rsi
    00402726mov [rbp-40], rdx
    0040272acmp [rbp-24], 0
    0040272fjne 0x402738
    00402731mov eax, -1
    00402736jmp 0x40279d
    00402738
    00402738loc_402738:
    00402738mov rax, [rbp-24]
    0040273cmov rdi, rax
    0040273fcall queue_lock_internal
    00402744test al, al
    00402746je 0x40274f
    00402748mov eax, -2
    0040274djmp 0x40279d
    0040274f
    0040274floc_40274f:
    0040274fmov rdx, [rbp-32]
    00402753mov rax, [rbp-24]
    00402757mov esi, 1
    0040275cmov rdi, rax
    0040275fcall queue_flush_internal
    00402764mov [rbp-1], al
    00402767mov rcx, [rbp-40]
    0040276bmov rax, [rbp-24]
    0040276fmov edx, 0
    00402774mov rsi, rcx
    00402777mov rdi, rax
    0040277acall queue_put_internal
    0040277fmov [rbp-1], al
    00402782mov rax, [rbp-24]
    00402786mov rdi, rax
    00402789call queue_unlock_internal
    0040278etest al, al
    00402790je 0x402799
    00402792mov eax, -2
    00402797jmp 0x40279d
    00402799
    00402799loc_402799:
    00402799movzx eax, [rbp-1]
    0040279d
    0040279dloc_40279d:
    0040279dleave
    0040279eret
    00402716
    0040279f
    0040279f // align 0x10
    004027a0
    004027a0KeyExpansion:
    004027a0push rbp
    004027a1mov rbp, rsp
    004027a4mov [rbp-40], rdi
    004027a8mov [rbp-48], rsi
    004027acmov [rbp-4], 0
    004027b3jmp 0x402842
    004027b8
    004027b8loc_4027b8:
    004027b8mov eax, [rbp-4]
    004027bbshl eax, 2
    004027bemov eax, eax
    004027c0add rax, [rbp-40]
    004027c4mov edx, [rbp-4]
    004027c7shl edx, 2
    004027camov edx, edx
    004027ccadd rdx, [rbp-48]
    004027d0movzx edx, [rdx]
    004027d3mov [rax], dl
    004027d5mov eax, [rbp-4]
    004027d8shl eax, 2
    004027dbadd eax, 1
    004027demov eax, eax
    004027e0add rax, [rbp-40]
    004027e4mov edx, [rbp-4]
    004027e7shl edx, 2
    004027eaadd edx, 1
    004027edmov edx, edx
    004027efadd rdx, [rbp-48]
    004027f3movzx edx, [rdx]
    004027f6mov [rax], dl
    004027f8mov eax, [rbp-4]
    004027fbshl eax, 2
    004027feadd eax, 2
    00402801mov eax, eax
    00402803add rax, [rbp-40]
    00402807mov edx, [rbp-4]
    0040280ashl edx, 2
    0040280dadd edx, 2
    00402810mov edx, edx
    00402812add rdx, [rbp-48]
    00402816movzx edx, [rdx]
    00402819mov [rax], dl
    0040281bmov eax, [rbp-4]
    0040281eshl eax, 2
    00402821add eax, 3
    00402824mov eax, eax
    00402826add rax, [rbp-40]
    0040282amov edx, [rbp-4]
    0040282dshl edx, 2
    00402830add edx, 3
    00402833mov edx, edx
    00402835add rdx, [rbp-48]
    00402839movzx edx, [rdx]
    0040283cmov [rax], dl
    0040283eadd [rbp-4], 1
    00402842
    00402842loc_402842:
    00402842cmp [rbp-4], 3
    00402846jbe 0x4027b8
    0040284cmov [rbp-4], 4
    00402853jmp 0x4029db
    00402858
    00402858loc_402858:
    00402858mov eax, [rbp-4]
    0040285badd eax, 0x3fffffff
    00402860shl eax, 2
    00402863mov [rbp-8], eax
    00402866mov eax, [rbp-8]
    00402869add rax, [rbp-40]
    0040286dmovzx eax, [rax]
    00402870mov [rbp-32], al
    00402873mov eax, [rbp-8]
    00402876add eax, 1
    00402879mov eax, eax
    0040287badd rax, [rbp-40]
    0040287fmovzx eax, [rax]
    00402882mov [rbp-31], al
    00402885mov eax, [rbp-8]
    00402888add eax, 2
    0040288bmov eax, eax
    0040288dadd rax, [rbp-40]
    00402891movzx eax, [rax]
    00402894mov [rbp-30], al
    00402897mov eax, [rbp-8]
    0040289aadd eax, 3
    0040289dmov eax, eax
    0040289fadd rax, [rbp-40]
    004028a3movzx eax, [rax]
    004028a6mov [rbp-29], al
    004028a9mov eax, [rbp-4]
    004028acand eax, 3
    004028aftest eax, eax
    004028b1jne 0x40293e
    004028b7movzx eax, [rbp-32]
    004028bbmov [rbp-9], al
    004028bemovzx eax, [rbp-31]
    004028c2mov [rbp-32], al
    004028c5movzx eax, [rbp-30]
    004028c9mov [rbp-31], al
    004028ccmovzx eax, [rbp-29]
    004028d0mov [rbp-30], al
    004028d3movzx eax, [rbp-9]
    004028d7mov [rbp-29], al
    004028damovzx eax, [rbp-32]
    004028demovzx eax, al
    004028e1cdqe
    004028e3movzx eax, [rax+0x40e7e0]
    004028eamov [rbp-32], al
    004028edmovzx eax, [rbp-31]
    004028f1movzx eax, al
    004028f4cdqe
    004028f6movzx eax, [rax+0x40e7e0]
    004028fdmov [rbp-31], al
    00402900movzx eax, [rbp-30]
    00402904movzx eax, al
    00402907cdqe
    00402909movzx eax, [rax+0x40e7e0]
    00402910mov [rbp-30], al
    00402913movzx eax, [rbp-29]
    00402917movzx eax, al
    0040291acdqe
    0040291cmovzx eax, [rax+0x40e7e0]
    00402923mov [rbp-29], al
    00402926movzx edx, [rbp-32]
    0040292amov eax, [rbp-4]
    0040292dshr eax, 2
    00402930mov eax, eax
    00402932movzx eax, [rax+0x40e9e0]
    00402939xor eax, edx
    0040293bmov [rbp-32], al
    0040293e
    0040293eloc_40293e:
    0040293emov eax, [rbp-4]
    00402941shl eax, 2
    00402944mov [rbp-16], eax
    00402947mov eax, [rbp-4]
    0040294aadd eax, 0x3ffffffc
    0040294fshl eax, 2
    00402952mov [rbp-8], eax
    00402955mov eax, [rbp-16]
    00402958add rax, [rbp-40]
    0040295cmov edx, [rbp-8]
    0040295fadd rdx, [rbp-40]
    00402963movzx ecx, [rdx]
    00402966movzx edx, [rbp-32]
    0040296axor edx, ecx
    0040296cmov [rax], dl
    0040296emov eax, [rbp-16]
    00402971add eax, 1
    00402974mov eax, eax
    00402976add rax, [rbp-40]
    0040297amov edx, [rbp-8]
    0040297dadd edx, 1
    00402980mov edx, edx
    00402982add rdx, [rbp-40]
    00402986movzx ecx, [rdx]
    00402989movzx edx, [rbp-31]
    0040298dxor edx, ecx
    0040298fmov [rax], dl
    00402991mov eax, [rbp-16]
    00402994add eax, 2
    00402997mov eax, eax
    00402999add rax, [rbp-40]
    0040299dmov edx, [rbp-8]
    004029a0add edx, 2
    004029a3mov edx, edx
    004029a5add rdx, [rbp-40]
    004029a9movzx ecx, [rdx]
    004029acmovzx edx, [rbp-30]
    004029b0xor edx, ecx
    004029b2mov [rax], dl
    004029b4mov eax, [rbp-16]
    004029b7add eax, 3
    004029bamov eax, eax
    004029bcadd rax, [rbp-40]
    004029c0mov edx, [rbp-8]
    004029c3add edx, 3
    004029c6mov edx, edx
    004029c8add rdx, [rbp-40]
    004029ccmovzx ecx, [rdx]
    004029cfmovzx edx, [rbp-29]
    004029d3xor edx, ecx
    004029d5mov [rax], dl
    004029d7add [rbp-4], 1
    004029db
    004029dbloc_4029db:
    004029dbcmp [rbp-4], 43
    004029dfjbe 0x402858
    004029e5pop rbp
    004029e6ret
    004027a0
    004029e7
    004029e7AES_init_ctx:
    004029e7push rbp
    004029e8mov rbp, rsp
    004029ebsub rsp, 16
    004029efmov [rbp-8], rdi
    004029f3mov [rbp-16], rsi
    004029f7mov rax, [rbp-8]
    004029fbmov rdx, [rbp-16]
    004029ffmov rsi, rdx
    00402a02mov rdi, rax
    00402a05call KeyExpansion
    00402a0aleave
    00402a0bret
    004029e7
    00402a0c
    00402a0cAES_init_ctx_iv:
    00402a0cpush rbp
    00402a0dmov rbp, rsp
    00402a10sub rsp, 24
    00402a14mov [rbp-8], rdi
    00402a18mov [rbp-16], rsi
    00402a1cmov [rbp-24], rdx
    00402a20mov rax, [rbp-8]
    00402a24mov rdx, [rbp-16]
    00402a28mov rsi, rdx
    00402a2bmov rdi, rax
    00402a2ecall KeyExpansion
    00402a33mov rdx, [rbp-24]
    00402a37mov rax, [rbp-8]
    00402a3badd rax, 176
    00402a41mov rcx, [rdx]
    00402a44mov [rax], rcx
    00402a47mov rdx, [rdx+8]
    00402a4bmov [rax+8], rdx
    00402a4fleave
    00402a50ret
    00402a0c
    00402a51
    00402a51AES_ctx_set_iv:
    00402a51push rbp
    00402a52mov rbp, rsp
    00402a55mov [rbp-8], rdi
    00402a59mov [rbp-16], rsi
    00402a5dmov rdx, [rbp-16]
    00402a61mov rax, [rbp-8]
    00402a65add rax, 176
    00402a6bmov rcx, [rdx]
    00402a6emov [rax], rcx
    00402a71mov rdx, [rdx+8]
    00402a75mov [rax+8], rdx
    00402a79pop rbp
    00402a7aret
    00402a51
    00402a7b
    00402a7bAddRoundKey:
    00402a7bpush rbp
    00402a7cmov rbp, rsp
    00402a7fmov eax, edi
    00402a81mov [rbp-32], rsi
    00402a85mov [rbp-40], rdx
    00402a89mov [rbp-20], al
    00402a8cmov [rbp-1], 0
    00402a90jmp 0x402b0b
    00402a92
    00402a92loc_402a92:
    00402a92mov [rbp-2], 0
    00402a96jmp 0x402b01
    00402a98
    00402a98loc_402a98:
    00402a98movzx edi, [rbp-1]
    00402a9cmovzx esi, [rbp-2]
    00402aa0movzx eax, [rbp-1]
    00402aa4movzx ecx, [rbp-2]
    00402aa8mov rdx, [rbp-32]
    00402aacmovsxd rcx, ecx
    00402aafcdqe
    00402ab1shl rax, 2
    00402ab5add rax, rcx
    00402ab8add rax, rdx
    00402abbmovzx edx, [rax]
    00402abemovzx eax, [rbp-20]
    00402ac2lea ecx, [4*rax]
    00402ac9movzx eax, [rbp-1]
    00402acdadd eax, ecx
    00402acflea ecx, [4*rax]
    00402ad6movzx eax, [rbp-2]
    00402adaadd eax, ecx
    00402adccdqe
    00402adeadd rax, [rbp-40]
    00402ae2movzx eax, [rax]
    00402ae5xor edx, eax
    00402ae7mov rcx, [rbp-32]
    00402aebmovsxd rsi, esi
    00402aeemovsxd rax, edi
    00402af1shl rax, 2
    00402af5add rax, rsi
    00402af8add rax, rcx
    00402afbmov [rax], dl
    00402afdadd [rbp-2], 1
    00402b01
    00402b01loc_402b01:
    00402b01cmp [rbp-2], 3
    00402b05jbe 0x402a98
    00402b07add [rbp-1], 1
    00402b0b
    00402b0bloc_402b0b:
    00402b0bcmp [rbp-1], 3
    00402b0fjbe 0x402a92
    00402b11pop rbp
    00402b12ret
    00402a7b
    00402b13
    00402b13SubBytes:
    00402b13push rbp
    00402b14mov rbp, rsp
    00402b17mov [rbp-24], rdi
    00402b1bmov [rbp-1], 0
    00402b1fjmp 0x402b7d
    00402b21
    00402b21loc_402b21:
    00402b21mov [rbp-2], 0
    00402b25jmp 0x402b73
    00402b27
    00402b27loc_402b27:
    00402b27movzx edi, [rbp-2]
    00402b2bmovzx esi, [rbp-1]
    00402b2fmovzx eax, [rbp-2]
    00402b33movzx ecx, [rbp-1]
    00402b37mov rdx, [rbp-24]
    00402b3bmovsxd rcx, ecx
    00402b3ecdqe
    00402b40shl rax, 2
    00402b44add rax, rcx
    00402b47add rax, rdx
    00402b4amovzx eax, [rax]
    00402b4dmovzx eax, al
    00402b50cdqe
    00402b52movzx edx, [rax+0x40e7e0]
    00402b59mov rcx, [rbp-24]
    00402b5dmovsxd rsi, esi
    00402b60movsxd rax, edi
    00402b63shl rax, 2
    00402b67add rax, rsi
    00402b6aadd rax, rcx
    00402b6dmov [rax], dl
    00402b6fadd [rbp-2], 1
    00402b73
    00402b73loc_402b73:
    00402b73cmp [rbp-2], 3
    00402b77jbe 0x402b27
    00402b79add [rbp-1], 1
    00402b7d
    00402b7dloc_402b7d:
    00402b7dcmp [rbp-1], 3
    00402b81jbe 0x402b21
    00402b83pop rbp
    00402b84ret
    00402b13
    00402b85
    00402b85ShiftRows:
    00402b85push rbp
    00402b86mov rbp, rsp
    00402b89mov [rbp-24], rdi
    00402b8dmov rax, [rbp-24]
    00402b91movzx eax, [rax+1]
    00402b95mov [rbp-1], al
    00402b98mov rax, [rbp-24]
    00402b9cmovzx edx, [rax+5]
    00402ba0mov rax, [rbp-24]
    00402ba4mov [rax+1], dl
    00402ba7mov rax, [rbp-24]
    00402babmovzx edx, [rax+9]
    00402bafmov rax, [rbp-24]
    00402bb3mov [rax+5], dl
    00402bb6mov rax, [rbp-24]
    00402bbamovzx edx, [rax+13]
    00402bbemov rax, [rbp-24]
    00402bc2mov [rax+9], dl
    00402bc5mov rax, [rbp-24]
    00402bc9movzx edx, [rbp-1]
    00402bcdmov [rax+13], dl
    00402bd0mov rax, [rbp-24]
    00402bd4movzx eax, [rax+2]
    00402bd8mov [rbp-1], al
    00402bdbmov rax, [rbp-24]
    00402bdfmovzx edx, [rax+10]
    00402be3mov rax, [rbp-24]
    00402be7mov [rax+2], dl
    00402beamov rax, [rbp-24]
    00402beemovzx edx, [rbp-1]
    00402bf2mov [rax+10], dl
    00402bf5mov rax, [rbp-24]
    00402bf9movzx eax, [rax+6]
    00402bfdmov [rbp-1], al
    00402c00mov rax, [rbp-24]
    00402c04movzx edx, [rax+14]
    00402c08mov rax, [rbp-24]
    00402c0cmov [rax+6], dl
    00402c0fmov rax, [rbp-24]
    00402c13movzx edx, [rbp-1]
    00402c17mov [rax+14], dl
    00402c1amov rax, [rbp-24]
    00402c1emovzx eax, [rax+3]
    00402c22mov [rbp-1], al
    00402c25mov rax, [rbp-24]
    00402c29movzx edx, [rax+15]
    00402c2dmov rax, [rbp-24]
    00402c31mov [rax+3], dl
    00402c34mov rax, [rbp-24]
    00402c38movzx edx, [rax+11]
    00402c3cmov rax, [rbp-24]
    00402c40mov [rax+15], dl
    00402c43mov rax, [rbp-24]
    00402c47movzx edx, [rax+7]
    00402c4bmov rax, [rbp-24]
    00402c4fmov [rax+11], dl
    00402c52mov rax, [rbp-24]
    00402c56movzx edx, [rbp-1]
    00402c5amov [rax+7], dl
    00402c5dpop rbp
    00402c5eret
    00402b85