File inc_ransom_e16ac4475e24bbe97e50d7940df71079ea2f1dfd1f2bff6a649c09f7503d087c.elf
Function:
    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
    004036ad
    004036adInvSubBytes:
    004036adpush rbp
    004036aemov rbp, rsp
    004036b1mov [rbp-24], rdi
    004036b5mov [rbp-1], 0
    004036b9jmp 0x403717
    004036bb
    004036bbloc_4036bb:
    004036bbmov [rbp-2], 0
    004036bfjmp 0x40370d
    004036c1
    004036c1loc_4036c1:
    004036c1movzx edi, [rbp-2]
    004036c5movzx esi, [rbp-1]
    004036c9movzx eax, [rbp-2]
    004036cdmovzx ecx, [rbp-1]
    004036d1mov rdx, [rbp-24]
    004036d5movsxd rcx, ecx
    004036d8cdqe
    004036dashl rax, 2
    004036deadd rax, rcx
    004036e1add rax, rdx
    004036e4movzx eax, [rax]
    004036e7movzx eax, al
    004036eacdqe
    004036ecmovzx edx, [rax+0x40e8e0]
    004036f3mov rcx, [rbp-24]
    004036f7movsxd rsi, esi
    004036famovsxd rax, edi
    004036fdshl rax, 2
    00403701add rax, rsi
    00403704add rax, rcx
    00403707mov [rax], dl
    00403709add [rbp-2], 1
    0040370d
    0040370dloc_40370d:
    0040370dcmp [rbp-2], 3
    00403711jbe 0x4036c1
    00403713add [rbp-1], 1
    00403717
    00403717loc_403717:
    00403717cmp [rbp-1], 3
    0040371bjbe 0x4036bb
    0040371dpop rbp
    0040371eret
    004036ad
    0040371f
    0040371fInvShiftRows:
    0040371fpush rbp
    00403720mov rbp, rsp
    00403723mov [rbp-24], rdi
    00403727mov rax, [rbp-24]
    0040372bmovzx eax, [rax+13]
    0040372fmov [rbp-1], al
    00403732mov rax, [rbp-24]
    00403736movzx edx, [rax+9]
    0040373amov rax, [rbp-24]
    0040373emov [rax+13], dl
    00403741mov rax, [rbp-24]
    00403745movzx edx, [rax+5]
    00403749mov rax, [rbp-24]
    0040374dmov [rax+9], dl
    00403750mov rax, [rbp-24]
    00403754movzx edx, [rax+1]
    00403758mov rax, [rbp-24]
    0040375cmov [rax+5], dl
    0040375fmov rax, [rbp-24]
    00403763movzx edx, [rbp-1]
    00403767mov [rax+1], dl
    0040376amov rax, [rbp-24]
    0040376emovzx eax, [rax+2]
    00403772mov [rbp-1], al
    00403775mov rax, [rbp-24]
    00403779movzx edx, [rax+10]
    0040377dmov rax, [rbp-24]
    00403781mov [rax+2], dl
    00403784mov rax, [rbp-24]
    00403788movzx edx, [rbp-1]
    0040378cmov [rax+10], dl
    0040378fmov rax, [rbp-24]
    00403793movzx eax, [rax+6]
    00403797mov [rbp-1], al
    0040379amov rax, [rbp-24]
    0040379emovzx edx, [rax+14]
    004037a2mov rax, [rbp-24]
    004037a6mov [rax+6], dl
    004037a9mov rax, [rbp-24]
    004037admovzx edx, [rbp-1]
    004037b1mov [rax+14], dl
    004037b4mov rax, [rbp-24]
    004037b8movzx eax, [rax+3]
    004037bcmov [rbp-1], al
    004037bfmov rax, [rbp-24]
    004037c3movzx edx, [rax+7]
    004037c7mov rax, [rbp-24]
    004037cbmov [rax+3], dl
    004037cemov rax, [rbp-24]
    004037d2movzx edx, [rax+11]
    004037d6mov rax, [rbp-24]
    004037damov [rax+7], dl
    004037ddmov rax, [rbp-24]
    004037e1movzx edx, [rax+15]
    004037e5mov rax, [rbp-24]
    004037e9mov [rax+11], dl
    004037ecmov rax, [rbp-24]
    004037f0movzx edx, [rbp-1]
    004037f4mov [rax+15], dl
    004037f7pop rbp
    004037f8ret
    0040371f
    004037f9
    004037f9Cipher:
    004037f9push rbp
    004037famov rbp, rsp
    004037fdsub rsp, 32
    00403801mov [rbp-24], rdi
    00403805mov [rbp-32], rsi
    00403809mov [rbp-1], 0
    0040380dmov rdx, [rbp-32]
    00403811mov rax, [rbp-24]
    00403815mov rsi, rax
    00403818mov edi, 0
    0040381dcall AddRoundKey
    00403822mov [rbp-1], 1
    00403826
    00403826loc_403826:
    00403826mov rax, [rbp-24]
    0040382amov rdi, rax
    0040382dcall SubBytes
    00403832mov rax, [rbp-24]
    00403836mov rdi, rax
    00403839call ShiftRows
    0040383ecmp [rbp-1], 10
    00403842je 0x40386c
    00403844mov rax, [rbp-24]
    00403848mov rdi, rax
    0040384bcall MixColumns
    00403850movzx eax, [rbp-1]
    00403854mov rdx, [rbp-32]
    00403858mov rcx, [rbp-24]
    0040385cmov rsi, rcx
    0040385fmov edi, eax
    00403861call AddRoundKey
    00403866add [rbp-1], 1
    0040386ajmp 0x403826
    0040386c
    0040386cloc_40386c:
    0040386cnop
    0040386dmov rdx, [rbp-32]
    00403871mov rax, [rbp-24]
    00403875mov rsi, rax
    00403878mov edi, 10
    0040387dcall AddRoundKey
    00403882leave
    00403883ret
    004037f9
    00403884
    00403884InvCipher:
    00403884push rbp
    00403885mov rbp, rsp
    00403888sub rsp, 32
    0040388cmov [rbp-24], rdi
    00403890mov [rbp-32], rsi
    00403894mov [rbp-1], 0
    00403898mov rdx, [rbp-32]
    0040389cmov rax, [rbp-24]
    004038a0mov rsi, rax
    004038a3mov edi, 10
    004038a8call AddRoundKey
    004038admov [rbp-1], 9
    004038b1
    004038b1loc_4038b1:
    004038b1mov rax, [rbp-24]
    004038b5mov rdi, rax
    004038b8call InvShiftRows
    004038bdmov rax, [rbp-24]
    004038c1mov rdi, rax
    004038c4call InvSubBytes
    004038c9movzx eax, [rbp-1]
    004038cdmov rdx, [rbp-32]
    004038d1mov rcx, [rbp-24]
    004038d5mov rsi, rcx
    004038d8mov edi, eax
    004038dacall AddRoundKey
    004038dfcmp [rbp-1], 0
    004038e3je 0x4038f7
    004038e5mov rax, [rbp-24]
    004038e9mov rdi, rax
    004038eccall InvMixColumns
    004038f1sub [rbp-1], 1
    004038f5jmp 0x4038b1
    004038f7
    004038f7loc_4038f7:
    004038f7nop
    004038f8leave
    004038f9ret
    00403884
    004038fa
    004038faAES_ECB_encrypt:
    004038fapush rbp
    004038fbmov rbp, rsp
    004038fesub rsp, 16
    00403902mov [rbp-8], rdi
    00403906mov [rbp-16], rsi
    0040390amov rdx, [rbp-8]
    0040390emov rax, [rbp-16]
    00403912mov rsi, rdx
    00403915mov rdi, rax
    00403918call Cipher
    0040391dleave
    0040391eret
    004038fa
    0040391f
    0040391fAES_ECB_decrypt:
    0040391fpush rbp
    00403920mov rbp, rsp
    00403923sub rsp, 16
    00403927mov [rbp-8], rdi
    0040392bmov [rbp-16], rsi
    0040392fmov rdx, [rbp-8]
    00403933mov rax, [rbp-16]
    00403937mov rsi, rdx
    0040393amov rdi, rax
    0040393dcall InvCipher
    00403942leave
    00403943ret
    0040391f
    00403944
    00403944XorWithIv:
    00403944push rbp
    00403945mov rbp, rsp
    00403948mov [rbp-24], rdi
    0040394cmov [rbp-32], rsi
    00403950mov [rbp-1], 0
    00403954jmp 0x40397c
    00403956
    00403956loc_403956:
    00403956movzx eax, [rbp-1]
    0040395aadd rax, [rbp-24]
    0040395emovzx edx, [rbp-1]
    00403962add rdx, [rbp-24]
    00403966movzx ecx, [rdx]
    00403969movzx edx, [rbp-1]
    0040396dadd rdx, [rbp-32]
    00403971movzx edx, [rdx]
    00403974xor edx, ecx
    00403976mov [rax], dl
    00403978add [rbp-1], 1
    0040397c
    0040397cloc_40397c:
    0040397ccmp [rbp-1], 15
    00403980jbe 0x403956
    00403982pop rbp
    00403983ret
    00403944
    00403984
    00403984AES_CBC_encrypt_buffer:
    00403984push rbp
    00403985mov rbp, rsp
    00403988sub rsp, 40
    0040398cmov [rbp-24], rdi
    00403990mov [rbp-32], rsi
    00403994mov [rbp-40], rdx
    00403998mov rax, [rbp-24]
    0040399cadd rax, 176
    004039a2mov [rbp-16], rax
    004039a6mov [rbp-8], 0
    004039aejmp 0x4039e8
    004039b0
    004039b0loc_4039b0:
    004039b0mov rdx, [rbp-16]
    004039b4mov rax, [rbp-32]
    004039b8mov rsi, rdx
    004039bbmov rdi, rax
    004039becall XorWithIv
    004039c3mov rdx, [rbp-24]
    004039c7mov rax, [rbp-32]
    004039cbmov rsi, rdx
    004039cemov rdi, rax
    004039d1call Cipher
    004039d6mov rax, [rbp-32]
    004039damov [rbp-16], rax
    004039deadd [rbp-32], 16
    004039e3add [rbp-8], 16
    004039e8
    004039e8loc_4039e8:
    004039e8mov rax, [rbp-8]
    004039eccmp rax, [rbp-40]
    004039f0jb 0x4039b0
    004039f2mov rdx, [rbp-16]
    004039f6mov rax, [rbp-24]
    004039faadd rax, 176
    00403a00mov rcx, [rdx]
    00403a03mov [rax], rcx
    00403a06mov rdx, [rdx+8]
    00403a0amov [rax+8], rdx
    00403a0eleave
    00403a0fret
    00403984
    00403a10
    00403a10AES_CBC_decrypt_buffer:
    00403a10push rbp
    00403a11mov rbp, rsp
    00403a14sub rsp, 56
    00403a18mov [rbp-40], rdi
    00403a1cmov [rbp-48], rsi
    00403a20mov [rbp-56], rdx
    00403a24mov [rbp-8], 0
    00403a2cjmp 0x403a95
    00403a2e
    00403a2eloc_403a2e:
    00403a2emov rax, [rbp-48]
    00403a32mov rdx, [rax]
    00403a35mov [rbp-32], rdx
    00403a39mov rax, [rax+8]
    00403a3dmov [rbp-24], rax
    00403a41mov rdx, [rbp-40]
    00403a45mov rax, [rbp-48]
    00403a49mov rsi, rdx
    00403a4cmov rdi, rax
    00403a4fcall InvCipher
    00403a54mov rax, [rbp-40]
    00403a58lea rdx, [rax+176]
    00403a5fmov rax, [rbp-48]
    00403a63mov rsi, rdx
    00403a66mov rdi, rax
    00403a69call XorWithIv
    00403a6emov rax, [rbp-40]
    00403a72lea rdx, [rax+176]
    00403a79lea rax, [rbp-32]
    00403a7dmov rcx, [rax]
    00403a80mov [rdx], rcx
    00403a83mov rax, [rax+8]
    00403a87mov [rdx+8], rax
    00403a8badd [rbp-48], 16
    00403a90add [rbp-8], 16
    00403a95
    00403a95loc_403a95:
    00403a95mov rax, [rbp-8]
    00403a99cmp rax, [rbp-56]
    00403a9djb 0x403a2e
    00403a9fleave
    00403aa0ret
    00403a10
    00403aa1
    00403aa1AES_CTR_xcrypt_buffer:
    00403aa1push rbp
    00403aa2mov rbp, rsp
    00403aa5sub rsp, 56
    00403aa9mov [rbp-40], rdi
    00403aadmov [rbp-48], rsi
    00403ab1mov [rbp-56], rdx
    00403ab5mov [rbp-8], 0
    00403abdmov [rbp-12], 16
    00403ac4jmp 0x403b98
    00403ac9
    00403ac9loc_403ac9:
    00403ac9cmp [rbp-12], 16
    00403acdjne 0x403b68
    00403ad3mov rax, [rbp-40]
    00403ad7mov rdx, [rax+176]
    00403ademov [rbp-32], rdx
    00403ae2mov rax, [rax+184]
    00403ae9mov [rbp-24], rax
    00403aedmov rdx, [rbp-40]
    00403af1lea rax, [rbp-32]
    00403af5mov rsi, rdx
    00403af8mov rdi, rax
    00403afbcall Cipher
    00403b00mov [rbp-12], 15
    00403b07jmp 0x403b5b
    00403b09
    00403b09loc_403b09:
    00403b09mov rdx, [rbp-40]
    00403b0dmov eax, [rbp-12]
    00403b10cdqe
    00403b12movzx eax, [rdx+rax+176]
    00403b1acmp al, -1
    00403b1cjne 0x403b35
    00403b1emov rdx, [rbp-40]
    00403b22mov eax, [rbp-12]
    00403b25cdqe
    00403b27mov [rdx+rax+176], 0
    00403b2fsub [rbp-12], 1
    00403b33jmp 0x403b5b
    00403b35
    00403b35loc_403b35:
    00403b35mov rdx, [rbp-40]
    00403b39mov eax, [rbp-12]
    00403b3ccdqe
    00403b3emovzx eax, [rdx+rax+176]
    00403b46lea ecx, [rax+1]
    00403b49mov rdx, [rbp-40]
    00403b4dmov eax, [rbp-12]
    00403b50cdqe
    00403b52mov [rdx+rax+176], cl
    00403b59jmp 0x403b61
    00403b5b
    00403b5bloc_403b5b:
    00403b5bcmp [rbp-12], 0
    00403b5fjns 0x403b09
    00403b61
    00403b61loc_403b61:
    00403b61mov [rbp-12], 0
    00403b68
    00403b68loc_403b68:
    00403b68mov rax, [rbp-8]
    00403b6cmov rdx, [rbp-48]
    00403b70add rdx, rax
    00403b73mov rax, [rbp-8]
    00403b77mov rcx, [rbp-48]
    00403b7badd rax, rcx
    00403b7emovzx ecx, [rax]
    00403b81mov eax, [rbp-12]
    00403b84cdqe
    00403b86movzx eax, [rbp+rax-32]
    00403b8bxor eax, ecx
    00403b8dmov [rdx], al
    00403b8fadd [rbp-8], 1
    00403b94add [rbp-12], 1
    00403b98
    00403b98loc_403b98:
    00403b98mov rax, [rbp-8]
    00403b9ccmp rax, [rbp-56]
    00403ba0jb 0x403ac9
    00403ba6leave
    00403ba7ret
    00403aa1
    00403ba8
    00403ba8SHA512_Core_Init:
    00403ba8push rbp
    00403ba9mov rbp, rsp
    00403bacmov [rbp-24], rdi
    00403bb0mov [rbp-4], 0
    00403bb7jmp 0x403bed
    00403bb9
    00403bb9loc_403bb9:
    00403bb9mov rax, [rbp-24]
    00403bbdmov edx, [rbp-4]
    00403bc0movsxd rdx, edx
    00403bc3shl rdx, 4
    00403bc7add rax, rdx
    00403bcamov edx, [rbp-4]
    00403bcdmovsxd rdx, edx
    00403bd0shl rdx, 4
    00403bd4add rdx, 0x40ef00
    00403bdbmov rcx, [rdx]
    00403bdemov [rax], rcx
    00403be1mov rdx, [rdx+8]
    00403be5mov [rax+8], rdx
    00403be9add [rbp-4], 1
    00403bed
    00403bedloc_403bed:
    00403bedcmp [rbp-4], 7
    00403bf1jle 0x403bb9
    00403bf3pop rbp
    00403bf4ret
    00403ba8
    00403bf5
    00403bf5SHA512_Block:
    00403bf5push rbp
    00403bf6mov rbp, rsp
    00403bf9sub rsp, 1464
    00403c00mov [rbp-1576], rdi
    00403c07mov [rbp-1584], rsi
    00403c0emov [rbp-4], 0
    00403c15jmp 0x403c4d
    00403c17
    00403c17loc_403c17:
    00403c17mov eax, [rbp-4]
    00403c1acdqe
    00403c1cshl rax, 4
    00403c20add rax, [rbp-1584]
    00403c27mov edx, [rbp-4]
    00403c2amovsxd rdx, edx
    00403c2dshl rdx, 4
    00403c31add rdx, rbp
    00403c34sub rdx, 1296
    00403c3bmov rcx, [rax]
    00403c3emov [rdx], rcx
    00403c41mov rax, [rax+8]
    00403c45mov [rdx+8], rax
    00403c49add [rbp-4], 1
    00403c4d
    00403c4dloc_403c4d:
    00403c4dcmp [rbp-4], 15
    00403c51jle 0x403c17
    00403c53mov [rbp-4], 16
    00403c5ajmp 0x40417c
    00403c5f
    00403c5floc_403c5f:
    00403c5fmov eax, [rbp-4]
    00403c62sub eax, 2
    00403c65cdqe
    00403c67shl rax, 4
    00403c6badd rax, rbp
    00403c6esub rax, 1288
    00403c74mov rax, [rax]
    00403c77mov edx, eax
    00403c79shr edx, 19
    00403c7cmov eax, [rbp-4]
    00403c7fsub eax, 2
    00403c82cdqe
    00403c84shl rax, 4
    00403c88add rax, rbp
    00403c8bsub rax, 1296
    00403c91mov rax, [rax]
    00403c94shl eax, 13
    00403c97or eax, edx
    00403c99mov eax, eax
    00403c9bmov [rbp-1432], rax
    00403ca2mov eax, [rbp-4]
    00403ca5sub eax, 2
    00403ca8cdqe
    00403caashl rax, 4
    00403caeadd rax, rbp
    00403cb1sub rax, 1296
    00403cb7mov rax, [rax]
    00403cbamov edx, eax
    00403cbcshr edx, 19
    00403cbfmov eax, [rbp-4]
    00403cc2sub eax, 2
    00403cc5cdqe
    00403cc7shl rax, 4
    00403ccbadd rax, rbp
    00403ccesub rax, 1288
    00403cd4mov rax, [rax]
    00403cd7shl eax, 13
    00403cdaor eax, edx
    00403cdcmov eax, eax
    00403cdemov [rbp-1440], rax
    00403ce5mov eax, [rbp-4]
    00403ce8sub eax, 2
    00403cebcdqe
    00403cedshl rax, 4
    00403cf1add rax, rbp
    00403cf4sub rax, 1296
    00403cfamov rax, [rax]
    00403cfdmov edx, eax
    00403cffshr edx, 29
    00403d02mov eax, [rbp-4]
    00403d05sub eax, 2
    00403d08cdqe
    00403d0ashl rax, 4
    00403d0eadd rax, rbp
    00403d11sub rax, 1288
    00403d17mov rax, [rax]
    00403d1ashl eax, 3
    00403d1dor eax, edx
    00403d1fmov eax, eax
    00403d21mov [rbp-1480], rax
    00403d28mov eax, [rbp-4]
    00403d2bsub eax, 2
    00403d2ecdqe
    00403d30shl rax, 4
    00403d34add rax, rbp
    00403d37sub rax, 1288
    00403d3dmov rax, [rax]
    00403d40mov edx, eax
    00403d42shr edx, 29
    00403d45mov eax, [rbp-4]
    00403d48sub eax, 2
    00403d4bcdqe
    00403d4dshl rax, 4
    00403d51add rax, rbp
    00403d54sub rax, 1296
    00403d5amov rax, [rax]
    00403d5dshl eax, 3
    00403d60or eax, edx
    00403d62mov eax, eax
    00403d64mov [rbp-1488], rax
    00403d6bmov rdx, [rbp-1432]
    00403d72mov rax, [rbp-1480]
    00403d79xor rax, rdx
    00403d7cmov [rbp-1432], rax
    00403d83mov rdx, [rbp-1440]
    00403d8amov rax, [rbp-1488]
    00403d91xor rax, rdx
    00403d94mov [rbp-1440], rax
    00403d9bmov eax, [rbp-4]
    00403d9esub eax, 2
    00403da1cdqe
    00403da3shl rax, 4
    00403da7add rax, rbp
    00403daasub rax, 1288
    00403db0mov rax, [rax]
    00403db3mov edx, eax
    00403db5shr edx, 6
    00403db8mov eax, [rbp-4]
    00403dbbsub eax, 2
    00403dbecdqe
    00403dc0shl rax, 4
    00403dc4add rax, rbp
    00403dc7sub rax, 1296
    00403dcdmov rax, [rax]
    00403dd0shl eax, 26
    00403dd3or eax, edx
    00403dd5mov eax, eax
    00403dd7mov [rbp-1480], rax
    00403ddemov eax, [rbp-4]
    00403de1sub eax, 2
    00403de4cdqe
    00403de6shl rax, 4
    00403deaadd rax, rbp
    00403dedsub rax, 1296
    00403df3mov rax, [rax]
    00403df6shr eax, 6
    00403df9mov eax, eax
    00403dfbmov [rbp-1488], rax
    00403e02mov rdx, [rbp-1432]
    00403e09mov rax, [rbp-1480]
    00403e10xor rax, rdx
    00403e13mov [rbp-1432], rax
    00403e1amov rdx, [rbp-1440]
    00403e21mov rax, [rbp-1488]
    00403e28xor rax, rdx
    00403e2bmov [rbp-1440], rax
    00403e32mov eax, [rbp-4]
    00403e35sub eax, 15
    00403e38cdqe
    00403e3ashl rax, 4
    00403e3eadd rax, rbp
    00403e41sub rax, 1288
    00403e47mov rax, [rax]
    00403e4amov edx, eax
    00403e4cshr edx, 1
    00403e4emov eax, [rbp-4]
    00403e51sub eax, 15
    00403e54cdqe
    00403e56shl rax, 4
    00403e5aadd rax, rbp
    00403e5dsub rax, 1296
    00403e63mov rax, [rax]
    00403e66shl eax, 31
    00403e69or eax, edx
    00403e6bmov eax, eax
    00403e6dmov [rbp-1448], rax
    00403e74mov eax, [rbp-4]
    00403e77sub eax, 15
    00403e7acdqe
    00403e7cshl rax, 4
    00403e80add rax, rbp
    00403e83sub rax, 1296
    00403e89mov rax, [rax]
    00403e8cmov edx, eax
    00403e8eshr edx, 1
    00403e90mov eax, [rbp-4]
    00403e93sub eax, 15
    00403e96cdqe
    00403e98shl rax, 4
    00403e9cadd rax, rbp
    00403e9fsub rax, 1288
    00403ea5mov rax, [rax]
    00403ea8shl eax, 31
    00403eabor eax, edx
    00403eadmov eax, eax
    00403eafmov [rbp-1456], rax
    00403eb6mov eax, [rbp-4]
    00403eb9sub eax, 15
    00403ebccdqe
    00403ebeshl rax, 4
    00403ec2add rax, rbp
    00403ec5sub rax, 1288
    00403ecbmov rax, [rax]
    00403ecemov edx, eax
    00403ed0shr edx, 8
    00403ed3mov eax, [rbp-4]
    00403ed6sub eax, 15
    00403ed9cdqe
    00403edbshl rax, 4
    00403edfadd rax, rbp
    00403ee2sub rax, 1296
    00403ee8mov rax, [rax]
    00403eebshl eax, 24
    00403eeeor eax, edx
    00403ef0mov eax, eax
    00403ef2mov [rbp-1480], rax
    00403ef9mov eax, [rbp-4]
    00403efcsub eax, 15
    00403effcdqe
    00403f01shl rax, 4
    00403f05add rax, rbp
    00403f08sub rax, 1296
    00403f0emov rax, [rax]
    00403f11mov edx, eax
    00403f13shr edx, 8
    00403f16mov eax, [rbp-4]
    00403f19sub eax, 15
    00403f1ccdqe
    00403f1eshl rax, 4
    00403f22add rax, rbp
    00403f25sub rax, 1288
    00403f2bmov rax, [rax]
    00403f2eshl eax, 24
    00403f31or eax, edx
    00403f33mov eax, eax
    00403f35mov [rbp-1488], rax
    00403f3cmov rdx, [rbp-1448]
    00403f43mov rax, [rbp-1480]
    00403f4axor rax, rdx
    00403f4dmov [rbp-1448], rax
    00403f54mov rdx, [rbp-1456]
    00403f5bmov rax, [rbp-1488]
    00403f62xor rax, rdx
    00403f65mov [rbp-1456], rax
    00403f6cmov eax, [rbp-4]
    00403f6fsub eax, 15
    00403f72cdqe
    00403f74shl rax, 4
    00403f78add rax, rbp
    00403f7bsub rax, 1288
    00403f81mov rax, [rax]
    00403f84mov edx, eax
    00403f86shr edx, 7
    00403f89mov eax, [rbp-4]
    00403f8csub eax, 15
    00403f8fcdqe
    00403f91shl rax, 4
    00403f95add rax, rbp
    00403f98sub rax, 1296
    00403f9emov rax, [rax]
    00403fa1shl eax, 25
    00403fa4or eax, edx
    00403fa6mov eax, eax
    00403fa8mov [rbp-1480], rax
    00403fafmov eax, [rbp-4]
    00403fb2sub eax, 15
    00403fb5cdqe
    00403fb7shl rax, 4
    00403fbbadd rax, rbp
    00403fbesub rax, 1296
    00403fc4mov rax, [rax]
    00403fc7shr eax, 7
    00403fcamov eax, eax
    00403fccmov [rbp-1488], rax
    00403fd3mov rdx, [rbp-1448]
    00403fdamov rax, [rbp-1480]
    00403fe1xor rax, rdx
    00403fe4mov [rbp-1448], rax
    00403febmov rdx, [rbp-1456]
    00403ff2mov rax, [rbp-1488]
    00403ff9xor rax, rdx
    00403ffcmov [rbp-1456], rax
    00404003mov rdx, [rbp-1448]
    0040400amov rax, [rbp-1432]
    00404011add rax, rdx
    00404014mov [rbp-1464], rax
    0040401bmov rdx, [rbp-1456]
    00404022mov rax, [rbp-1440]
    00404029lea rcx, [rdx+rax]
    0040402dmov rax, [rbp-1464]
    00404034mov edx, eax
    00404036mov rax, [rbp-1448]
    0040403dcmp edx, eax
    0040403fsetb al
    00404042movzx eax, al
    00404045add rax, rcx
    00404048mov [rbp-1472], rax
    0040404fmov eax, [rbp-4]
    00404052sub eax, 7
    00404055cdqe
    00404057shl rax, 4
    0040405badd rax, rbp
    0040405esub rax, 1288
    00404064mov rdx, [rax]
    00404067mov rax, [rbp-1464]
    0040406eadd rax, rdx
    00404071mov [rbp-1432], rax
    00404078mov eax, [rbp-4]
    0040407bsub eax, 7
    0040407ecdqe
    00404080shl rax, 4
    00404084add rax, rbp
    00404087sub rax, 1296
    0040408dmov rdx, [rax]
    00404090mov rax, [rbp-1472]
    00404097lea rcx, [rdx+rax]
    0040409bmov rax, [rbp-1432]
    004040a2mov edx, eax
    004040a4mov eax, [rbp-4]
    004040a7sub eax, 7
    004040aacdqe
    004040acshl rax, 4
    004040b0add rax, rbp
    004040b3sub rax, 1288
    004040b9mov rax, [rax]
    004040bccmp edx, eax
    004040besetb al
    004040c1movzx eax, al
    004040c4add rax, rcx
    004040c7mov [rbp-1440], rax
    004040cemov eax, [rbp-4]
    004040d1sub eax, 16
    004040d4cdqe
    004040d6shl rax, 4
    004040daadd rax, rbp
    004040ddsub rax, 1288
    004040e3mov rdx, [rax]
    004040e6mov rax, [rbp-1432]
    004040edadd rdx, rax
    004040f0mov eax, [rbp-4]
    004040f3cdqe
    004040f5shl rax, 4
    004040f9add rax, rbp
    004040fcsub rax, 1288
    00404102mov [rax], rdx
    00404105mov eax, [rbp-4]
    00404108sub eax, 16
    0040410bcdqe
    0040410dshl rax, 4
    00404111add rax, rbp
    00404114sub rax, 1296
    0040411amov rdx, [rax]
    0040411dmov rax, [rbp-1440]
    00404124lea rcx, [rdx+rax]
    00404128mov eax, [rbp-4]
    0040412bcdqe
    0040412dshl rax, 4
    00404131add rax, rbp
    00404134sub rax, 1288
    0040413amov rax, [rax]
    0040413dmov edx, eax
    0040413fmov eax, [rbp-4]
    00404142sub eax, 16
    00404145cdqe
    00404147shl rax, 4
    0040414badd rax, rbp
    0040414esub rax, 1288
    00404154mov rax, [rax]
    00404157cmp edx, eax
    00404159setb al
    0040415cmovzx eax, al
    0040415flea rdx, [rcx+rax]
    00404163mov eax, [rbp-4]
    00404166cdqe
    00404168shl rax, 4
    0040416cadd rax, rbp
    0040416fsub rax, 1296
    00404175mov [rax], rdx
    00404178add [rbp-4], 1
    0040417c
    0040417cloc_40417c:
    0040417ccmp [rbp-4], 79
    00404180jle 0x403c5f
    00404186mov rax, [rbp-1576]
    0040418dmov rdx, [rax]
    00404190mov [rbp-1312], rdx
    00404197mov rax, [rax+8]
    0040419bmov [rbp-1304], rax
    004041a2mov rax, [rbp-1576]
    004041a9mov rdx, [rax+16]
    004041admov [rbp-1328], rdx
    004041b4mov rax, [rax+24]
    004041b8mov [rbp-1320], rax
    004041bfmov rax, [rbp-1576]
    004041c6mov rdx, [rax+32]
    004041camov [rbp-1344], rdx
    004041d1mov rax, [rax+40]
    004041d5mov [rbp-1336], rax
    004041dcmov rax, [rbp-1576]
    004041e3mov rdx, [rax+48]
    004041e7mov [rbp-1360], rdx
    004041eemov rax, [rax+56]
    004041f2mov [rbp-1352], rax
    004041f9mov rax, [rbp-1576]
    00404200mov rdx, [rax+64]
    00404204mov [rbp-1376], rdx
    0040420bmov rax, [rax+72]
    0040420fmov [rbp-1368], rax
    00404216mov rax, [rbp-1576]
    0040421dmov rdx, [rax+80]
    00404221mov [rbp-1392], rdx
    00404228mov rax, [rax+88]
    0040422cmov [rbp-1384], rax
    00404233mov rax, [rbp-1576]
    0040423amov rdx, [rax+96]
    0040423emov [rbp-1408], rdx
    00404245mov rax, [rax+104]
    00404249mov [rbp-1400], rax
    00404250mov rax, [rbp-1576]
    00404257mov rdx, [rax+112]
    0040425bmov [rbp-1424], rdx
    00404262mov rax, [rax+120]
    00404266mov [rbp-1416], rax
    0040426dmov [rbp-4], 0
    00404274jmp 0x407653
    00404279
    00404279loc_404279:
    00404279mov rax, [rbp-1368]
    00404280mov edx, eax
    00404282shr edx, 14
    00404285mov rax, [rbp-1376]
    0040428cshl eax, 18
    0040428for eax, edx
    00404291mov eax, eax
    00404293mov [rbp-1512], rax
    0040429amov rax, [rbp-1376]
    004042a1mov edx, eax
    004042a3shr edx, 14
    004042a6mov rax, [rbp-1368]
    004042adshl eax, 18
    004042b0or eax, edx
    004042b2mov eax, eax
    004042b4mov [rbp-1520], rax
    004042bbmov rax, [rbp-1368]
    004042c2mov edx, eax
    004042c4shr edx, 18
    004042c7mov rax, [rbp-1376]
    004042ceshl eax, 14
    004042d1or eax, edx
    004042d3mov eax, eax
    004042d5mov [rbp-1496], rax
    004042dcmov rax, [rbp-1376]
    004042e3mov edx, eax
    004042e5shr edx, 18
    004042e8mov rax, [rbp-1368]
    004042efshl eax, 14
    004042f2or eax, edx
    004042f4mov eax, eax
    004042f6mov [rbp-1504], rax
    004042fdmov rdx, [rbp-1512]
    00404304mov rax, [rbp-1496]
    0040430bxor rax, rdx
    0040430emov [rbp-1512], rax
    00404315mov rdx, [rbp-1520]
    0040431cmov rax, [rbp-1504]
    00404323xor rax, rdx
    00404326mov [rbp-1520], rax
    0040432dmov rax, [rbp-1376]
    00404334mov edx, eax
    00404336shr edx, 9
    00404339mov rax, [rbp-1368]
    00404340shl eax, 23
    00404343or eax, edx
    00404345mov eax, eax
    00404347mov [rbp-1496], rax
    0040434emov rax, [rbp-1368]
    00404355mov edx, eax
    00404357shr edx, 9
    0040435amov rax, [rbp-1376]
    00404361shl eax, 23
    00404364or eax, edx
    00404366mov eax, eax
    00404368mov [rbp-1504], rax
    0040436fmov rdx, [rbp-1512]
    00404376mov rax, [rbp-1496]
    0040437dxor rax, rdx
    00404380mov [rbp-1512], rax
    00404387mov rdx, [rbp-1520]
    0040438emov rax, [rbp-1504]
    00404395xor rax, rdx
    00404398mov [rbp-1520], rax
    0040439fmov rax, [rbp-1368]
    004043a6not rax
    004043a9mov [rbp-1496], rax
    004043b0mov rax, [rbp-1376]
    004043b7not rax
    004043bamov [rbp-1504], rax
    004043c1mov rdx, [rbp-1496]
    004043c8mov rax, [rbp-1400]
    004043cfand rax, rdx
    004043d2mov [rbp-1528], rax
    004043d9mov rdx, [rbp-1504]
    004043e0mov rax, [rbp-1408]
    004043e7and rax, rdx
    004043eamov [rbp-1536], rax
    004043f1mov rdx, [rbp-1368]
    004043f8mov rax, [rbp-1384]
    004043ffand rax, rdx
    00404402mov [rbp-1496], rax
    00404409mov rdx, [rbp-1376]
    00404410mov rax, [rbp-1392]
    00404417and rax, rdx
    0040441amov [rbp-1504], rax
    00404421mov rdx, [rbp-1528]
    00404428mov rax, [rbp-1496]
    0040442fxor rax, rdx
    00404432mov [rbp-1528], rax
    00404439mov rdx, [rbp-1536]
    00404440mov rax, [rbp-1504]
    00404447xor rax, rdx
    0040444amov [rbp-1536], rax
    00404451mov rdx, [rbp-1528]
    00404458mov rax, [rbp-1512]
    0040445fadd rax, rdx
    00404462mov [rbp-1544], rax
    00404469mov rdx, [rbp-1536]
    00404470mov rax, [rbp-1520]
    00404477lea rcx, [rdx+rax]
    0040447bmov rax, [rbp-1544]
    00404482mov edx, eax
    00404484mov rax, [rbp-1528]
    0040448bcmp edx, eax
    0040448dsetb al
    00404490movzx eax, al
    00404493add rax, rcx
    00404496mov [rbp-1552], rax
    0040449dmov eax, [rbp-4]
    004044a0cdqe
    004044a2shl rax, 4
    004044a6add rax, 0x40ea00
    004044acmov rdx, [rax+8]
    004044b0mov rax, [rbp-1544]
    004044b7add rax, rdx
    004044bamov [rbp-1512], rax
    004044c1mov eax, [rbp-4]
    004044c4cdqe
    004044c6shl rax, 4
    004044caadd rax, 0x40ea00
    004044d0mov rdx, [rax]
    004044d3mov rax, [rbp-1552]
    004044dalea rcx, [rdx+rax]
    004044demov rax, [rbp-1512]
    004044e5mov edx, eax
    004044e7mov eax, [rbp-4]
    004044eacdqe
    004044ecshl rax, 4
    004044f0add rax, 0x40ea00
    004044f6mov rax, [rax+8]
    004044facmp edx, eax
    004044fcsetb al
    004044ffmovzx eax, al
    00404502add rax, rcx
    00404505mov [rbp-1520], rax
    0040450cmov eax, [rbp-4]
    0040450fcdqe
    00404511shl rax, 4
    00404515add rax, rbp
    00404518sub rax, 1288
    0040451emov rdx, [rax]
    00404521mov rax, [rbp-1512]
    00404528add rax, rdx
    0040452bmov [rbp-1528], rax
    00404532mov eax, [rbp-4]
    00404535cdqe
    00404537shl rax, 4
    0040453badd rax, rbp
    0040453esub rax, 1296
    00404544mov rdx, [rax]
    00404547mov rax, [rbp-1520]
    0040454elea rcx, [rdx+rax]
    00404552mov rax, [rbp-1528]
    00404559mov edx, eax
    0040455bmov eax, [rbp-4]
    0040455ecdqe
    00404560shl rax, 4
    00404564add rax, rbp
    00404567sub rax, 1288
    0040456dmov rax, [rax]
    00404570cmp edx, eax
    00404572setb al
    00404575movzx eax, al
    00404578add rax, rcx
    0040457bmov [rbp-1536], rax
    00404582mov rdx, [rbp-1416]
    00404589mov rax, [rbp-1528]
    00404590add rax, rdx
    00404593mov [rbp-1544], rax
    0040459amov rdx, [rbp-1424]
    004045a1mov rax, [rbp-1536]
    004045a8lea rcx, [rdx+rax]
    004045acmov rax, [rbp-1544]
    004045b3mov edx, eax
    004045b5mov rax, [rbp-1416]
    004045bccmp edx, eax
    004045besetb al
    004045c1movzx eax, al
    004045c4add rax, rcx
    004045c7mov [rbp-1552], rax
    004045cemov rax, [rbp-1304]
    004045d5mov edx, eax
    004045d7shr edx, 28
    004045damov rax, [rbp-1312]
    004045e1shl eax, 4
    004045e4or eax, edx
    004045e6mov eax, eax
    004045e8mov [rbp-1512], rax
    004045efmov rax, [rbp-1312]
    004045f6mov edx, eax
    004045f8shr edx, 28
    004045fbmov rax, [rbp-1304]
    00404602shl eax, 4
    00404605or eax, edx
    00404607mov eax, eax
    00404609mov [rbp-1520], rax
    00404610mov rax, [rbp-1312]
    00404617mov edx, eax
    00404619shr edx, 2
    0040461cmov rax, [rbp-1304]
    00404623shl eax, 30
    00404626or eax, edx
    00404628mov eax, eax
    0040462amov [rbp-1496], rax
    00404631mov rax, [rbp-1304]
    00404638mov edx, eax
    0040463ashr edx, 2
    0040463dmov rax, [rbp-1312]
    00404644shl eax, 30
    00404647or eax, edx
    00404649mov eax, eax
    0040464bmov [rbp-1504], rax
    00404652mov rdx, [rbp-1512]
    00404659mov rax, [rbp-1496]
    00404660xor rax, rdx
    00404663mov [rbp-1512], rax
    0040466amov rdx, [rbp-1520]
    00404671mov rax, [rbp-1504]
    00404678xor rax, rdx
    0040467bmov [rbp-1520], rax
    00404682mov rax, [rbp-1312]
    00404689mov edx, eax
    0040468bshr edx, 7
    0040468emov rax, [rbp-1304]
    00404695shl eax, 25
    00404698or eax, edx
    0040469amov eax, eax
    0040469cmov [rbp-1496], rax
    004046a3mov rax, [rbp-1304]
    004046aamov edx, eax
    004046acshr edx, 7
    004046afmov rax, [rbp-1312]
    004046b6shl eax, 25
    004046b9or eax, edx
    004046bbmov eax, eax
    004046bdmov [rbp-1504], rax
    004046c4mov rdx, [rbp-1512]
    004046cbmov rax, [rbp-1496]
    004046d2xor rax, rdx
    004046d5mov [rbp-1512], rax
    004046dcmov rdx, [rbp-1520]
    004046e3mov rax, [rbp-1504]
    004046eaxor rax, rdx
    004046edmov [rbp-1520], rax
    004046f4mov rdx, [rbp-1304]
    004046fbmov rax, [rbp-1320]
    00404702and rax, rdx
    00404705mov [rbp-1496], rax
    0040470cmov rdx, [rbp-1312]
    00404713mov rax, [rbp-1328]
    0040471aand rax, rdx
    0040471dmov [rbp-1504], rax
    00404724mov rdx, [rbp-1304]
    0040472bmov rax, [rbp-1336]
    00404732and rax, rdx
    00404735mov [rbp-1528], rax
    0040473cmov rdx, [rbp-1312]
    00404743mov rax, [rbp-1344]
    0040474aand rax, rdx
    0040474dmov [rbp-1536], rax
    00404754mov rdx, [rbp-1496]
    0040475bmov rax, [rbp-1528]
    00404762xor rax, rdx
    00404765mov [rbp-1496], rax
    0040476cmov rdx, [rbp-1504]
    00404773mov rax, [rbp-1536]
    0040477axor rax, rdx
    0040477dmov [rbp-1504], rax
    00404784mov rdx, [rbp-1320]
    0040478bmov rax, [rbp-1336]
    00404792and rax, rdx
    00404795mov [rbp-1528], rax
    0040479cmov rdx, [rbp-1328]
    004047a3mov rax, [rbp-1344]
    004047aaand rax, rdx
    004047admov [rbp-1536], rax
    004047b4mov rdx, [rbp-1496]
    004047bbmov rax, [rbp-1528]
    004047c2xor rax, rdx
    004047c5mov [rbp-1496], rax
    004047ccmov rdx, [rbp-1504]
    004047d3mov rax, [rbp-1536]
    004047daxor rax, rdx
    004047ddmov [rbp-1504], rax
    004047e4mov rdx, [rbp-1512]
    004047ebmov rax, [rbp-1496]
    004047f2add rax, rdx
    004047f5mov [rbp-1528], rax
    004047fcmov rdx, [rbp-1520]
    00404803mov rax, [rbp-1504]
    0040480alea rcx, [rdx+rax]
    0040480emov rax, [rbp-1528]
    00404815mov edx, eax
    00404817mov rax, [rbp-1512]
    0040481ecmp edx, eax
    00404820setb al
    00404823movzx eax, al
    00404826add rax, rcx
    00404829mov [rbp-1536], rax
    00404830mov rdx, [rbp-1352]
    00404837mov rax, [rbp-1544]
    0040483eadd rax, rdx
    00404841mov [rbp-1512], rax
    00404848mov rdx, [rbp-1360]
    0040484fmov rax, [rbp-1552]
    00404856lea rcx, [rdx+rax]
    0040485amov rax, [rbp-1512]
    00404861mov edx, eax
    00404863mov rax, [rbp-1352]
    0040486acmp edx, eax
    0040486csetb al
    0040486fmovzx eax, al
    00404872add rax, rcx
    00404875mov [rbp-1520], rax
    0040487cmov rax, [rbp-1520]
    00404883mov [rbp-1360], rax
    0040488amov rax, [rbp-1512]
    00404891mov [rbp-1352], rax
    00404898mov rdx, [rbp-1544]
    0040489fmov rax, [rbp-1528]
    004048a6add rax, rdx
    004048a9mov [rbp-1416], rax
    004048b0mov rdx, [rbp-1552]
    004048b7mov rax, [rbp-1536]
    004048belea rcx, [rdx+rax]
    004048c2mov rax, [rbp-1416]
    004048c9mov edx, eax
    004048cbmov rax, [rbp-1544]
    004048d2cmp edx, eax
    004048d4setb al
    004048d7movzx eax, al
    004048daadd rax, rcx
    004048ddmov [rbp-1424], rax
    004048e4mov rax, [rbp-1352]
    004048ebmov edx, eax
    004048edshr edx, 14
    004048f0mov rax, [rbp-1360]
    004048f7shl eax, 18
    004048faor eax, edx
    004048fcmov eax, eax
    004048femov [rbp-1512], rax
    00404905mov rax, [rbp-1360]
    0040490cmov edx, eax
    0040490eshr edx, 14
    00404911mov rax, [rbp-1352]
    00404918shl eax, 18
    0040491bor eax, edx
    0040491dmov eax, eax
    0040491fmov [rbp-1520], rax
    00404926mov rax, [rbp-1352]
    0040492dmov edx, eax
    0040492fshr edx, 18
    00404932mov rax, [rbp-1360]
    00404939shl eax, 14
    0040493cor eax, edx
    0040493emov eax, eax
    00404940mov [rbp-1496], rax
    00404947mov rax, [rbp-1360]
    0040494emov edx, eax
    00404950shr edx, 18
    00404953mov rax, [rbp-1352]
    0040495ashl eax, 14
    0040495dor eax, edx
    0040495fmov eax, eax
    00404961mov [rbp-1504], rax
    00404968mov rdx, [rbp-1512]
    0040496fmov rax, [rbp-1496]
    00404976xor rax, rdx
    00404979mov [rbp-1512], rax
    00404980mov rdx, [rbp-1520]
    00404987mov rax, [rbp-1504]
    0040498exor rax, rdx
    00404991mov [rbp-1520], rax
    00404998mov rax, [rbp-1360]
    0040499fmov edx, eax
    004049a1shr edx, 9
    004049a4mov rax, [rbp-1352]
    004049abshl eax, 23
    004049aeor eax, edx
    004049b0mov eax, eax
    004049b2mov [rbp-1496], rax
    004049b9mov rax, [rbp-1352]
    004049c0mov edx, eax
    004049c2shr edx, 9
    004049c5mov rax, [rbp-1360]
    004049ccshl eax, 23
    004049cfor eax, edx
    004049d1mov eax, eax
    004049d3mov [rbp-1504], rax
    004049damov rdx, [rbp-1512]
    004049e1mov rax, [rbp-1496]
    004049e8xor rax, rdx
    004049ebmov [rbp-1512], rax
    004049f2mov rdx, [rbp-1520]
    004049f9mov rax, [rbp-1504]
    00404a00xor rax, rdx
    00404a03mov [rbp-1520], rax
    00404a0amov rax, [rbp-1352]
    00404a11not rax
    00404a14mov [rbp-1496], rax
    00404a1bmov rax, [rbp-1360]
    00404a22not rax
    00404a25mov [rbp-1504], rax
    00404a2cmov rdx, [rbp-1496]
    00404a33mov rax, [rbp-1384]
    00404a3aand rax, rdx
    00404a3dmov [rbp-1528], rax
    00404a44mov rdx, [rbp-1504]
    00404a4bmov rax, [rbp-1392]
    00404a52and rax, rdx
    00404a55mov [rbp-1536], rax
    00404a5cmov rdx, [rbp-1352]
    00404a63mov rax, [rbp-1368]
    00404a6aand rax, rdx
    00404a6dmov [rbp-1496], rax
    00404a74mov rdx, [rbp-1360]
    00404a7bmov rax, [rbp-1376]
    00404a82and rax, rdx
    00404a85mov [rbp-1504], rax
    00404a8cmov rdx, [rbp-1528]
    00404a93mov rax, [rbp-1496]
    00404a9axor rax, rdx
    00404a9dmov [rbp-1528], rax
    00404aa4mov rdx, [rbp-1536]
    00404aabmov rax, [rbp-1504]
    00404ab2xor rax, rdx
    00404ab5mov [rbp-1536], rax
    00404abcmov rdx, [rbp-1528]
    00404ac3mov rax, [rbp-1512]
    00404acaadd rax, rdx
    00404acdmov [rbp-1544], rax
    00404ad4mov rdx, [rbp-1536]
    00404adbmov rax, [rbp-1520]
    00404ae2lea rcx, [rdx+rax]
    00404ae6mov rax, [rbp-1544]
    00404aedmov edx, eax
    00404aefmov rax, [rbp-1528]
    00404af6cmp edx, eax
    00404af8setb al
    00404afbmovzx eax, al
    00404afeadd rax, rcx
    00404b01mov [rbp-1552], rax
    00404b08mov eax, [rbp-4]
    00404b0badd eax, 1
    00404b0ecdqe
    00404b10shl rax, 4
    00404b14add rax, 0x40ea00
    00404b1amov rdx, [rax+8]
    00404b1emov rax, [rbp-1544]
    00404b25add rax, rdx
    00404b28mov [rbp-1512], rax
    00404b2fmov eax, [rbp-4]
    00404b32add eax, 1
    00404b35cdqe
    00404b37shl rax, 4
    00404b3badd rax, 0x40ea00
    00404b41mov rdx, [rax]
    00404b44mov rax, [rbp-1552]
    00404b4blea rcx, [rdx+rax]
    00404b4fmov rax, [rbp-1512]
    00404b56mov edx, eax
    00404b58mov eax, [rbp-4]
    00404b5badd eax, 1
    00404b5ecdqe
    00404b60shl rax, 4
    00404b64add rax, 0x40ea00
    00404b6amov rax, [rax+8]
    00404b6ecmp edx, eax
    00404b70setb al
    00404b73movzx eax, al
    00404b76add rax, rcx
    00404b79mov [rbp-1520], rax
    00404b80mov eax, [rbp-4]
    00404b83add eax, 1
    00404b86cdqe
    00404b88shl rax, 4
    00404b8cadd rax, rbp
    00404b8fsub rax, 1288
    00404b95mov rdx, [rax]
    00404b98mov rax, [rbp-1512]
    00404b9fadd rax, rdx
    00404ba2mov [rbp-1528], rax
    00404ba9mov eax, [rbp-4]
    00404bacadd eax, 1
    00404bafcdqe
    00404bb1shl rax, 4
    00404bb5add rax, rbp
    00404bb8sub rax, 1296
    00404bbemov rdx, [rax]
    00404bc1mov rax, [rbp-1520]
    00404bc8lea rcx, [rdx+rax]
    00404bccmov rax, [rbp-1528]
    00404bd3mov edx, eax
    00404bd5mov eax, [rbp-4]
    00404bd8add eax, 1
    00404bdbcdqe
    00404bddshl rax, 4
    00404be1add rax, rbp
    00404be4sub rax, 1288
    00404beamov rax, [rax]
    00404bedcmp edx, eax
    00404befsetb al
    00404bf2movzx eax, al
    00404bf5add rax, rcx
    00404bf8mov [rbp-1536], rax
    00404bffmov rdx, [rbp-1400]
    00404c06mov rax, [rbp-1528]
    00404c0dadd rax, rdx
    00404c10mov [rbp-1544], rax
    00404c17mov rdx, [rbp-1408]
    00404c1emov rax, [rbp-1536]
    00404c25lea rcx, [rdx+rax]
    00404c29mov rax, [rbp-1544]
    00404c30mov edx, eax
    00404c32mov rax, [rbp-1400]
    00404c39cmp edx, eax
    00404c3bsetb al
    00404c3emovzx eax, al
    00404c41add rax, rcx
    00404c44mov [rbp-1552], rax
    00404c4bmov rax, [rbp-1416]
    00404c52mov edx, eax
    00404c54shr edx, 28
    00404c57mov rax, [rbp-1424]
    00404c5eshl eax, 4
    00404c61or eax, edx
    00404c63mov eax, eax
    00404c65mov [rbp-1512], rax
    00404c6cmov rax, [rbp-1424]
    00404c73mov edx, eax
    00404c75shr edx, 28
    00404c78mov rax, [rbp-1416]
    00404c7fshl eax, 4
    00404c82or eax, edx
    00404c84mov eax, eax
    00404c86mov [rbp-1520], rax
    00404c8dmov rax, [rbp-1424]
    00404c94mov edx, eax
    00404c96shr edx, 2
    00404c99mov rax, [rbp-1416]
    00404ca0shl eax, 30
    00404ca3or eax, edx
    00404ca5mov eax, eax
    00404ca7mov [rbp-1496], rax
    00404caemov rax, [rbp-1416]
    00404cb5mov edx, eax
    00404cb7shr edx, 2
    00404cbamov rax, [rbp-1424]
    00404cc1shl eax, 30
    00404cc4or eax, edx
    00404cc6mov eax, eax
    00404cc8mov [rbp-1504], rax
    00404ccfmov rdx, [rbp-1512]
    00404cd6mov rax, [rbp-1496]
    00404cddxor rax, rdx
    00404ce0mov [rbp-1512], rax
    00404ce7mov rdx, [rbp-1520]
    00404ceemov rax, [rbp-1504]
    00404cf5xor rax, rdx
    00404cf8mov [rbp-1520], rax
    00404cffmov rax, [rbp-1424]
    00404d06mov edx, eax
    00404d08shr edx, 7
    00404d0bmov rax, [rbp-1416]
    00404d12shl eax, 25
    00404d15or eax, edx
    00404d17mov eax, eax
    00404d19mov [rbp-1496], rax
    00404d20mov rax, [rbp-1416]
    00404d27mov edx, eax
    00404d29shr edx, 7
    00404d2cmov rax, [rbp-1424]
    00404d33shl eax, 25
    00404d36or eax, edx
    00404d38mov eax, eax
    00404d3amov [rbp-1504], rax
    00404d41mov rdx, [rbp-1512]
    00404d48mov rax, [rbp-1496]
    00404d4fxor rax, rdx
    00404d52mov [rbp-1512], rax
    00404d59mov rdx, [rbp-1520]
    00404d60mov rax, [rbp-1504]
    00404d67xor rax, rdx
    00404d6amov [rbp-1520], rax
    00404d71mov rdx, [rbp-1416]
    00404d78mov rax, [rbp-1304]
    00404d7fand rax, rdx
    00404d82mov [rbp-1496], rax
    00404d89mov rdx, [rbp-1424]
    00404d90mov rax, [rbp-1312]
    00404d97and rax, rdx
    00404d9amov [rbp-1504], rax
    00404da1mov rdx, [rbp-1416]
    00404da8mov rax, [rbp-1320]
    00404dafand rax, rdx
    00404db2mov [rbp-1528], rax
    00404db9mov rdx, [rbp-1424]
    00404dc0mov rax, [rbp-1328]
    00404dc7and rax, rdx
    00404dcamov [rbp-1536], rax
    00404dd1mov rdx, [rbp-1496]
    00404dd8mov rax, [rbp-1528]
    00404ddfxor rax, rdx
    00404de2mov [rbp-1496], rax
    00404de9mov rdx, [rbp-1504]
    00404df0mov rax, [rbp-1536]
    00404df7xor rax, rdx
    00404dfamov [rbp-1504], rax
    00404e01mov rdx, [rbp-1304]
    00404e08mov rax, [rbp-1320]
    00404e0fand rax, rdx
    00404e12mov [rbp-1528], rax
    00404e19mov rdx, [rbp-1312]
    00404e20mov rax, [rbp-1328]
    00404e27and rax, rdx
    00404e2amov [rbp-1536], rax
    00404e31mov rdx, [rbp-1496]
    00404e38mov rax, [rbp-1528]
    00404e3fxor rax, rdx
    00404e42mov [rbp-1496], rax
    00404e49mov rdx, [rbp-1504]
    00404e50mov rax, [rbp-1536]
    00404e57xor rax, rdx
    00404e5amov [rbp-1504], rax
    00404e61mov rdx, [rbp-1512]
    00404e68mov rax, [rbp-1496]
    00404e6fadd rax, rdx
    00404e72mov [rbp-1528], rax
    00404e79mov rdx, [rbp-1520]
    00404e80mov rax, [rbp-1504]
    00404e87lea rcx, [rdx+rax]
    00404e8bmov rax, [rbp-1528]
    00404e92mov edx, eax
    00404e94mov rax, [rbp-1512]
    00404e9bcmp edx, eax
    00404e9dsetb al
    00404ea0movzx eax, al
    00404ea3add rax, rcx
    00404ea6mov [rbp-1536], rax
    00404eadmov rdx, [rbp-1336]
    00404eb4mov rax, [rbp-1544]
    00404ebbadd rax, rdx
    00404ebemov [rbp-1512], rax
    00404ec5mov rdx, [rbp-1344]
    00404eccmov rax, [rbp-1552]
    00404ed3lea rcx, [rdx+rax]
    00404ed7mov rax, [rbp-1512]
    00404edemov edx, eax
    00404ee0mov rax, [rbp-1336]
    00404ee7cmp edx, eax
    00404ee9setb al
    00404eecmovzx eax, al
    00404eefadd rax, rcx
    00404ef2mov [rbp-1520], rax
    00404ef9mov rax, [rbp-1520]
    00404f00mov [rbp-1344], rax
    00404f07mov rax, [rbp-1512]
    00404f0emov [rbp-1336], rax
    00404f15mov rdx, [rbp-1544]
    00404f1cmov rax, [rbp-1528]
    00404f23add rax, rdx
    00404f26mov [rbp-1400], rax
    00404f2dmov rdx, [rbp-1552]
    00404f34mov rax, [rbp-1536]
    00404f3blea rcx, [rdx+rax]
    00404f3fmov rax, [rbp-1400]
    00404f46mov edx, eax
    00404f48mov rax, [rbp-1544]
    00404f4fcmp edx, eax
    00404f51setb al
    00404f54movzx eax, al
    00404f57add rax, rcx
    00404f5amov [rbp-1408], rax
    00404f61mov rax, [rbp-1336]
    00404f68mov edx, eax
    00404f6ashr edx, 14
    00404f6dmov rax, [rbp-1344]
    00404f74shl eax, 18
    00404f77or eax, edx
    00404f79mov eax, eax
    00404f7bmov [rbp-1512], rax
    00404f82mov rax, [rbp-1344]
    00404f89mov edx, eax
    00404f8bshr edx, 14
    00404f8emov rax, [rbp-1336]
    00404f95shl eax, 18
    00404f98or eax, edx
    00404f9amov eax, eax
    00404f9cmov [rbp-1520], rax
    00404fa3mov rax, [rbp-1336]
    00404faamov edx, eax
    00404facshr edx, 18
    00404fafmov rax, [rbp-1344]
    00404fb6shl eax, 14
    00404fb9or eax, edx
    00404fbbmov eax, eax
    00404fbdmov [rbp-1496], rax
    00404fc4mov rax, [rbp-1344]
    00404fcbmov edx, eax
    00404fcdshr edx, 18
    00404fd0mov rax, [rbp-1336]
    00404fd7shl eax, 14
    00404fdaor eax, edx
    00404fdcmov eax, eax
    00404fdemov [rbp-1504], rax
    00404fe5mov rdx, [rbp-1512]
    00404fecmov rax, [rbp-1496]
    00404ff3xor rax, rdx
    00404ff6mov [rbp-1512], rax
    00404ffdmov rdx, [rbp-1520]
    00405004mov rax, [rbp-1504]
    0040500bxor rax, rdx
    0040500emov [rbp-1520], rax
    00405015mov rax, [rbp-1344]
    0040501cmov edx, eax
    0040501eshr edx, 9
    00405021mov rax, [rbp-1336]
    00405028shl eax, 23
    0040502bor eax, edx
    0040502dmov eax, eax
    0040502fmov [rbp-1496], rax
    00405036mov rax, [rbp-1336]
    0040503dmov edx, eax
    0040503fshr edx, 9
    00405042mov rax, [rbp-1344]
    00405049shl eax, 23
    0040504cor eax, edx
    0040504emov eax, eax
    00405050mov [rbp-1504], rax
    00405057mov rdx, [rbp-1512]
    0040505emov rax, [rbp-1496]
    00405065xor rax, rdx
    00405068mov [rbp-1512], rax
    0040506fmov rdx, [rbp-1520]
    00405076mov rax, [rbp-1504]
    0040507dxor rax, rdx
    00405080mov [rbp-1520], rax
    00405087mov rax, [rbp-1336]
    0040508enot rax
    00405091mov [rbp-1496], rax
    00405098mov rax, [rbp-1344]
    0040509fnot rax
    004050a2mov [rbp-1504], rax
    004050a9mov rdx, [rbp-1496]
    004050b0mov rax, [rbp-1368]
    004050b7and rax, rdx
    004050bamov [rbp-1528], rax
    004050c1mov rdx, [rbp-1504]
    004050c8mov rax, [rbp-1376]
    004050cfand rax, rdx
    004050d2mov [rbp-1536], rax
    004050d9mov rdx, [rbp-1336]
    004050e0mov rax, [rbp-1352]
    004050e7and rax, rdx
    004050eamov [rbp-1496], rax
    004050f1mov rdx, [rbp-1344]
    004050f8mov rax, [rbp-1360]
    004050ffand rax, rdx
    00405102mov [rbp-1504], rax
    00405109mov rdx, [rbp-1528]
    00405110mov rax, [rbp-1496]
    00405117xor rax, rdx
    0040511amov [rbp-1528], rax
    00405121mov rdx, [rbp-1536]
    00405128mov rax, [rbp-1504]
    0040512fxor rax, rdx
    00405132mov [rbp-1536], rax
    00405139mov rdx, [rbp-1528]
    00405140mov rax, [rbp-1512]
    00405147add rax, rdx
    0040514amov [rbp-1544], rax
    00405151mov rdx, [rbp-1536]
    00405158mov rax, [rbp-1520]
    0040515flea rcx, [rdx+rax]
    00405163mov rax, [rbp-1544]
    0040516amov edx, eax
    0040516cmov rax, [rbp-1528]
    00405173cmp edx, eax
    00405175setb al
    00405178movzx eax, al
    0040517badd rax, rcx
    0040517emov [rbp-1552], rax
    00405185mov eax, [rbp-4]
    00405188add eax, 2
    0040518bcdqe
    0040518dshl rax, 4
    00405191add rax, 0x40ea00
    00405197mov rdx, [rax+8]
    0040519bmov rax, [rbp-1544]
    004051a2add rax, rdx
    004051a5mov [rbp-1512], rax
    004051acmov eax, [rbp-4]
    004051afadd eax, 2
    004051b2cdqe
    004051b4shl rax, 4
    004051b8add rax, 0x40ea00
    004051bemov rdx, [rax]
    004051c1mov rax, [rbp-1552]
    004051c8lea rcx, [rdx+rax]
    004051ccmov rax, [rbp-1512]
    004051d3mov edx, eax
    004051d5mov eax, [rbp-4]
    004051d8add eax, 2
    004051dbcdqe
    004051ddshl rax, 4
    004051e1add rax, 0x40ea00
    004051e7mov rax, [rax+8]
    004051ebcmp edx, eax
    004051edsetb al
    004051f0movzx eax, al
    004051f3add rax, rcx
    004051f6mov [rbp-1520], rax
    004051fdmov eax, [rbp-4]
    00405200add eax, 2
    00405203cdqe
    00405205shl rax, 4
    00405209add rax, rbp
    0040520csub rax, 1288
    00405212mov rdx, [rax]
    00405215mov rax, [rbp-1512]
    0040521cadd rax, rdx
    0040521fmov [rbp-1528], rax
    00405226mov eax, [rbp-4]
    00405229add eax, 2
    0040522ccdqe
    0040522eshl rax, 4
    00405232add rax, rbp
    00405235sub rax, 1296
    0040523bmov rdx, [rax]
    0040523emov rax, [rbp-1520]
    00405245lea rcx, [rdx+rax]
    00405249mov rax, [rbp-1528]
    00405250mov edx, eax
    00405252mov eax, [rbp-4]
    00405255add eax, 2
    00405258cdqe
    0040525ashl rax, 4
    0040525eadd rax, rbp
    00405261sub rax, 1288
    00405267mov rax, [rax]
    0040526acmp edx, eax
    0040526csetb al
    0040526fmovzx eax, al
    00405272add rax, rcx
    00405275mov [rbp-1536], rax
    0040527cmov rdx, [rbp-1384]
    00405283mov rax, [rbp-1528]
    0040528aadd rax, rdx
    0040528dmov [rbp-1544], rax
    00405294mov rdx, [rbp-1392]
    0040529bmov rax, [rbp-1536]
    004052a2lea rcx, [rdx+rax]
    004052a6mov rax, [rbp-1544]
    004052admov edx, eax
    004052afmov rax, [rbp-1384]
    004052b6cmp edx, eax
    004052b8setb al
    004052bbmovzx eax, al
    004052beadd rax, rcx
    004052c1mov [rbp-1552], rax
    004052c8mov rax, [rbp-1400]
    004052cfmov edx, eax
    004052d1shr edx, 28
    004052d4mov rax, [rbp-1408]
    004052dbshl eax, 4
    004052deor eax, edx
    004052e0mov eax, eax
    004052e2mov [rbp-1512], rax
    004052e9mov rax, [rbp-1408]
    004052f0mov edx, eax
    004052f2shr edx, 28
    004052f5mov rax, [rbp-1400]
    004052fcshl eax, 4
    004052ffor eax, edx
    00405301mov eax, eax
    00405303mov [rbp-1520], rax
    0040530amov rax, [rbp-1408]
    00405311mov edx, eax
    00405313shr edx, 2
    00405316mov rax, [rbp-1400]
    0040531dshl eax, 30
    00405320or eax, edx
    00405322mov eax, eax
    00405324mov [rbp-1496], rax
    0040532bmov rax, [rbp-1400]
    00405332mov edx, eax
    00405334shr edx, 2
    00405337mov rax, [rbp-1408]
    0040533eshl eax, 30
    00405341or eax, edx
    00405343mov eax, eax
    00405345mov [rbp-1504], rax
    0040534cmov rdx, [rbp-1512]
    00405353mov rax, [rbp-1496]
    0040535axor rax, rdx
    0040535dmov [rbp-1512], rax
    00405364mov rdx, [rbp-1520]
    0040536bmov rax, [rbp-1504]
    00405372xor rax, rdx
    00405375mov [rbp-1520], rax
    0040537cmov rax, [rbp-1408]
    00405383mov edx, eax
    00405385shr edx, 7
    00405388mov rax, [rbp-1400]
    0040538fshl eax, 25
    00405392or eax, edx
    00405394mov eax, eax
    00405396mov [rbp-1496], rax
    0040539dmov rax, [rbp-1400]
    004053a4mov edx, eax
    004053a6shr edx, 7
    004053a9mov rax, [rbp-1408]
    004053b0shl eax, 25
    004053b3or eax, edx
    004053b5mov eax, eax
    004053b7mov [rbp-1504], rax
    004053bemov rdx, [rbp-1512]
    004053c5mov rax, [rbp-1496]
    004053ccxor rax, rdx
    004053cfmov [rbp-1512], rax
    004053d6mov rdx, [rbp-1520]
    004053ddmov rax, [rbp-1504]
    004053e4xor rax, rdx
    004053e7mov [rbp-1520], rax
    004053eemov rdx, [rbp-1400]
    004053f5mov rax, [rbp-1416]
    004053fcand rax, rdx
    004053ffmov [rbp-1496], rax
    00405406mov rdx, [rbp-1408]
    0040540dmov rax, [rbp-1424]
    00405414and rax, rdx
    00405417mov [rbp-1504], rax
    0040541emov rdx, [rbp-1400]
    00405425mov rax, [rbp-1304]
    0040542cand rax, rdx
    0040542fmov [rbp-1528], rax
    00405436mov rdx, [rbp-1408]
    0040543dmov rax, [rbp-1312]
    00405444and rax, rdx
    00405447mov [rbp-1536], rax
    0040544emov rdx, [rbp-1496]
    00405455mov rax, [rbp-1528]
    0040545cxor rax, rdx
    0040545fmov [rbp-1496], rax
    00405466mov rdx, [rbp-1504]
    0040546dmov rax, [rbp-1536]
    00405474xor rax, rdx
    00405477mov [rbp-1504], rax
    0040547emov rdx, [rbp-1416]
    00405485mov rax, [rbp-1304]
    0040548cand rax, rdx
    0040548fmov [rbp-1528], rax
    00405496mov rdx, [rbp-1424]
    0040549dmov rax, [rbp-1312]
    004054a4and rax, rdx
    004054a7mov [rbp-1536], rax
    004054aemov rdx, [rbp-1496]
    004054b5mov rax, [rbp-1528]
    004054bcxor rax, rdx
    004054bfmov [rbp-1496], rax
    004054c6mov rdx, [rbp-1504]
    004054cdmov rax, [rbp-1536]
    004054d4xor rax, rdx
    004054d7mov [rbp-1504], rax
    004054demov rdx, [rbp-1512]
    004054e5mov rax, [rbp-1496]
    004054ecadd rax, rdx
    004054efmov [rbp-1528], rax
    004054f6mov rdx, [rbp-1520]
    004054fdmov rax, [rbp-1504]
    00405504lea rcx, [rdx+rax]
    00405508mov rax, [rbp-1528]
    0040550fmov edx, eax
    00405511mov rax, [rbp-1512]
    00405518cmp edx, eax
    0040551asetb al
    0040551dmovzx eax, al
    00405520add rax, rcx
    00405523mov [rbp-1536], rax
    0040552amov rdx, [rbp-1320]
    00405531mov rax, [rbp-1544]
    00405538add rax, rdx
    0040553bmov [rbp-1512], rax
    00405542mov rdx, [rbp-1328]
    00405549mov rax, [rbp-1552]
    00405550lea rcx, [rdx+rax]
    00405554mov rax, [rbp-1512]
    0040555bmov edx, eax
    0040555dmov rax, [rbp-1320]
    00405564cmp edx, eax
    00405566setb al
    00405569movzx eax, al
    0040556cadd rax, rcx
    0040556fmov [rbp-1520], rax
    00405576mov rax, [rbp-1520]
    0040557dmov [rbp-1328], rax
    00405584mov rax, [rbp-1512]
    0040558bmov [rbp-1320], rax
    00405592mov rdx, [rbp-1544]
    00405599mov rax, [rbp-1528]
    004055a0add rax, rdx
    004055a3mov [rbp-1384], rax
    004055aamov rdx, [rbp-1552]
    004055b1mov rax, [rbp-1536]
    004055b8lea rcx, [rdx+rax]
    004055bcmov rax, [rbp-1384]
    004055c3mov edx, eax
    004055c5mov rax, [rbp-1544]
    004055cccmp edx, eax
    004055cesetb al
    004055d1movzx eax, al
    004055d4add rax, rcx
    004055d7mov [rbp-1392], rax
    004055demov rax, [rbp-1320]
    004055e5mov edx, eax
    004055e7shr edx, 14
    004055eamov rax, [rbp-1328]
    004055f1shl eax, 18
    004055f4or eax, edx
    004055f6mov eax, eax
    004055f8mov [rbp-1512], rax
    004055ffmov rax, [rbp-1328]
    00405606mov edx, eax
    00405608shr edx, 14
    0040560bmov rax, [rbp-1320]
    00405612shl eax, 18
    00405615or eax, edx
    00405617mov eax, eax
    00405619mov [rbp-1520], rax
    00405620mov rax, [rbp-1320]
    00405627mov edx, eax
    00405629shr edx, 18
    0040562cmov rax, [rbp-1328]
    00405633shl eax, 14
    00405636or eax, edx
    00405638mov eax, eax
    0040563amov [rbp-1496], rax
    00405641mov rax, [rbp-1328]
    00405648mov edx, eax
    0040564ashr edx, 18
    0040564dmov rax, [rbp-1320]
    00405654shl eax, 14
    00405657or eax, edx
    00405659mov eax, eax
    0040565bmov [rbp-1504], rax
    00405662mov rdx, [rbp-1512]
    00405669mov rax, [rbp-1496]
    00405670xor rax, rdx
    00405673mov [rbp-1512], rax
    0040567amov rdx, [rbp-1520]
    00405681mov rax, [rbp-1504]
    00405688xor rax, rdx
    0040568bmov [rbp-1520], rax
    00405692mov rax, [rbp-1328]
    00405699mov edx, eax
    0040569bshr edx, 9
    0040569emov rax, [rbp-1320]
    004056a5shl eax, 23
    004056a8or eax, edx
    004056aamov eax, eax
    004056acmov [rbp-1496], rax
    004056b3mov rax, [rbp-1320]
    004056bamov edx, eax
    004056bcshr edx, 9
    004056bfmov rax, [rbp-1328]
    004056c6shl eax, 23
    004056c9or eax, edx
    004056cbmov eax, eax
    004056cdmov [rbp-1504], rax
    004056d4mov rdx, [rbp-1512]
    004056dbmov rax, [rbp-1496]
    004056e2xor rax, rdx
    004056e5mov [rbp-1512], rax
    004056ecmov rdx, [rbp-1520]
    004056f3mov rax, [rbp-1504]
    004056faxor rax, rdx
    004056fdmov [rbp-1520], rax
    00405704mov rax, [rbp-1320]
    0040570bnot rax
    0040570emov [rbp-1496], rax
    00405715mov rax, [rbp-1328]
    0040571cnot rax
    0040571fmov [rbp-1504], rax
    00405726mov rdx, [rbp-1496]
    0040572dmov rax, [rbp-1352]
    00405734and rax, rdx
    00405737mov [rbp-1528], rax
    0040573emov rdx, [rbp-1504]
    00405745mov rax, [rbp-1360]
    0040574cand rax, rdx
    0040574fmov [rbp-1536], rax
    00405756mov rdx, [rbp-1320]
    0040575dmov rax, [rbp-1336]
    00405764and rax, rdx
    00405767mov [rbp-1496], rax
    0040576emov rdx, [rbp-1328]
    00405775mov rax, [rbp-1344]
    0040577cand rax, rdx
    0040577fmov [rbp-1504], rax
    00405786mov rdx, [rbp-1528]
    0040578dmov rax, [rbp-1496]
    00405794xor rax, rdx
    00405797mov [rbp-1528], rax
    0040579emov rdx, [rbp-1536]
    004057a5mov rax, [rbp-1504]
    004057acxor rax, rdx
    004057afmov [rbp-1536], rax
    004057b6mov rdx, [rbp-1528]
    004057bdmov rax, [rbp-1512]
    004057c4add rax, rdx
    004057c7mov [rbp-1544], rax
    004057cemov rdx, [rbp-1536]
    004057d5mov rax, [rbp-1520]
    004057dclea rcx, [rdx+rax]
    004057e0mov rax, [rbp-1544]
    004057e7mov edx, eax
    004057e9mov rax, [rbp-1528]
    004057f0cmp edx, eax
    004057f2setb al
    004057f5movzx eax, al
    004057f8add rax, rcx
    004057fbmov [rbp-1552], rax
    00405802mov eax, [rbp-4]
    00405805add eax, 3
    00405808cdqe
    0040580ashl rax, 4
    0040580eadd rax, 0x40ea00
    00405814mov rdx, [rax+8]
    00405818mov rax, [rbp-1544]
    0040581fadd rax, rdx
    00405822mov [rbp-1512], rax
    00405829mov eax, [rbp-4]
    0040582cadd eax, 3
    0040582fcdqe
    00405831shl rax, 4
    00405835add rax, 0x40ea00
    0040583bmov rdx, [rax]
    0040583emov rax, [rbp-1552]
    00405845lea rcx, [rdx+rax]
    00405849mov rax, [rbp-1512]
    00405850mov edx, eax
    00405852mov eax, [rbp-4]
    00405855add eax, 3
    00405858cdqe
    0040585ashl rax, 4
    0040585eadd rax, 0x40ea00
    00405864mov rax, [rax+8]
    00405868cmp edx, eax
    0040586asetb al
    0040586dmovzx eax, al
    00405870add rax, rcx
    00405873mov [rbp-1520], rax
    0040587amov eax, [rbp-4]
    0040587dadd eax, 3
    00405880cdqe
    00405882shl rax, 4
    00405886add rax, rbp
    00405889sub rax, 1288
    0040588fmov rdx, [rax]
    00405892mov rax, [rbp-1512]
    00405899add rax, rdx
    0040589cmov [rbp-1528], rax
    004058a3mov eax, [rbp-4]
    004058a6add eax, 3
    004058a9cdqe
    004058abshl rax, 4
    004058afadd rax, rbp
    004058b2sub rax, 1296
    004058b8mov rdx, [rax]
    004058bbmov rax, [rbp-1520]
    004058c2lea rcx, [rdx+rax]
    004058c6mov rax, [rbp-1528]
    004058cdmov edx, eax
    004058cfmov eax, [rbp-4]
    004058d2add eax, 3
    004058d5cdqe
    004058d7shl rax, 4
    004058dbadd rax, rbp
    004058desub rax, 1288
    004058e4mov rax, [rax]
    004058e7cmp edx, eax
    004058e9setb al
    004058ecmovzx eax, al
    004058efadd rax, rcx
    004058f2mov [rbp-1536], rax
    004058f9mov rdx, [rbp-1368]
    00405900mov rax, [rbp-1528]
    00405907add rax, rdx
    0040590amov [rbp-1544], rax
    00405911mov rdx, [rbp-1376]
    00405918mov rax, [rbp-1536]
    0040591flea rcx, [rdx+rax]
    00405923mov rax, [rbp-1544]
    0040592amov edx, eax
    0040592cmov rax, [rbp-1368]
    00405933cmp edx, eax
    00405935setb al
    00405938movzx eax, al
    0040593badd rax, rcx
    0040593emov [rbp-1552], rax
    00405945mov rax, [rbp-1384]
    0040594cmov edx, eax
    0040594eshr edx, 28
    00405951mov rax, [rbp-1392]
    00405958shl eax, 4
    0040595bor eax, edx
    0040595dmov eax, eax
    0040595fmov [rbp-1512], rax
    00405966mov rax, [rbp-1392]
    0040596dmov edx, eax
    0040596fshr edx, 28
    00405972mov rax, [rbp-1384]
    00405979shl eax, 4
    0040597cor eax, edx
    0040597emov eax, eax
    00405980mov [rbp-1520], rax
    00405987mov rax, [rbp-1392]
    0040598emov edx, eax
    00405990shr edx, 2
    00405993mov rax, [rbp-1384]
    0040599ashl eax, 30
    0040599dor eax, edx
    0040599fmov eax, eax
    004059a1mov [rbp-1496], rax
    004059a8mov rax, [rbp-1384]
    004059afmov edx, eax
    004059b1shr edx, 2
    004059b4mov rax, [rbp-1392]
    004059bbshl eax, 30
    004059beor eax, edx
    004059c0mov eax, eax
    004059c2mov [rbp-1504], rax
    004059c9mov rdx, [rbp-1512]
    004059d0mov rax, [rbp-1496]
    004059d7xor rax, rdx
    004059damov [rbp-1512], rax
    004059e1mov rdx, [rbp-1520]
    004059e8mov rax, [rbp-1504]
    004059efxor rax, rdx
    004059f2mov [rbp-1520], rax
    004059f9mov rax, [rbp-1392]
    00405a00mov edx, eax
    00405a02shr edx, 7
    00405a05mov rax, [rbp-1384]
    00405a0cshl eax, 25
    00405a0for eax, edx
    00405a11mov eax, eax
    00405a13mov [rbp-1496], rax
    00405a1amov rax, [rbp-1384]
    00405a21mov edx, eax
    00405a23shr edx, 7
    00405a26mov rax, [rbp-1392]
    00405a2dshl eax, 25
    00405a30or eax, edx
    00405a32mov eax, eax
    00405a34mov [rbp-1504], rax
    00405a3bmov rdx, [rbp-1512]
    00405a42mov rax, [rbp-1496]
    00405a49xor rax, rdx
    00405a4cmov [rbp-1512], rax
    00405a53mov rdx, [rbp-1520]
    00405a5amov rax, [rbp-1504]
    00405a61xor rax, rdx
    00405a64mov [rbp-1520], rax
    00405a6bmov rdx, [rbp-1384]
    00405a72mov rax, [rbp-1400]
    00405a79and rax, rdx
    00405a7cmov [rbp-1496], rax
    00405a83mov rdx, [rbp-1392]
    00405a8amov rax, [rbp-1408]
    00405a91and rax, rdx
    00405a94mov [rbp-1504], rax
    00405a9bmov rdx, [rbp-1384]
    00405aa2mov rax, [rbp-1416]
    00405aa9and rax, rdx
    00405aacmov [rbp-1528], rax
    00405ab3mov rdx, [rbp-1392]
    00405abamov rax, [rbp-1424]
    00405ac1and rax, rdx
    00405ac4mov [rbp-1536], rax
    00405acbmov rdx, [rbp-1496]
    00405ad2mov rax, [rbp-1528]
    00405ad9xor rax, rdx
    00405adcmov [rbp-1496], rax
    00405ae3mov rdx, [rbp-1504]
    00405aeamov rax, [rbp-1536]
    00405af1xor rax, rdx
    00405af4mov [rbp-1504], rax
    00405afbmov rdx, [rbp-1400]
    00405b02mov rax, [rbp-1416]
    00405b09and rax, rdx
    00405b0cmov [rbp-1528], rax
    00405b13mov rdx, [rbp-1408]
    00405b1amov rax, [rbp-1424]
    00405b21and rax, rdx
    00405b24mov [rbp-1536], rax
    00405b2bmov rdx, [rbp-1496]
    00405b32mov rax, [rbp-1528]
    00405b39xor rax, rdx
    00405b3cmov [rbp-1496], rax
    00405b43mov rdx, [rbp-1504]
    00405b4amov rax, [rbp-1536]
    00405b51xor rax, rdx
    00405b54mov [rbp-1504], rax
    00405b5bmov rdx, [rbp-1512]
    00405b62mov rax, [rbp-1496]
    00405b69add rax, rdx
    00405b6cmov [rbp-1528], rax
    00405b73mov rdx, [rbp-1520]
    00405b7amov rax, [rbp-1504]
    00405b81lea rcx, [rdx+rax]
    00405b85mov rax, [rbp-1528]
    00405b8cmov edx, eax
    00405b8emov rax, [rbp-1512]
    00405b95cmp edx, eax
    00405b97setb al
    00405b9amovzx eax, al
    00405b9dadd rax, rcx
    00405ba0mov [rbp-1536], rax
    00405ba7mov rdx, [rbp-1304]
    00405baemov rax, [rbp-1544]
    00405bb5add rax, rdx
    00405bb8mov [rbp-1512], rax
    00405bbfmov rdx, [rbp-1312]
    00405bc6mov rax, [rbp-1552]
    00405bcdlea rcx, [rdx+rax]
    00405bd1mov rax, [rbp-1512]
    00405bd8mov edx, eax
    00405bdamov rax, [rbp-1304]
    00405be1cmp edx, eax
    00405be3setb al
    00405be6movzx eax, al
    00405be9add rax, rcx
    00405becmov [rbp-1520], rax
    00405bf3mov rax, [rbp-1520]
    00405bfamov [rbp-1312], rax
    00405c01mov rax, [rbp-1512]
    00405c08mov [rbp-1304], rax
    00405c0fmov rdx, [rbp-1544]
    00405c16mov rax, [rbp-1528]
    00405c1dadd rax, rdx
    00405c20mov [rbp-1368], rax
    00405c27mov rdx, [rbp-1552]
    00405c2emov rax, [rbp-1536]
    00405c35lea rcx, [rdx+rax]
    00405c39mov rax, [rbp-1368]
    00405c40mov edx, eax
    00405c42mov rax, [rbp-1544]
    00405c49cmp edx, eax
    00405c4bsetb al
    00405c4emovzx eax, al
    00405c51add rax, rcx
    00405c54mov [rbp-1376], rax
    00405c5bmov rax, [rbp-1304]
    00405c62mov edx, eax
    00405c64shr edx, 14
    00405c67mov rax, [rbp-1312]
    00405c6eshl eax, 18
    00405c71or eax, edx
    00405c73mov eax, eax
    00405c75mov [rbp-1512], rax
    00405c7cmov rax, [rbp-1312]
    00405c83mov edx, eax
    00405c85shr edx, 14
    00405c88mov rax, [rbp-1304]
    00405c8fshl eax, 18
    00405c92or eax, edx
    00405c94mov eax, eax
    00405c96mov [rbp-1520], rax
    00405c9dmov rax, [rbp-1304]
    00405ca4mov edx, eax
    00405ca6shr edx, 18
    00405ca9mov rax, [rbp-1312]
    00405cb0shl eax, 14
    00405cb3or eax, edx
    00405cb5mov eax, eax
    00405cb7mov [rbp-1496], rax
    00405cbemov rax, [rbp-1312]
    00405cc5mov edx, eax
    00405cc7shr edx, 18
    00405ccamov rax, [rbp-1304]
    00405cd1shl eax, 14
    00405cd4or eax, edx
    00405cd6mov eax, eax
    00405cd8mov [rbp-1504], rax
    00405cdfmov rdx, [rbp-1512]
    00405ce6mov rax, [rbp-1496]
    00405cedxor rax, rdx
    00405cf0mov [rbp-1512], rax
    00405cf7mov rdx, [rbp-1520]
    00405cfemov rax, [rbp-1504]
    00405d05xor rax, rdx
    00405d08mov [rbp-1520], rax
    00405d0fmov rax, [rbp-1312]
    00405d16mov edx, eax
    00405d18shr edx, 9
    00405d1bmov rax, [rbp-1304]
    00405d22shl eax, 23
    00405d25or eax, edx
    00405d27mov eax, eax
    00405d29mov [rbp-1496], rax
    00405d30mov rax, [rbp-1304]
    00405d37mov edx, eax
    00405d39shr edx, 9
    00405d3cmov rax, [rbp-1312]
    00405d43shl eax, 23
    00405d46or eax, edx
    00405d48mov eax, eax
    00405d4amov [rbp-1504], rax
    00405d51mov rdx, [rbp-1512]
    00405d58mov rax, [rbp-1496]
    00405d5fxor rax, rdx
    00405d62mov [rbp-1512], rax
    00405d69mov rdx, [rbp-1520]
    00405d70mov rax, [rbp-1504]
    00405d77xor rax, rdx
    00405d7amov [rbp-1520], rax
    00405d81mov rax, [rbp-1304]
    00405d88not rax
    00405d8bmov [rbp-1496], rax
    00405d92mov rax, [rbp-1312]
    00405d99not rax
    00405d9cmov [rbp-1504], rax
    00405da3mov rdx, [rbp-1496]
    00405daamov rax, [rbp-1336]
    00405db1and rax, rdx
    00405db4mov [rbp-1528], rax
    00405dbbmov rdx, [rbp-1504]
    00405dc2mov rax, [rbp-1344]
    00405dc9and rax, rdx
    00405dccmov [rbp-1536], rax
    00405dd3mov rdx, [rbp-1304]
    00405ddamov rax, [rbp-1320]
    00405de1and rax, rdx
    00405de4mov [rbp-1496], rax
    00405debmov rdx, [rbp-1312]
    00405df2mov rax, [rbp-1328]
    00405df9and rax, rdx
    00405dfcmov [rbp-1504], rax
    00405e03mov rdx, [rbp-1528]
    00405e0amov rax, [rbp-1496]
    00405e11xor rax, rdx
    00405e14mov [rbp-1528], rax
    00405e1bmov rdx, [rbp-1536]
    00405e22mov rax, [rbp-1504]
    00405e29xor rax, rdx
    00405e2cmov [rbp-1536], rax
    00405e33mov rdx, [rbp-1528]
    00405e3amov rax, [rbp-1512]
    00405e41add rax, rdx
    00405e44mov [rbp-1544], rax
    00405e4bmov rdx, [rbp-1536]
    00405e52mov rax, [rbp-1520]
    00405e59lea rcx, [rdx+rax]
    00405e5dmov rax, [rbp-1544]
    00405e64mov edx, eax
    00405e66mov rax, [rbp-1528]
    00405e6dcmp edx, eax
    00405e6fsetb al
    00405e72movzx eax, al
    00405e75add rax, rcx
    00405e78mov [rbp-1552], rax
    00405e7fmov eax, [rbp-4]
    00405e82add eax, 4
    00405e85cdqe
    00405e87shl rax, 4
    00405e8badd rax, 0x40ea00
    00405e91mov rdx, [rax+8]
    00405e95mov rax, [rbp-1544]
    00405e9cadd rax, rdx
    00405e9fmov [rbp-1512], rax
    00405ea6mov eax, [rbp-4]
    00405ea9add eax, 4
    00405eaccdqe
    00405eaeshl rax, 4
    00405eb2add rax, 0x40ea00
    00405eb8mov rdx, [rax]
    00405ebbmov rax, [rbp-1552]
    00405ec2lea rcx, [rdx+rax]
    00405ec6mov rax, [rbp-1512]
    00405ecdmov edx, eax
    00405ecfmov eax, [rbp-4]
    00405ed2add eax, 4
    00405ed5cdqe
    00405ed7shl rax, 4
    00405edbadd rax, 0x40ea00
    00405ee1mov rax, [rax+8]
    00405ee5cmp edx, eax
    00405ee7setb al
    00405eeamovzx eax, al
    00405eedadd rax, rcx
    00405ef0mov [rbp-1520], rax
    00405ef7mov eax, [rbp-4]
    00405efaadd eax, 4
    00405efdcdqe
    00405effshl rax, 4
    00405f03add rax, rbp
    00405f06sub rax, 1288
    00405f0cmov rdx, [rax]
    00405f0fmov rax, [rbp-1512]
    00405f16add rax, rdx
    00405f19mov [rbp-1528], rax
    00405f20mov eax, [rbp-4]
    00405f23add eax, 4
    00405f26cdqe
    00405f28shl rax, 4
    00405f2cadd rax, rbp
    00405f2fsub rax, 1296
    00405f35mov rdx, [rax]
    00405f38mov rax, [rbp-1520]
    00405f3flea rcx, [rdx+rax]
    00405f43mov rax, [rbp-1528]
    00405f4amov edx, eax
    00405f4cmov eax, [rbp-4]
    00405f4fadd eax, 4
    00405f52cdqe
    00405f54shl rax, 4
    00405f58add rax, rbp
    00405f5bsub rax, 1288
    00405f61mov rax, [rax]
    00405f64cmp edx, eax
    00405f66setb al
    00405f69movzx eax, al
    00405f6cadd rax, rcx
    00405f6fmov [rbp-1536], rax
    00405f76mov rdx, [rbp-1352]
    00405f7dmov rax, [rbp-1528]
    00405f84add rax, rdx
    00405f87mov [rbp-1544], rax
    00405f8emov rdx, [rbp-1360]
    00405f95mov rax, [rbp-1536]
    00405f9clea rcx, [rdx+rax]
    00405fa0mov rax, [rbp-1544]
    00405fa7mov edx, eax
    00405fa9mov rax, [rbp-1352]
    00405fb0cmp edx, eax
    00405fb2setb al
    00405fb5movzx eax, al
    00405fb8add rax, rcx
    00405fbbmov [rbp-1552], rax
    00405fc2mov rax, [rbp-1368]
    00405fc9mov edx, eax
    00405fcbshr edx, 28
    00405fcemov rax, [rbp-1376]
    00405fd5shl eax, 4
    00405fd8or eax, edx
    00405fdamov eax, eax
    00405fdcmov [rbp-1512], rax
    00405fe3mov rax, [rbp-1376]
    00405feamov edx, eax
    00405fecshr edx, 28
    00405fefmov rax, [rbp-1368]
    00405ff6shl eax, 4
    00405ff9or eax, edx
    00405ffbmov eax, eax
    00405ffdmov [rbp-1520], rax
    00406004mov rax, [rbp-1376]
    0040600bmov edx, eax
    0040600dshr edx, 2
    00406010mov rax, [rbp-1368]
    00406017shl eax, 30
    0040601aor eax, edx
    0040601cmov eax, eax
    0040601emov [rbp-1496], rax
    00406025mov rax, [rbp-1368]
    0040602cmov edx, eax
    0040602eshr edx, 2
    00406031mov rax, [rbp-1376]
    00406038shl eax, 30
    0040603bor eax, edx
    0040603dmov eax, eax
    0040603fmov [rbp-1504], rax
    00406046mov rdx, [rbp-1512]
    0040604dmov rax, [rbp-1496]
    00406054xor rax, rdx
    00406057mov [rbp-1512], rax
    0040605emov rdx, [rbp-1520]
    00406065mov rax, [rbp-1504]
    0040606cxor rax, rdx
    0040606fmov [rbp-1520], rax
    00406076mov rax, [rbp-1376]
    0040607dmov edx, eax
    0040607fshr edx, 7
    00406082mov rax, [rbp-1368]
    00406089shl eax, 25
    0040608cor eax, edx
    0040608emov eax, eax
    00406090mov [rbp-1496], rax
    00406097mov rax, [rbp-1368]
    0040609emov edx, eax
    004060a0shr edx, 7
    004060a3mov rax, [rbp-1376]
    004060aashl eax, 25
    004060ador eax, edx
    004060afmov eax, eax
    004060b1mov [rbp-1504], rax
    004060b8mov rdx, [rbp-1512]
    004060bfmov rax, [rbp-1496]
    004060c6xor rax, rdx
    004060c9mov [rbp-1512], rax
    004060d0mov rdx, [rbp-1520]
    004060d7mov rax, [rbp-1504]
    004060dexor rax, rdx
    004060e1mov [rbp-1520], rax
    004060e8mov rdx, [rbp-1368]
    004060efmov rax, [rbp-1384]
    004060f6and rax, rdx
    004060f9mov [rbp-1496], rax
    00406100mov rdx, [rbp-1376]
    00406107mov rax, [rbp-1392]
    0040610eand rax, rdx
    00406111mov [rbp-1504], rax
    00406118mov rdx, [rbp-1368]
    0040611fmov rax, [rbp-1400]
    00406126and rax, rdx
    00406129mov [rbp-1528], rax
    00406130mov rdx, [rbp-1376]
    00406137mov rax, [rbp-1408]
    0040613eand rax, rdx
    00406141mov [rbp-1536], rax
    00406148mov rdx, [rbp-1496]
    0040614fmov rax, [rbp-1528]
    00406156xor rax, rdx
    00406159mov [rbp-1496], rax
    00406160mov rdx, [rbp-1504]
    00406167mov rax, [rbp-1536]
    0040616exor rax, rdx
    00406171mov [rbp-1504], rax
    00406178mov rdx, [rbp-1384]
    0040617fmov rax, [rbp-1400]
    00406186and rax, rdx
    00406189mov [rbp-1528], rax
    00406190mov rdx, [rbp-1392]
    00406197mov rax, [rbp-1408]
    0040619eand rax, rdx
    004061a1mov [rbp-1536], rax
    004061a8mov rdx, [rbp-1496]
    004061afmov rax, [rbp-1528]
    004061b6xor rax, rdx
    004061b9mov [rbp-1496], rax
    004061c0mov rdx, [rbp-1504]
    004061c7mov rax, [rbp-1536]
    004061cexor rax, rdx
    004061d1mov [rbp-1504], rax
    004061d8mov rdx, [rbp-1512]
    004061dfmov rax, [rbp-1496]
    004061e6add rax, rdx
    004061e9mov [rbp-1528], rax
    004061f0mov rdx, [rbp-1520]
    004061f7mov rax, [rbp-1504]
    004061felea rcx, [rdx+rax]
    00406202mov rax, [rbp-1528]
    00406209mov edx, eax
    0040620bmov rax, [rbp-1512]
    00406212cmp edx, eax
    00406214setb al
    00406217movzx eax, al
    0040621aadd rax, rcx
    0040621dmov [rbp-1536], rax
    00406224mov rdx, [rbp-1416]
    0040622bmov rax, [rbp-1544]
    00406232add rax, rdx
    00406235mov [rbp-1512], rax
    0040623cmov rdx, [rbp-1424]
    00406243mov rax, [rbp-1552]
    0040624alea rcx, [rdx+rax]
    0040624emov rax, [rbp-1512]
    00406255mov edx, eax
    00406257mov rax, [rbp-1416]
    0040625ecmp edx, eax
    00406260setb al
    00406263movzx eax, al
    00406266add rax, rcx
    00406269mov [rbp-1520], rax
    00406270mov rax, [rbp-1520]
    00406277mov [rbp-1424], rax
    0040627emov rax, [rbp-1512]
    00406285mov [rbp-1416], rax
    0040628cmov rdx, [rbp-1544]
    00406293mov rax, [rbp-1528]
    0040629aadd rax, rdx
    0040629dmov [rbp-1352], rax
    004062a4mov rdx, [rbp-1552]
    004062abmov rax, [rbp-1536]
    004062b2lea rcx, [rdx+rax]
    004062b6mov rax, [rbp-1352]
    004062bdmov edx, eax
    004062bfmov rax, [rbp-1544]
    004062c6cmp edx, eax
    004062c8setb al
    004062cbmovzx eax, al
    004062ceadd rax, rcx
    004062d1mov [rbp-1360], rax
    004062d8mov rax, [rbp-1416]
    004062dfmov edx, eax
    004062e1shr edx, 14
    004062e4mov rax, [rbp-1424]
    004062ebshl eax, 18
    004062eeor eax, edx
    004062f0mov eax, eax
    004062f2mov [rbp-1512], rax
    004062f9mov rax, [rbp-1424]
    00406300mov edx, eax
    00406302shr edx, 14
    00406305mov rax, [rbp-1416]
    0040630cshl eax, 18
    0040630for eax, edx
    00406311mov eax, eax
    00406313mov [rbp-1520], rax
    0040631amov rax, [rbp-1416]
    00406321mov edx, eax
    00406323shr edx, 18
    00406326mov rax, [rbp-1424]
    0040632dshl eax, 14
    00406330or eax, edx
    00406332mov eax, eax
    00406334mov [rbp-1496], rax
    0040633bmov rax, [rbp-1424]
    00406342mov edx, eax
    00406344shr edx, 18
    00406347mov rax, [rbp-1416]
    0040634eshl eax, 14
    00406351or eax, edx
    00406353mov eax, eax
    00406355mov [rbp-1504], rax
    0040635cmov rdx, [rbp-1512]
    00406363mov rax, [rbp-1496]
    0040636axor rax, rdx
    0040636dmov [rbp-1512], rax
    00406374mov rdx, [rbp-1520]
    0040637bmov rax, [rbp-1504]
    00406382xor rax, rdx
    00406385mov [rbp-1520], rax
    0040638cmov rax, [rbp-1424]
    00406393mov edx, eax
    00406395shr edx, 9
    00406398mov rax, [rbp-1416]
    0040639fshl eax, 23
    004063a2or eax, edx
    004063a4mov eax, eax
    004063a6mov [rbp-1496], rax
    004063admov rax, [rbp-1416]
    004063b4mov edx, eax
    004063b6shr edx, 9
    004063b9mov rax, [rbp-1424]
    004063c0shl eax, 23
    004063c3or eax, edx
    004063c5mov eax, eax
    004063c7mov [rbp-1504], rax
    004063cemov rdx, [rbp-1512]
    004063d5mov rax, [rbp-1496]
    004063dcxor rax, rdx
    004063dfmov [rbp-1512], rax
    004063e6mov rdx, [rbp-1520]
    004063edmov rax, [rbp-1504]
    004063f4xor rax, rdx
    004063f7mov [rbp-1520], rax
    004063femov rax, [rbp-1416]
    00406405not rax
    00406408mov [rbp-1496], rax
    0040640fmov rax, [rbp-1424]
    00406416not rax
    00406419mov [rbp-1504], rax
    00406420mov rdx, [rbp-1496]
    00406427mov rax, [rbp-1320]
    0040642eand rax, rdx
    00406431mov [rbp-1528], rax
    00406438mov rdx, [rbp-1504]
    0040643fmov rax, [rbp-1328]
    00406446and rax, rdx
    00406449mov [rbp-1536], rax
    00406450mov rdx, [rbp-1416]
    00406457mov rax, [rbp-1304]
    0040645eand rax, rdx
    00406461mov [rbp-1496], rax
    00406468mov rdx, [rbp-1424]
    0040646fmov rax, [rbp-1312]
    00406476and rax, rdx
    00406479mov [rbp-1504], rax
    00406480mov rdx, [rbp-1528]
    00406487mov rax, [rbp-1496]
    0040648exor rax, rdx
    00406491mov [rbp-1528], rax
    00406498mov rdx, [rbp-1536]
    0040649fmov rax, [rbp-1504]
    004064a6xor rax, rdx
    004064a9mov [rbp-1536], rax
    004064b0mov rdx, [rbp-1528]
    004064b7mov rax, [rbp-1512]
    004064beadd rax, rdx
    004064c1mov [rbp-1544], rax
    004064c8mov rdx, [rbp-1536]
    004064cfmov rax, [rbp-1520]
    004064d6lea rcx, [rdx+rax]
    004064damov rax, [rbp-1544]
    004064e1mov edx, eax
    004064e3mov rax, [rbp-1528]
    004064eacmp edx, eax
    004064ecsetb al
    004064efmovzx eax, al
    004064f2add rax, rcx
    004064f5mov [rbp-1552], rax
    004064fcmov eax, [rbp-4]
    004064ffadd eax, 5
    00406502cdqe
    00406504shl rax, 4
    00406508add rax, 0x40ea00
    0040650emov rdx, [rax+8]
    00406512mov rax, [rbp-1544]
    00406519add rax, rdx
    0040651cmov [rbp-1512], rax
    00406523mov eax, [rbp-4]
    00406526add eax, 5
    00406529cdqe
    0040652bshl rax, 4
    0040652fadd rax, 0x40ea00
    00406535mov rdx, [rax]
    00406538mov rax, [rbp-1552]
    0040653flea rcx, [rdx+rax]
    00406543mov rax, [rbp-1512]
    0040654amov edx, eax
    0040654cmov eax, [rbp-4]
    0040654fadd eax, 5
    00406552cdqe
    00406554shl rax, 4
    00406558add rax, 0x40ea00
    0040655emov rax, [rax+8]
    00406562cmp edx, eax
    00406564setb al
    00406567movzx eax, al
    0040656aadd rax, rcx
    0040656dmov [rbp-1520], rax
    00406574mov eax, [rbp-4]
    00406577add eax, 5
    0040657acdqe
    0040657cshl rax, 4
    00406580add rax, rbp
    00406583sub rax, 1288
    00406589mov rdx, [rax]
    0040658cmov rax, [rbp-1512]
    00406593add rax, rdx
    00406596mov [rbp-1528], rax
    0040659dmov eax, [rbp-4]
    004065a0add eax, 5
    004065a3cdqe
    004065a5shl rax, 4
    004065a9add rax, rbp
    004065acsub rax, 1296
    004065b2mov rdx, [rax]
    004065b5mov rax, [rbp-1520]
    004065bclea rcx, [rdx+rax]
    004065c0mov rax, [rbp-1528]
    004065c7mov edx, eax
    004065c9mov eax, [rbp-4]
    004065ccadd eax, 5
    004065cfcdqe
    004065d1shl rax, 4
    004065d5add rax, rbp
    004065d8sub rax, 1288
    004065demov rax, [rax]
    004065e1cmp edx, eax
    004065e3setb al
    004065e6movzx eax, al
    004065e9add rax, rcx
    004065ecmov [rbp-1536], rax
    004065f3mov rdx, [rbp-1336]
    004065famov rax, [rbp-1528]
    00406601add rax, rdx
    00406604mov [rbp-1544], rax
    0040660bmov rdx, [rbp-1344]
    00406612mov rax, [rbp-1536]
    00406619lea rcx, [rdx+rax]
    0040661dmov rax, [rbp-1544]
    00406624mov edx, eax
    00406626mov rax, [rbp-1336]
    0040662dcmp edx, eax
    0040662fsetb al
    00406632movzx eax, al
    00406635add rax, rcx
    00406638mov [rbp-1552], rax
    0040663fmov rax, [rbp-1352]
    00406646mov edx, eax
    00406648shr edx, 28
    0040664bmov rax, [rbp-1360]
    00406652shl eax, 4
    00406655or eax, edx
    00406657mov eax, eax
    00406659mov [rbp-1512], rax
    00406660mov rax, [rbp-1360]
    00406667mov edx, eax
    00406669shr edx, 28
    0040666cmov rax, [rbp-1352]
    00406673shl eax, 4
    00406676or eax, edx
    00406678mov eax, eax
    0040667amov [rbp-1520], rax
    00406681mov rax, [rbp-1360]
    00406688mov edx, eax
    0040668ashr edx, 2
    0040668dmov rax, [rbp-1352]
    00406694shl eax, 30
    00406697or eax, edx
    00406699mov eax, eax
    0040669bmov [rbp-1496], rax
    004066a2mov rax, [rbp-1352]
    004066a9mov edx, eax
    004066abshr edx, 2
    004066aemov rax, [rbp-1360]
    004066b5shl eax, 30
    004066b8or eax, edx
    004066bamov eax, eax
    004066bcmov [rbp-1504], rax
    004066c3mov rdx, [rbp-1512]
    004066camov rax, [rbp-1496]
    004066d1xor rax, rdx
    004066d4mov [rbp-1512], rax
    004066dbmov rdx, [rbp-1520]
    004066e2mov rax, [rbp-1504]
    004066e9xor rax, rdx
    004066ecmov [rbp-1520], rax
    004066f3mov rax, [rbp-1360]
    004066famov edx, eax
    004066fcshr edx, 7
    004066ffmov rax, [rbp-1352]
    00406706shl eax, 25
    00406709or eax, edx
    0040670bmov eax, eax
    0040670dmov [rbp-1496], rax
    00406714mov rax, [rbp-1352]
    0040671bmov edx, eax
    0040671dshr edx, 7
    00406720mov rax, [rbp-1360]
    00406727shl eax, 25
    0040672aor eax, edx
    0040672cmov eax, eax
    0040672emov [rbp-1504], rax
    00406735mov rdx, [rbp-1512]
    0040673cmov rax, [rbp-1496]
    00406743xor rax, rdx
    00406746mov [rbp-1512], rax
    0040674dmov rdx, [rbp-1520]
    00406754mov rax, [rbp-1504]
    0040675bxor rax, rdx
    0040675emov [rbp-1520], rax
    00406765mov rdx, [rbp-1352]
    0040676cmov rax, [rbp-1368]
    00406773and rax, rdx
    00406776mov [rbp-1496], rax
    0040677dmov rdx, [rbp-1360]
    00406784mov rax, [rbp-1376]
    0040678band rax, rdx
    0040678emov [rbp-1504], rax
    00406795mov rdx, [rbp-1352]
    0040679cmov rax, [rbp-1384]
    004067a3and rax, rdx
    004067a6mov [rbp-1528], rax
    004067admov rdx, [rbp-1360]
    004067b4mov rax, [rbp-1392]
    004067bband rax, rdx
    004067bemov [rbp-1536], rax
    004067c5mov rdx, [rbp-1496]
    004067ccmov rax, [rbp-1528]
    004067d3xor rax, rdx
    004067d6mov [rbp-1496], rax
    004067ddmov rdx, [rbp-1504]
    004067e4mov rax, [rbp-1536]
    004067ebxor rax, rdx
    004067eemov [rbp-1504], rax
    004067f5mov rdx, [rbp-1368]
    004067fcmov rax, [rbp-1384]
    00406803and rax, rdx
    00406806mov [rbp-1528], rax
    0040680dmov rdx, [rbp-1376]
    00406814mov rax, [rbp-1392]
    0040681band rax, rdx
    0040681emov [rbp-1536], rax
    00406825mov rdx, [rbp-1496]
    0040682cmov rax, [rbp-1528]
    00406833xor rax, rdx
    00406836mov [rbp-1496], rax
    0040683dmov rdx, [rbp-1504]
    00406844mov rax, [rbp-1536]
    0040684bxor rax, rdx
    0040684emov [rbp-1504], rax
    00406855mov rdx, [rbp-1512]
    0040685cmov rax, [rbp-1496]
    00406863add rax, rdx
    00406866mov [rbp-1528], rax
    0040686dmov rdx, [rbp-1520]
    00406874mov rax, [rbp-1504]
    0040687blea rcx, [rdx+rax]
    0040687fmov rax, [rbp-1528]
    00406886mov edx, eax
    00406888mov rax, [rbp-1512]
    0040688fcmp edx, eax
    00406891setb al
    00406894movzx eax, al
    00406897add rax, rcx
    0040689amov [rbp-1536], rax
    004068a1mov rdx, [rbp-1400]
    004068a8mov rax, [rbp-1544]
    004068afadd rax, rdx
    004068b2mov [rbp-1512], rax
    004068b9mov rdx, [rbp-1408]
    004068c0mov rax, [rbp-1552]
    004068c7lea rcx, [rdx+rax]
    004068cbmov rax, [rbp-1512]
    004068d2mov edx, eax
    004068d4mov rax, [rbp-1400]
    004068dbcmp edx, eax
    004068ddsetb al
    004068e0movzx eax, al
    004068e3add rax, rcx
    004068e6mov [rbp-1520], rax
    004068edmov rax, [rbp-1520]
    004068f4mov [rbp-1408], rax
    004068fbmov rax, [rbp-1512]
    00406902mov [rbp-1400], rax
    00406909mov rdx, [rbp-1544]
    00406910mov rax, [rbp-1528]
    00406917add rax, rdx
    0040691amov [rbp-1336], rax
    00406921mov rdx, [rbp-1552]
    00406928mov rax, [rbp-1536]
    0040692flea rcx, [rdx+rax]
    00406933mov rax, [rbp-1336]
    0040693amov edx, eax
    0040693cmov rax, [rbp-1544]
    00406943cmp edx, eax
    00406945setb al
    00406948movzx eax, al
    0040694badd rax, rcx
    0040694emov [rbp-1344], rax
    00406955mov rax, [rbp-1400]
    0040695cmov edx, eax
    0040695eshr edx, 14
    00406961mov rax, [rbp-1408]
    00406968shl eax, 18
    0040696bor eax, edx
    0040696dmov eax, eax
    0040696fmov [rbp-1512], rax
    00406976mov rax, [rbp-1408]
    0040697dmov edx, eax
    0040697fshr edx, 14
    00406982mov rax, [rbp-1400]
    00406989shl eax, 18
    0040698cor eax, edx
    0040698emov eax, eax
    00406990mov [rbp-1520], rax
    00406997mov rax, [rbp-1400]
    0040699emov edx, eax
    004069a0shr edx, 18
    004069a3mov rax, [rbp-1408]
    004069aashl eax, 14
    004069ador eax, edx
    004069afmov eax, eax
    004069b1mov [rbp-1496], rax
    004069b8mov rax, [rbp-1408]
    004069bfmov edx, eax
    004069c1shr edx, 18
    004069c4mov rax, [rbp-1400]
    004069cbshl eax, 14
    004069ceor eax, edx
    004069d0mov eax, eax
    004069d2mov [rbp-1504], rax
    004069d9mov rdx, [rbp-1512]
    004069e0mov rax, [rbp-1496]
    004069e7xor rax, rdx
    004069eamov [rbp-1512], rax
    004069f1mov rdx, [rbp-1520]
    004069f8mov rax, [rbp-1504]
    004069ffxor rax, rdx
    00406a02mov [rbp-1520], rax
    00406a09mov rax, [rbp-1408]
    00406a10mov edx, eax
    00406a12shr edx, 9
    00406a15mov rax, [rbp-1400]
    00406a1cshl eax, 23
    00406a1for eax, edx
    00406a21mov eax, eax
    00406a23mov [rbp-1496], rax
    00406a2amov rax, [rbp-1400]
    00406a31mov edx, eax
    00406a33shr edx, 9
    00406a36mov rax, [rbp-1408]
    00406a3dshl eax, 23
    00406a40or eax, edx
    00406a42mov eax, eax
    00406a44mov [rbp-1504], rax
    00406a4bmov rdx, [rbp-1512]
    00406a52mov rax, [rbp-1496]
    00406a59xor rax, rdx
    00406a5cmov [rbp-1512], rax
    00406a63mov rdx, [rbp-1520]
    00406a6amov rax, [rbp-1504]
    00406a71xor rax, rdx
    00406a74mov [rbp-1520], rax
    00406a7bmov rax, [rbp-1400]
    00406a82not rax
    00406a85mov [rbp-1496], rax
    00406a8cmov rax, [rbp-1408]
    00406a93not rax
    00406a96mov [rbp-1504], rax
    00406a9dmov rdx, [rbp-1496]
    00406aa4mov rax, [rbp-1304]
    00406aaband rax, rdx
    00406aaemov [rbp-1528], rax
    00406ab5mov rdx, [rbp-1504]
    00406abcmov rax, [rbp-1312]
    00406ac3and rax, rdx
    00406ac6mov [rbp-1536], rax
    00406acdmov rdx, [rbp-1400]
    00406ad4mov rax, [rbp-1416]
    00406adband rax, rdx
    00406ademov [rbp-1496], rax
    00406ae5mov rdx, [rbp-1408]
    00406aecmov rax, [rbp-1424]
    00406af3and rax, rdx
    00406af6mov [rbp-1504], rax
    00406afdmov rdx, [rbp-1528]
    00406b04mov rax, [rbp-1496]
    00406b0bxor rax, rdx
    00406b0emov [rbp-1528], rax
    00406b15mov rdx, [rbp-1536]
    00406b1cmov rax, [rbp-1504]
    00406b23xor rax, rdx
    00406b26mov [rbp-1536], rax
    00406b2dmov rdx, [rbp-1528]
    00406b34mov rax, [rbp-1512]
    00406b3badd rax, rdx
    00406b3emov [rbp-1544], rax
    00406b45mov rdx, [rbp-1536]
    00406b4cmov rax, [rbp-1520]
    00406b53lea rcx, [rdx+rax]
    00406b57mov rax, [rbp-1544]
    00406b5emov edx, eax
    00406b60mov rax, [rbp-1528]
    00406b67cmp edx, eax
    00406b69setb al
    00406b6cmovzx eax, al
    00406b6fadd rax, rcx
    00406b72mov [rbp-1552], rax
    00406b79mov eax, [rbp-4]
    00406b7cadd eax, 6
    00406b7fcdqe
    00406b81shl rax, 4
    00406b85add rax, 0x40ea00
    00406b8bmov rdx, [rax+8]
    00406b8fmov rax, [rbp-1544]
    00406b96add rax, rdx
    00406b99mov [rbp-1512], rax
    00406ba0mov eax, [rbp-4]
    00406ba3add eax, 6
    00406ba6cdqe
    00406ba8shl rax, 4
    00406bacadd rax, 0x40ea00
    00406bb2mov rdx, [rax]
    00406bb5mov rax, [rbp-1552]
    00406bbclea rcx, [rdx+rax]
    00406bc0mov rax, [rbp-1512]
    00406bc7mov edx, eax
    00406bc9mov eax, [rbp-4]
    00406bccadd eax, 6
    00406bcfcdqe
    00406bd1shl rax, 4
    00406bd5add rax, 0x40ea00
    00406bdbmov rax, [rax+8]
    00406bdfcmp edx, eax
    00406be1setb al
    00406be4movzx eax, al
    00406be7add rax, rcx
    00406beamov [rbp-1520], rax
    00406bf1mov eax, [rbp-4]
    00406bf4add eax, 6
    00406bf7cdqe
    00406bf9shl rax, 4
    00406bfdadd rax, rbp
    00406c00sub rax, 1288
    00406c06mov rdx, [rax]
    00406c09mov rax, [rbp-1512]
    00406c10add rax, rdx
    00406c13mov [rbp-1528], rax
    00406c1amov eax, [rbp-4]
    00406c1dadd eax, 6
    00406c20cdqe
    00406c22shl rax, 4
    00406c26add rax, rbp
    00406c29sub rax, 1296
    00406c2fmov rdx, [rax]
    00406c32mov rax, [rbp-1520]
    00406c39lea rcx, [rdx+rax]
    00406c3dmov rax, [rbp-1528]
    00406c44mov edx, eax
    00406c46mov eax, [rbp-4]
    00406c49add eax, 6
    00406c4ccdqe
    00406c4eshl rax, 4
    00406c52add rax, rbp
    00406c55sub rax, 1288
    00406c5bmov rax, [rax]
    00406c5ecmp edx, eax
    00406c60setb al
    00406c63movzx eax, al
    00406c66add rax, rcx
    00406c69mov [rbp-1536], rax
    00406c70mov rdx, [rbp-1320]
    00406c77mov rax, [rbp-1528]
    00406c7eadd rax, rdx
    00406c81mov [rbp-1544], rax
    00406c88mov rdx, [rbp-1328]
    00406c8fmov rax, [rbp-1536]
    00406c96lea rcx, [rdx+rax]
    00406c9amov rax, [rbp-1544]
    00406ca1mov edx, eax
    00406ca3mov rax, [rbp-1320]
    00406caacmp edx, eax
    00406cacsetb al
    00406cafmovzx eax, al
    00406cb2add rax, rcx
    00406cb5mov [rbp-1552], rax
    00406cbcmov rax, [rbp-1336]
    00406cc3mov edx, eax
    00406cc5shr edx, 28
    00406cc8mov rax, [rbp-1344]
    00406ccfshl eax, 4
    00406cd2or eax, edx
    00406cd4mov eax, eax
    00406cd6mov [rbp-1512], rax
    00406cddmov rax, [rbp-1344]
    00406ce4mov edx, eax
    00406ce6shr edx, 28
    00406ce9mov rax, [rbp-1336]
    00406cf0shl eax, 4
    00406cf3or eax, edx
    00406cf5mov eax, eax
    00406cf7mov [rbp-1520], rax
    00406cfemov rax, [rbp-1344]
    00406d05mov edx, eax
    00406d07shr edx, 2
    00406d0amov rax, [rbp-1336]
    00406d11shl eax, 30
    00406d14or eax, edx
    00406d16mov eax, eax
    00406d18mov [rbp-1496], rax
    00406d1fmov rax, [rbp-1336]
    00406d26mov edx, eax
    00406d28shr edx, 2
    00406d2bmov rax, [rbp-1344]
    00406d32shl eax, 30
    00406d35or eax, edx
    00406d37mov eax, eax
    00406d39mov [rbp-1504], rax
    00406d40mov rdx, [rbp-1512]
    00406d47mov rax, [rbp-1496]
    00406d4exor rax, rdx
    00406d51mov [rbp-1512], rax
    00406d58mov rdx, [rbp-1520]
    00406d5fmov rax, [rbp-1504]
    00406d66xor rax, rdx
    00406d69mov [rbp-1520], rax
    00406d70mov rax, [rbp-1344]
    00406d77mov edx, eax
    00406d79shr edx, 7
    00406d7cmov rax, [rbp-1336]
    00406d83shl eax, 25
    00406d86or eax, edx
    00406d88mov eax, eax
    00406d8amov [rbp-1496], rax
    00406d91mov rax, [rbp-1336]
    00406d98mov edx, eax
    00406d9ashr edx, 7
    00406d9dmov rax, [rbp-1344]
    00406da4shl eax, 25
    00406da7or eax, edx
    00406da9mov eax, eax
    00406dabmov [rbp-1504], rax
    00406db2mov rdx, [rbp-1512]
    00406db9mov rax, [rbp-1496]
    00406dc0xor rax, rdx
    00406dc3mov [rbp-1512], rax
    00406dcamov rdx, [rbp-1520]
    00406dd1mov rax, [rbp-1504]
    00406dd8xor rax, rdx
    00406ddbmov [rbp-1520], rax
    00406de2mov rdx, [rbp-1336]
    00406de9mov rax, [rbp-1352]
    00406df0and rax, rdx
    00406df3mov [rbp-1496], rax
    00406dfamov rdx, [rbp-1344]
    00406e01mov rax, [rbp-1360]
    00406e08and rax, rdx
    00406e0bmov [rbp-1504], rax
    00406e12mov rdx, [rbp-1336]
    00406e19mov rax, [rbp-1368]
    00406e20and rax, rdx
    00406e23mov [rbp-1528], rax
    00406e2amov rdx, [rbp-1344]
    00406e31mov rax, [rbp-1376]
    00406e38and rax, rdx
    00406e3bmov [rbp-1536], rax
    00406e42mov rdx, [rbp-1496]
    00406e49mov rax, [rbp-1528]
    00406e50xor rax, rdx
    00406e53mov [rbp-1496], rax
    00406e5amov rdx, [rbp-1504]
    00406e61mov rax, [rbp-1536]
    00406e68xor rax, rdx
    00406e6bmov [rbp-1504], rax
    00406e72mov rdx, [rbp-1352]
    00406e79mov rax, [rbp-1368]
    00406e80and rax, rdx
    00406e83mov [rbp-1528], rax
    00406e8amov rdx, [rbp-1360]
    00406e91mov rax, [rbp-1376]
    00406e98and rax, rdx
    00406e9bmov [rbp-1536], rax
    00406ea2mov rdx, [rbp-1496]
    00406ea9mov rax, [rbp-1528]
    00406eb0xor rax, rdx
    00406eb3mov [rbp-1496], rax
    00406ebamov rdx, [rbp-1504]
    00406ec1mov rax, [rbp-1536]
    00406ec8xor rax, rdx
    00406ecbmov [rbp-1504], rax
    00406ed2mov rdx, [rbp-1512]
    00406ed9mov rax, [rbp-1496]
    00406ee0add rax, rdx
    00406ee3mov [rbp-1528], rax
    00406eeamov rdx, [rbp-1520]
    00406ef1mov rax, [rbp-1504]
    00406ef8lea rcx, [rdx+rax]
    00406efcmov rax, [rbp-1528]
    00406f03mov edx, eax
    00406f05mov rax, [rbp-1512]
    00406f0ccmp edx, eax
    00406f0esetb al
    00406f11movzx eax, al
    00406f14add rax, rcx
    00406f17mov [rbp-1536], rax
    00406f1emov rdx, [rbp-1384]
    00406f25mov rax, [rbp-1544]
    00406f2cadd rax, rdx
    00406f2fmov [rbp-1512], rax
    00406f36mov rdx, [rbp-1392]
    00406f3dmov rax, [rbp-1552]
    00406f44lea rcx, [rdx+rax]
    00406f48mov rax, [rbp-1512]
    00406f4fmov edx, eax
    00406f51mov rax, [rbp-1384]
    00406f58cmp edx, eax
    00406f5asetb al
    00406f5dmovzx eax, al
    00406f60add rax, rcx
    00406f63mov [rbp-1520], rax
    00406f6amov rax, [rbp-1520]
    00406f71mov [rbp-1392], rax
    00406f78mov rax, [rbp-1512]
    00406f7fmov [rbp-1384], rax
    00406f86mov rdx, [rbp-1544]
    00406f8dmov rax, [rbp-1528]
    00406f94add rax, rdx
    00406f97mov [rbp-1320], rax
    00406f9emov rdx, [rbp-1552]
    00406fa5mov rax, [rbp-1536]
    00406faclea rcx, [rdx+rax]
    00406fb0mov rax, [rbp-1320]
    00406fb7mov edx, eax
    00406fb9mov rax, [rbp-1544]
    00406fc0cmp edx, eax
    00406fc2setb al
    00406fc5movzx eax, al
    00406fc8add rax, rcx
    00406fcbmov [rbp-1328], rax
    00406fd2mov rax, [rbp-1384]
    00406fd9mov edx, eax
    00406fdbshr edx, 14
    00406fdemov rax, [rbp-1392]
    00406fe5shl eax, 18
    00406fe8or eax, edx
    00406feamov eax, eax
    00406fecmov [rbp-1512], rax
    00406ff3mov rax, [rbp-1392]
    00406ffamov edx, eax
    00406ffcshr edx, 14
    00406fffmov rax, [rbp-1384]
    00407006shl eax, 18
    00407009or eax, edx
    0040700bmov eax, eax
    0040700dmov [rbp-1520], rax
    00407014mov rax, [rbp-1384]
    0040701bmov edx, eax
    0040701dshr edx, 18
    00407020mov rax, [rbp-1392]
    00407027shl eax, 14
    0040702aor eax, edx
    0040702cmov eax, eax
    0040702emov [rbp-1496], rax
    00407035mov rax, [rbp-1392]
    0040703cmov edx, eax
    0040703eshr edx, 18
    00407041mov rax, [rbp-1384]
    00407048shl eax, 14
    0040704bor eax, edx
    0040704dmov eax, eax
    0040704fmov [rbp-1504], rax
    00407056mov rdx, [rbp-1512]
    0040705dmov rax, [rbp-1496]
    00407064xor rax, rdx
    00407067mov [rbp-1512], rax
    0040706emov rdx, [rbp-1520]
    00407075mov rax, [rbp-1504]
    0040707cxor rax, rdx
    0040707fmov [rbp-1520], rax
    00407086mov rax, [rbp-1392]
    0040708dmov edx, eax
    0040708fshr edx, 9
    00407092mov rax, [rbp-1384]
    00407099shl eax, 23
    0040709cor eax, edx
    0040709emov eax, eax
    004070a0mov [rbp-1496], rax
    004070a7mov rax, [rbp-1384]
    004070aemov edx, eax
    004070b0shr edx, 9
    004070b3mov rax, [rbp-1392]
    004070bashl eax, 23
    004070bdor eax, edx
    004070bfmov eax, eax
    004070c1mov [rbp-1504], rax
    004070c8mov rdx, [rbp-1512]
    004070cfmov rax, [rbp-1496]
    004070d6xor rax, rdx
    004070d9mov [rbp-1512], rax
    004070e0mov rdx, [rbp-1520]
    004070e7mov rax, [rbp-1504]
    004070eexor rax, rdx
    004070f1mov [rbp-1520], rax
    004070f8mov rax, [rbp-1384]
    004070ffnot rax
    00407102mov [rbp-1496], rax
    00407109mov rax, [rbp-1392]
    00407110not rax
    00407113mov [rbp-1504], rax
    0040711amov rdx, [rbp-1496]
    00407121mov rax, [rbp-1416]
    00407128and rax, rdx
    0040712bmov [rbp-1528], rax
    00407132mov rdx, [rbp-1504]
    00407139mov rax, [rbp-1424]
    00407140and rax, rdx
    00407143mov [rbp-1536], rax
    0040714amov rdx, [rbp-1384]
    00407151mov rax, [rbp-1400]
    00407158and rax, rdx
    0040715bmov [rbp-1496], rax
    00407162mov rdx, [rbp-1392]
    00407169mov rax, [rbp-1408]
    00407170and rax, rdx
    00407173mov [rbp-1504], rax
    0040717amov rdx, [rbp-1528]
    00407181mov rax, [rbp-1496]
    00407188xor rax, rdx
    0040718bmov [rbp-1528], rax
    00407192mov rdx, [rbp-1536]
    00407199mov rax, [rbp-1504]
    004071a0xor rax, rdx
    004071a3mov [rbp-1536], rax
    004071aamov rdx, [rbp-1528]
    004071b1mov rax, [rbp-1512]
    004071b8add rax, rdx
    004071bbmov [rbp-1544], rax
    004071c2mov rdx, [rbp-1536]
    004071c9mov rax, [rbp-1520]
    004071d0lea rcx, [rdx+rax]
    004071d4mov rax, [rbp-1544]
    004071dbmov edx, eax
    004071ddmov rax, [rbp-1528]
    004071e4cmp edx, eax
    004071e6setb al
    004071e9movzx eax, al
    004071ecadd rax, rcx
    004071efmov [rbp-1552], rax
    004071f6mov eax, [rbp-4]
    004071f9add eax, 7
    004071fccdqe
    004071feshl rax, 4
    00407202add rax, 0x40ea00
    00407208mov rdx, [rax+8]
    0040720cmov rax, [rbp-1544]
    00407213add rax, rdx
    00407216mov [rbp-1512], rax
    0040721dmov eax, [rbp-4]
    00407220add eax, 7
    00407223cdqe
    00407225shl rax, 4
    00407229add rax, 0x40ea00
    0040722fmov rdx, [rax]
    00407232mov rax, [rbp-1552]
    00407239lea rcx, [rdx+rax]
    0040723dmov rax, [rbp-1512]
    00407244mov edx, eax
    00407246mov eax, [rbp-4]
    00407249add eax, 7
    0040724ccdqe
    0040724eshl rax, 4
    00407252add rax, 0x40ea00
    00407258mov rax, [rax+8]
    0040725ccmp edx, eax
    0040725esetb al
    00407261movzx eax, al
    00407264add rax, rcx
    00407267mov [rbp-1520], rax
    0040726emov eax, [rbp-4]
    00407271add eax, 7
    00407274cdqe
    00407276shl rax, 4
    0040727aadd rax, rbp
    0040727dsub rax, 1288
    00407283mov rdx, [rax]
    00407286mov rax, [rbp-1512]
    0040728dadd rax, rdx
    00407290mov [rbp-1528], rax
    00407297mov eax, [rbp-4]
    0040729aadd eax, 7
    0040729dcdqe
    0040729fshl rax, 4
    004072a3add rax, rbp
    004072a6sub rax, 1296
    004072acmov rdx, [rax]
    004072afmov rax, [rbp-1520]
    004072b6lea rcx, [rdx+rax]
    004072bamov rax, [rbp-1528]
    004072c1mov edx, eax
    004072c3mov eax, [rbp-4]
    004072c6add eax, 7
    004072c9cdqe
    004072cbshl rax, 4
    004072cfadd rax, rbp
    004072d2sub rax, 1288
    004072d8mov rax, [rax]
    004072dbcmp edx, eax
    004072ddsetb al
    004072e0movzx eax, al
    004072e3add rax, rcx
    004072e6mov [rbp-1536], rax
    004072edmov rdx, [rbp-1304]
    004072f4mov rax, [rbp-1528]
    004072fbadd rax, rdx
    004072femov [rbp-1544], rax
    00407305mov rdx, [rbp-1312]
    0040730cmov rax, [rbp-1536]
    00407313lea rcx, [rdx+rax]
    00407317mov rax, [rbp-1544]
    0040731emov edx, eax
    00407320mov rax, [rbp-1304]
    00407327cmp edx, eax
    00407329setb al
    0040732cmovzx eax, al
    0040732fadd rax, rcx
    00407332mov [rbp-1552], rax
    00407339mov rax, [rbp-1320]
    00407340mov edx, eax
    00407342shr edx, 28
    00407345mov rax, [rbp-1328]
    0040734cshl eax, 4
    0040734for eax, edx
    00407351mov eax, eax
    00407353mov [rbp-1512], rax
    0040735amov rax, [rbp-1328]
    00407361mov edx, eax
    00407363shr edx, 28
    00407366mov rax, [rbp-1320]
    0040736dshl eax, 4
    00407370or eax, edx
    00407372mov eax, eax
    00407374mov [rbp-1520], rax
    0040737bmov rax, [rbp-1328]
    00407382mov edx, eax
    00407384shr edx, 2
    00407387mov rax, [rbp-1320]
    0040738eshl eax, 30
    00407391or eax, edx
    00407393mov eax, eax
    00407395mov [rbp-1496], rax
    0040739cmov rax, [rbp-1320]
    004073a3mov edx, eax
    004073a5shr edx, 2
    004073a8mov rax, [rbp-1328]
    004073afshl eax, 30
    004073b2or eax, edx
    004073b4mov eax, eax
    004073b6mov [rbp-1504], rax
    004073bdmov rdx, [rbp-1512]
    004073c4mov rax, [rbp-1496]
    004073cbxor rax, rdx
    004073cemov [rbp-1512], rax
    004073d5mov rdx, [rbp-1520]
    004073dcmov rax, [rbp-1504]
    004073e3xor rax, rdx
    004073e6mov [rbp-1520], rax
    004073edmov rax, [rbp-1328]
    004073f4mov edx, eax
    004073f6shr edx, 7
    004073f9mov rax, [rbp-1320]
    00407400shl eax, 25
    00407403or eax, edx
    00407405mov eax, eax
    00407407mov [rbp-1496], rax
    0040740emov rax, [rbp-1320]
    00407415mov edx, eax
    00407417shr edx, 7
    0040741amov rax, [rbp-1328]
    00407421shl eax, 25
    00407424or eax, edx
    00407426mov eax, eax
    00407428mov [rbp-1504], rax
    0040742fmov rdx, [rbp-1512]
    00407436mov rax, [rbp-1496]
    0040743dxor rax, rdx
    00407440mov [rbp-1512], rax
    00407447mov rdx, [rbp-1520]
    0040744emov rax, [rbp-1504]
    00407455xor rax, rdx
    00407458mov [rbp-1520], rax
    0040745fmov rdx, [rbp-1320]
    00407466mov rax, [rbp-1336]
    0040746dand rax, rdx
    00407470mov [rbp-1496], rax
    00407477mov rdx, [rbp-1328]
    0040747emov rax, [rbp-1344]
    00407485and rax, rdx
    00407488mov [rbp-1504], rax
    0040748fmov rdx, [rbp-1320]
    00407496mov rax, [rbp-1352]
    0040749dand rax, rdx
    004074a0mov [rbp-1528], rax
    004074a7mov rdx, [rbp-1328]
    004074aemov rax, [rbp-1360]
    004074b5and rax, rdx
    004074b8mov [rbp-1536], rax
    004074bfmov rdx, [rbp-1496]
    004074c6mov rax, [rbp-1528]
    004074cdxor rax, rdx
    004074d0mov [rbp-1496], rax
    004074d7mov rdx, [rbp-1504]
    004074demov rax, [rbp-1536]
    004074e5xor rax, rdx
    004074e8mov [rbp-1504], rax
    004074efmov rdx, [rbp-1336]
    004074f6mov rax, [rbp-1352]
    004074fdand rax, rdx
    00407500mov [rbp-1528], rax
    00407507mov rdx, [rbp-1344]
    0040750emov rax, [rbp-1360]
    00407515and rax, rdx
    00407518mov [rbp-1536], rax
    0040751fmov rdx, [rbp-1496]
    00407526mov rax, [rbp-1528]
    0040752dxor rax, rdx
    00407530mov [rbp-1496], rax
    00407537mov rdx, [rbp-1504]
    0040753emov rax, [rbp-1536]
    00407545xor rax, rdx
    00407548mov [rbp-1504], rax
    0040754fmov rdx, [rbp-1512]
    00407556mov rax, [rbp-1496]
    0040755dadd rax, rdx
    00407560mov [rbp-1528], rax
    00407567mov rdx, [rbp-1520]
    0040756emov rax, [rbp-1504]
    00407575lea rcx, [rdx+rax]
    00407579mov rax, [rbp-1528]
    00407580mov edx, eax
    00407582mov rax, [rbp-1512]
    00407589cmp edx, eax
    0040758bsetb al
    0040758emovzx eax, al
    00407591add rax, rcx
    00407594mov [rbp-1536], rax
    0040759bmov rdx, [rbp-1368]
    004075a2mov rax, [rbp-1544]
    004075a9add rax, rdx
    004075acmov [rbp-1512], rax
    004075b3mov rdx, [rbp-1376]
    004075bamov rax, [rbp-1552]
    004075c1lea rcx, [rdx+rax]
    004075c5mov rax, [rbp-1512]
    004075ccmov edx, eax
    004075cemov rax, [rbp-1368]
    004075d5cmp edx, eax
    004075d7setb al
    004075damovzx eax, al
    004075ddadd rax, rcx
    004075e0mov [rbp-1520], rax
    004075e7mov rax, [rbp-1520]
    004075eemov [rbp-1376], rax
    004075f5mov rax, [rbp-1512]
    004075fcmov [rbp-1368], rax
    00407603mov rdx, [rbp-1544]
    0040760amov rax, [rbp-1528]
    00407611add rax, rdx
    00407614mov [rbp-1304], rax
    0040761bmov rdx, [rbp-1552]
    00407622mov rax, [rbp-1536]
    00407629lea rcx, [rdx+rax]
    0040762dmov rax, [rbp-1304]
    00407634mov edx, eax
    00407636mov rax, [rbp-1544]
    0040763dcmp edx, eax
    0040763fsetb al
    00407642movzx eax, al
    00407645add rax, rcx
    00407648mov [rbp-1312], rax
    0040764fadd [rbp-4], 8
    00407653
    00407653loc_407653:
    00407653cmp [rbp-4], 79
    00407657jle 0x404279
    0040765dmov rax, [rbp-1576]
    00407664mov rdx, [rax]
    00407667mov [rbp-1568], rdx
    0040766emov rax, [rax+8]
    00407672mov [rbp-1560], rax
    00407679mov rdx, [rbp-1304]
    00407680mov rax, [rbp-1560]
    00407687add rdx, rax
    0040768amov rax, [rbp-1576]
    00407691mov [rax+8], rdx
    00407695mov rdx, [rbp-1312]
    0040769cmov rax, [rbp-1568]
    004076a3lea rcx, [rdx+rax]
    004076a7mov rax, [rbp-1576]
    004076aemov rax, [rax+8]
    004076b2mov edx, eax
    004076b4mov rax, [rbp-1304]
    004076bbcmp edx, eax
    004076bdsetb al
    004076c0movzx eax, al
    004076c3lea rdx, [rcx+rax]
    004076c7mov rax, [rbp-1576]
    004076cemov [rax], rdx
    004076d1mov rax, [rbp-1576]
    004076d8mov rdx, [rax+16]
    004076dcmov [rbp-1568], rdx
    004076e3mov rax, [rax+24]
    004076e7mov [rbp-1560], rax
    004076eemov rdx, [rbp-1320]
    004076f5mov rax, [rbp-1560]
    004076fcadd rdx, rax
    004076ffmov rax, [rbp-1576]
    00407706mov [rax+24], rdx
    0040770amov rdx, [rbp-1328]
    00407711mov rax, [rbp-1568]
    00407718lea rcx, [rdx+rax]
    0040771cmov rax, [rbp-1576]
    00407723mov rax, [rax+24]
    00407727mov edx, eax
    00407729mov rax, [rbp-1320]
    00407730cmp edx, eax
    00407732setb al
    00407735movzx eax, al
    00407738lea rdx, [rcx+rax]
    0040773cmov rax, [rbp-1576]
    00407743mov [rax+16], rdx
    00407747mov rax, [rbp-1576]
    0040774emov rdx, [rax+32]
    00407752mov [rbp-1568], rdx
    00407759mov rax, [rax+40]
    0040775dmov [rbp-1560], rax
    00407764mov rdx, [rbp-1336]
    0040776bmov rax, [rbp-1560]
    00407772add rdx, rax
    00407775mov rax, [rbp-1576]
    0040777cmov [rax+40], rdx
    00407780mov rdx, [rbp-1344]
    00407787mov rax, [rbp-1568]
    0040778elea rcx, [rdx+rax]
    00407792mov rax, [rbp-1576]
    00407799mov rax, [rax+40]
    0040779dmov edx, eax
    0040779fmov rax, [rbp-1336]
    004077a6cmp edx, eax
    004077a8setb al
    004077abmovzx eax, al
    004077aelea rdx, [rcx+rax]
    004077b2mov rax, [rbp-1576]
    004077b9mov [rax+32], rdx
    004077bdmov rax, [rbp-1576]
    004077c4mov rdx, [rax+48]
    004077c8mov [rbp-1568], rdx
    004077cfmov rax, [rax+56]
    004077d3mov [rbp-1560], rax
    004077damov rdx, [rbp-1352]
    004077e1mov rax, [rbp-1560]
    004077e8add rdx, rax
    004077ebmov rax, [rbp-1576]
    004077f2mov [rax+56], rdx
    004077f6mov rdx, [rbp-1360]
    004077fdmov rax, [rbp-1568]
    00407804lea rcx, [rdx+rax]
    00407808mov rax, [rbp-1576]
    0040780fmov rax, [rax+56]
    00407813mov edx, eax
    00407815mov rax, [rbp-1352]
    0040781ccmp edx, eax
    0040781esetb al
    00407821movzx eax, al
    00407824lea rdx, [rcx+rax]
    00407828mov rax, [rbp-1576]
    0040782fmov [rax+48], rdx
    00407833mov rax, [rbp-1576]
    0040783amov rdx, [rax+64]
    0040783emov [rbp-1568], rdx
    00407845mov rax, [rax+72]
    00407849mov [rbp-1560], rax
    00407850mov rdx, [rbp-1368]
    00407857mov rax, [rbp-1560]
    0040785eadd rdx, rax
    00407861mov rax, [rbp-1576]
    00407868mov [rax+72], rdx
    0040786cmov rdx, [rbp-1376]
    00407873mov rax, [rbp-1568]
    0040787alea rcx, [rdx+rax]
    0040787emov rax, [rbp-1576]
    00407885mov rax, [rax+72]
    00407889mov edx, eax
    0040788bmov rax, [rbp-1368]
    00407892cmp edx, eax
    00407894setb al
    00407897movzx eax, al
    0040789alea rdx, [rcx+rax]
    0040789emov rax, [rbp-1576]
    004078a5mov [rax+64], rdx
    004078a9mov rax, [rbp-1576]
    004078b0mov rdx, [rax+80]
    004078b4mov [rbp-1568], rdx
    004078bbmov rax, [rax+88]
    004078bfmov [rbp-1560], rax
    004078c6mov rdx, [rbp-1384]
    004078cdmov rax, [rbp-1560]
    004078d4add rdx, rax
    004078d7mov rax, [rbp-1576]
    004078demov [rax+88], rdx
    004078e2mov rdx, [rbp-1392]
    004078e9mov rax, [rbp-1568]
    004078f0lea rcx, [rdx+rax]
    004078f4mov rax, [rbp-1576]
    004078fbmov rax, [rax+88]
    004078ffmov edx, eax
    00407901mov rax, [rbp-1384]
    00407908cmp edx, eax
    0040790asetb al
    0040790dmovzx eax, al
    00407910lea rdx, [rcx+rax]
    00407914mov rax, [rbp-1576]
    0040791bmov [rax+80], rdx
    0040791fmov rax, [rbp-1576]
    00407926mov rdx, [rax+96]
    0040792amov [rbp-1568], rdx
    00407931mov rax, [rax+104]
    00407935mov [rbp-1560], rax
    0040793cmov rdx, [rbp-1400]
    00407943mov rax, [rbp-1560]
    0040794aadd rdx, rax
    0040794dmov rax, [rbp-1576]
    00407954mov [rax+104], rdx
    00407958mov rdx, [rbp-1408]
    0040795fmov rax, [rbp-1568]
    00407966lea rcx, [rdx+rax]
    0040796amov rax, [rbp-1576]
    00407971mov rax, [rax+104]
    00407975mov edx, eax
    00407977mov rax, [rbp-1400]
    0040797ecmp edx, eax
    00407980setb al
    00407983movzx eax, al
    00407986lea rdx, [rcx+rax]
    0040798amov rax, [rbp-1576]
    00407991mov [rax+96], rdx
    00407995mov rax, [rbp-1576]
    0040799cmov rdx, [rax+112]
    004079a0mov [rbp-1568], rdx
    004079a7mov rax, [rax+120]
    004079abmov [rbp-1560], rax
    004079b2mov rdx, [rbp-1416]
    004079b9mov rax, [rbp-1560]
    004079c0add rdx, rax
    004079c3mov rax, [rbp-1576]
    004079camov [rax+120], rdx
    004079cemov rdx, [rbp-1424]
    004079d5mov rax, [rbp-1568]
    004079dclea rcx, [rdx+rax]
    004079e0mov rax, [rbp-1576]
    004079e7mov rax, [rax+120]
    004079ebmov edx, eax
    004079edmov rax, [rbp-1416]
    004079f4cmp edx, eax
    004079f6setb al
    004079f9movzx eax, al
    004079fclea rdx, [rcx+rax]
    00407a00mov rax, [rbp-1576]
    00407a07mov [rax+112], rdx
    00407a0bleave
    00407a0cret
    00403bf5